日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32之MDK分析,分散加载

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32之MDK分析,分散加载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

STM32分散加載

我們知道MDK的分散加載主要是通過.sct文件實現的,鏈接器根據.sct文件的配置分配各個節區地址,生成分散加載代碼,因此我們通過修改該文件可以定制具體節區的存儲位置。

如何打開.sct文件

在Options for Targets->Linker界面下面去掉默認選項,然后edit scatter file 就可以在編輯界面中看到.sct文件了。

.sct文件結構

LR_IROM1 0x08000000 0x00010000 { ; load region size_region ##就是所有代碼需要下載到0x08000000 開始的區域中,且這個區域大小只有0x00010000 這么大ER_IROM1 0x08000000 0x00010000 { ; load address = execution address ##加載域等于執行域,只能是只讀的代碼段和只讀數據段*.o (RESET, +First)*(InRoot$$Sections).ANY (+RO)}RW_IRAM1 0x20000000 0x00004000 { ; RW data ##執行域是以0x20000000 開始的長度為0x00004000 一段區域.ANY (+RW +ZI) ;其中包括的是哪些文件}RW_IRAM2 0x20004000 0x00001000 { ##執行域是以0x20004000 開始的長度為0x00001000 一段區域delay.o (+ZI +RW).ANY (+RW +ZI)} }

修改分散加載文件

其實上面貼的這段代碼是修改之后的.sct文件,如果需要修改分散加載文件,并使其生效需要

  • 修改Options for Targets->Target 的onchip 的rom或者ram,容量地址必須和選擇的芯片一致
  • 修改某個文件的存儲屬性,在工程窗口中右擊文件名字 Options for file ,然后出現窗口可以修改文件的存儲屬性
  • 修改完,重新編譯,點開.sct文件就可以看到.sct已經被修改了,然后可以看map文件可以看到相關變量函數地址信息已經改變。
  • 總結

    以上是生活随笔為你收集整理的STM32之MDK分析,分散加载的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。