如何使用F4的IRAM2內存


在使用KEIL做F4的項目的時候發現RAM區有片上IRAM2選項,查了datesheet后發現這塊是CCM內存區

 

 CCM內存是在地址0x1000000映射的64KB塊,只提供CPU通過數據D總線進行訪問。如何利用這塊內存呢?

首先打開工程配置,如上,對IRAM2進行勾選

雙擊工程文件夾,打開.map,可以看到RW_IRAM2已經使用

但因為這段內存是只能CPU訪問的,一旦將數據分配至CCM內存,而同時使用了DMA訪問他,那么就會出現問題,如何避免這種情況發生呢

我們可以自己來直接分配

 

 將需要的數據用__attribute__((at(section)))來進行段定義,再次編譯后,就會發現數據被存在該塊中

這里來引入一個概念,叫分散加載文件(scatter file)可以在link文件夾中找到,.sct后綴。

分散加載文件是一個文本文件,通過編寫一個分散加載文件來指定ARM連接器在生成映像文件時如何分配RO,RW,ZI等數據的存放地址。如果不用SCATTER文件指定,那么ARM連接器會按照默認的方式來生成映像文件,一般情況下我們是不需要使用分散加載文件的。但在某些場合,我們希望把某些數據放在指定的地址處,那么這時候SCATTER文件就發揮了非常大的作用。而且SCATTER文件用起來非常簡單好用。

所以如果我們需要將某些數據塊分配至CCM內存塊時,就可以通過修改sct文件實現

首先需要取消自動的內存映射

 

 然后打開.sct文件,進行修改


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM