使用cubemx 創建帶freertos的工程,可以配置 HEAP 的地方有2個,為了加以區分,姑且稱為 程序堆棧與操作系統堆棧,如圖:請問它們的作用分別是什么,它們之間有什么關系?最近因為項目要上freertos並設計芯片選型,不得不考慮現有工程加上freertos以及任務等后所需的ram和flash大小,所以才會有堆棧空間關系的思考。
xxx.S里面是是系統堆棧
1、程序上電,還沒有開啟FreeRTOS之前都使用。
2、開啟后,進入中斷后的所有操作都使用這個棧控件,中斷服務程序里的句柄變量,中斷嵌套等使用。
FreeRTOSConfig.h定義的heap大小
這個是FreeRTOS的一個全局動態內存,任務棧,各種通信組件等全部使用這個。