• 正文
    • Keil配置方法
    • IAR配置方法
    • 驗(yàn)證代碼存儲(chǔ)地址
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Keil、IAR改變代碼(程序)存儲(chǔ)地址的方法

2024/03/31
1.8萬(wàn)
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

有時(shí)候,我們不想讓程序存儲(chǔ)在起始的位置,比如我們有一段bootloader,對(duì)應(yīng)的app(應(yīng)用程序)存儲(chǔ)的位置就會(huì)有一個(gè)偏移地址。

那么,我們?nèi)绾巫尦绦虼鎯?chǔ)在指定的偏移地址呢?

下面結(jié)合STM32,講述在Keil和IAR開(kāi)發(fā)環(huán)境中設(shè)置起始地址0x08010000的方法。

Keil配置方法

打開(kāi)工程目標(biāo)選項(xiàng):

Project -> Options for Target -> Target。

修改目標(biāo)ROM起始地址。如下圖:

 

說(shuō)明:

1.勾選的IROM即對(duì)應(yīng)的存儲(chǔ)區(qū)域;

2.起始地址(Start)和大?。⊿ize)根據(jù)你實(shí)際情況進(jìn)行配置;

IAR配置方法

類似方法,進(jìn)入配置界面:

A.進(jìn)入配置界面:Pooject -> Options -> Linker -> Config;B.勾選上“Override default”;C.點(diǎn)擊“Edit”,修改ROM起始地址為;D.點(diǎn)擊“Save”保存(第一次修改后,xxx.icf文件名和路徑都選擇默認(rèn))。具體如下圖:

驗(yàn)證代碼存儲(chǔ)地址

對(duì)于STM32芯片來(lái)說(shuō),可以直接使用STM32 ST-LINK Utility工具讀取FLASH數(shù)據(jù)驗(yàn)證代碼是否存儲(chǔ)在相應(yīng)地址位置,其他芯片也可以使用對(duì)應(yīng)可以讀取FLASH數(shù)據(jù)的工具來(lái)驗(yàn)證。

如下圖:

從上圖可以看見(jiàn),代碼是從0x08010000 起始存儲(chǔ)的。查看前面的存儲(chǔ)區(qū)域,可以發(fā)現(xiàn)數(shù)據(jù)全是0xFFFF,也就是說(shuō)沒(méi)有被代碼占用這些扇區(qū)。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

作者黃工,從事嵌入式軟件開(kāi)發(fā)工作8年有余,高級(jí)嵌入式軟件工程師,業(yè)余維護(hù)公眾號(hào)『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。