FreeRTOS의 태스크 내에서 printf를 사용하는 경우 stack 크기를 512이상 정도 크게 잡아줘야 한다. 그렇지 않으면 stack overflow가 발생하여 메모리의 다른 영역에 덮어 써져 프로그램이 오동작 하는 경우가 발생 할 수 있다.

printf의 인자가 없는 경우 _puts_r함수를 사용하지만 인자가 있는 경우 _vfprintf_r이 호출 된다.  _puts_r은 스택을 많이 사용하지 않지만 _vfprintf_r은 스택을 많이 사용한다.

'OldStory > WORKS' 카테고리의 다른 글

strtok()  (0) 2010.09.13
FreeROTS MMU and Cache  (0) 2010.09.07
stack overflow  (0) 2010.08.18
Task Run Time Stats  (0) 2010.07.22
Task List  (0) 2010.07.21
ATMEL USB 예제 소스  (0) 2010.07.08
by Alnilam 2010.08.18 18:00
| 1 2 |

티스토리 툴바