Heap2 _sbrk_r FreeRTOS의 Heap_2.c를 Heap_3.c로 변경하였다. Heap_3.c는 표준 라이브러리에 있는 malloc과 free를 사용하여 heap영역의 메모리를 할당 받는다. 이 명령이 제대로 동작하려면 _sbrk_r 시스템 콜을 시스템에 맞게 구현해 주어야 한다. malloc을 호출 하여 메모리를 요청하면 라이브러리 내부에서 _sbrk_r를 호출 하여 메모리를 요구하도록 되어 있다. _sbr_r함수는 heap_end 포인터를 가지고 있어 호출 될 때 마다 갱신 되고 heap overflow를 채크 하며 heap 포인터를 리턴 한다. 2010. 6. 24. Heap 보통 c 에서는 malloc()을 사용하면 Heap영역에 메모리가 할당된다. FreeRTOS의 경우 Heap 할당하는 방법으로 세가지 방법 중 하나를 선택하여 사용 할 수 있으며 malloc, free 함수를 사용하는 대신 pvPortMalloc과 vPortFree를 사용한다. Heap_1.c 배열을 사용하여 heap를 생성하므로 heap이 .bss 영역에 할당 된다. 아주 간단하게 구현된 반면 한번 할당된 메모리는 반환이 되지 않는 단점이 있다. Heap_2.c 역시 배열을 사용하여 heap를 생성한다. 리스트 구조를 사용하여 할당 한 메모리의 반환이 가능하다. Heap_3.c 컴파일러에 링크되는 malloc과 free함수를 호출 한다. 이 방법을 사용하려면 컴파일러에 맞게 heap영역을 설정해 주거나.. 2010. 5. 25. 이전 1 다음