stm32F4上CCM的使用

1.CCM內存介紹:

相較於F2,F4新加的一個特殊內部SRAM。64 KB CCM (內核耦合存儲器)數據 RAM  不屬於總線矩陣(請參見圖 1 : STM32F405xx/07xx和 STM32F415xx/17xx  器件的系統架構)。只能通過 CPU  對其進行訪問(dma等外設不能訪問)。

 

2.用法(基於MDK):

①  先啓用這部分SRAM。

設置完後,若重新編譯,map文件裏就會有這塊SRAM的資源分配——由於IRAM1優先使用,而且一般SRAM1夠用,就不會給它分配資源。

② 使用CCM一般都要手動分配資源(確保這塊內存不被外設使用),自行分配內存需要這樣操作:

參考下圖,不勾選USE Memory Layout from Targe Dialog,這時mdk會自動載入一個分散加載文件(.sct),修改這個文件就可以手動選擇要放到CCM中的數據了。

③ 查看.map文件,將需要的文件架到(.sct)文件中。

例如,上圖中把mem.o和memp.o中的數據放到CCM中,可以這麼設置:

編譯後,可以看到資源分配:

④如果想把程序中的某些變量放到CCM中,需要定義一個section,將這些變量放到這個section中,再由(.sct)文件分配到CCM中。

編譯後的內存分配:

備註:

1.測試過程中,嘗試直接指定變量的內存到CCM的方法,但是定義多個變量時,編譯報錯。。。

2.據說把系統堆棧放到CCM中,可以提高處理效率,暫時沒法測試。

3.將CCM用作高速運算緩衝,也就這種高大上的應用上才能發揮他真正存在的價值吧。

4.感謝網友大神的帖子:

http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=602255&extra=page=&page=1

https://blog.csdn.net/zcshoucsdn/article/details/79176306

https://blog.csdn.net/anbaixiu/article/details/78832009

https://blog.csdn.net/louyangyang91/article/details/51545130

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