RT-Thread內存管理移植問題

在做STM32F407VE系列的BSP,但出現一個問題:
1. 本芯片的SRAM大小爲192KB;
2. 按照移植手冊上把SRAM大小寫爲192KB時,堆初始化時rt_system_heap_init,始終報硬件錯誤;
3.把SRAM改爲128KB之後就正常了;
按照手冊進行移植的,難道堆不能全部使用完系統剩餘內存?還是有其他原因?

問題解決思路:

STM32F407VE系列內存是不連續的,有64K是CCM內存,因此堆分配的時候需要分段分配!

CCM內存

CCM只可以CPU訪問,SRAM的話CPU和DMA等外設都可以訪問,理論上CCM訪問速度比SRAM更快

STM32 F30x系列把8KB 的SRAM地址映射到指令總線,使之成爲內核專用存儲器(CCM-SRAM),系統啓動時關鍵程序可全速載入8KB CCM存儲器,無需等待。CCM是內核專用存儲器吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章