在使用FreeRTOS時一直存在對堆疊設定的疑問,見以下三點疑問:
1、Starup_stm32f40_41xxx.s中的 “Stack_Size EQU 0x00001000”這里的設定的作用?
2、在工程“options”——“target”設定中IRAM1的start地址、size大小中size大小的用處?
3、在FreeRTOSConfig.h中,宏定義#define configTOTAL_HEAP_SIZE ((size_t)(55*1024))的作用?
三個設定堆疊大小的地方之間又有何種聯系?多謝!
uj5u.com熱心網友回復:
一個的堆疊、一個是IRAM,一個是堆,完全不同性質的uj5u.com熱心網友回復:
可以看看這個:https://blog.csdn.net/weixin_44578655/article/details/105992659
uj5u.com熱心網友回復:
1、Starup_stm32f40_41xxx.s中的 “Stack_Size EQU 0x00001000”這里的設定的作用?設定task的堆疊大小
2、在工程“options”——“target”設定中IRAM1的start地址、size大小中size大小的用處?
首先你要搞清楚,IRAM是啥,iram就是內部ram的意思,你可以把對運行速度有要求的代碼放里面,比如中斷處理函式。開始地址就是IRAM的起始地址,size大小就是IRAM有多大,設定大小,是防止用戶用的時候溢位了,溢位了可以檢測到。
3、在FreeRTOSConfig.h中,宏定義#define configTOTAL_HEAP_SIZE ((size_t)(55*1024))的作用?
configTOTAL_HEAP_SIZE 設定的是堆大小,可以程式員自己alloc的地址,設定這個大小,如果你發現alloc的收fail了,就是已經到達這個size的最大值了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33862.html
標籤:其他硬件開發
上一篇:嵌入式linux啟動問題
