国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
    • 一、其它IDE下生成鏡像文件的方法
    • 二、MCUXpresso IDE下生成鏡像文件的方法
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

三種常用IDE下花式生成鏡像文件的方法

2022/10/23
1315
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下生成鏡像文件的方法及其與IAR,MDK差異。

痞子衡很久以前寫過一篇文章 《ARM Cortex-M鏡像文件(.bin/.hex/.s19)》,詳細介紹了三種流行的鏡像文件格式,這些鏡像文件不同于可執(zhí)行文件(.elf),它們主要保存的是芯片能夠執(zhí)行的二進制機器碼數(shù)據(jù),以及輔助的地址信息和校驗和,其他像 .elf 文件里有的工程信息、代碼信息、調(diào)試信息全部被去除了,說白了鏡像文件主要是為最終量產(chǎn)過程而生的。

一般情況下,在 IDE 開發(fā)環(huán)境里編譯鏈接生成的是可執(zhí)行文件,然后可以在工程選項做一些設(shè)置能進一步生成鏡像文件。不同 IDE 下生成鏡像文件的方法不同,今天痞子衡主要介紹 MCUXpresso IDE 下生成鏡像文件的方法以及與 IAR/MDK 的對比。

Note: 痞子衡測試的MCUXpresso IDE版本是v11.6.0_8187。

一、其它IDE下生成鏡像文件的方法

我們先來看看其它 IDE 下是如何生成各種格式鏡像文件的。我們以 SDK_2.11.1_MIMXRT1170-EVKboardsevkmimxrt1170demo_appshello_worldcm7 目錄下的工程文件為例。

 
1.1 IAR EWARM下

編譯 hello_world_demo_cm7.eww 工程(隨便選擇 debug build),會在工程目錄 debug 文件夾下生成可執(zhí)行文件 hello_world_demo_cm7.out。如果在工程選項 Output Converter 里開啟 Generate additional output,則可以指定生成想要的鏡像文件(bin/hex/srec)。

 

 

如果你仔細看 Build 窗口的 log 信息,會發(fā)現(xiàn) IDE 其實是在可執(zhí)行文件生成之后,再借助 IAR SystemsEmbedded Workbench 9.10.2armbinielftool.exe 小工具對可執(zhí)行文件做的二次轉(zhuǎn)換生成的鏡像文件。

ielftool.exe --bin  app.out app.bin
ielftool.exe --ihex app.out app.hex
ielftool.exe --srec app.out app.s19

所以其實在工程選項 Build Actions 里的 Post-build command line 添加如下調(diào)用 ielftool.exe 做轉(zhuǎn)換的命令(CMD /C 的意思是以 bat 文件內(nèi)容方式打開后面的命令;命令需要用雙引號括起來;路徑也需要單獨用雙引號括起來,防止路徑中存在空格,導(dǎo)致命令出錯),也能達到一樣的效果。


CMD /C ""$TOOLKIT_DIR$binielftool.exe" --bin "$PROJ_DIR$/debug/hello_world_demo_cm7.out" "$PROJ_DIR$/debug/hello_world_demo_cm7.bin""

 

 

1.2 Keil MDK下

編譯 hello_world_demo_cm7.uvprojx 工程(也選擇 debug build),會在工程目錄 debug 文件夾下生成可執(zhí)行文件 hello_world_demo_cm7.out。如果在工程選項 Output 里開啟 Create HEX file,則可以生成 hex 格式鏡像文件,不過要想生成其他 bin/srec 格式鏡像文件需要想其他辦法。

 

MDK 下其實也有類似 IAR 下的鏡像文件轉(zhuǎn)換小工具,即 Keil_v5ARMARMCCbinfromelf.exe,這個小工具可以幫助生成其他格式的鏡像文件。

fromelf.exe --bin app.out --output app.bin
fromelf.exe --i32 app.out --output app.hex
fromelf.exe --m32 app.out --output app.srec

在工程選項 User 里的 After build 添加如下調(diào)用 formelf.exe 做轉(zhuǎn)換的命令就可以得到指定格式的鏡像文件了。

$KARMARMCCbinfromelf.exe --bin [email protected] !L

 

 

二、MCUXpresso IDE下生成鏡像文件的方法

MCUXpresso IDE 下生成鏡像文件的方法與 IAR/MDK 稍有不同,其并不是在工程選項里去開啟,而是工程目錄里會有 Binaies 虛擬文件夾(如果看不到該文件夾,可以按 F5 刷新一下),編譯完成后在 Binaies 文件夾下會看到可執(zhí)行文件(evkmimxrt1170_hello_world_demo_cm7.axf),右擊可執(zhí)行文件在 Binary Utilities 里可以看到不同格式鏡像文件生成選項。

 

我們知道 MCUXpresso IDE 是基于標(biāo)準(zhǔn) ARMGCC 的二次封裝,所以其生成鏡像文件的能力其實是靠得 MCUXpressoIDE_11.6.0_8187idetoolsbinarm-none-eabi-objcopy.exe 小工具。

arm-none-eabi-objcopy.exe -O binary app.axf app.bin
arm-none-eabi-objcopy.exe -O ihex   app.axf app.hex
arm-none-eabi-objcopy.exe -O srec   app.axf app.srec

因此在 MCUXpresso IDE 下我們也可以像 IAR/MDK 那樣添加 Post-build steps 命令來完成鏡像文件的生成。

arm-none-eabi-objcopy -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"

 

至此,MCUXpresso IDE下生成鏡像文件的方法及其與IAR,MDK差異痞子衡便介紹完畢了,掌聲在哪里~~~

相關(guān)推薦

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

碩士畢業(yè)于蘇州大學(xué)電子信息學(xué)院,目前就職于恩智浦(NXP)半導(dǎo)體MCU系統(tǒng)部門,擔(dān)任嵌入式系統(tǒng)應(yīng)用工程師。痞子衡會定期分享嵌入式相關(guān)文章

保定市| 扎鲁特旗| 寻乌县| 广安市| 思南县| 襄樊市| 房山区| 达尔| 襄垣县| 庆元县| 绩溪县| 宽甸| 奇台县| 江油市| 泸定县| 商水县| 昌都县| 中宁县| 蕉岭县| 新化县| 泰宁县| 两当县| 怀安县| 石台县| 高安市| 海淀区| 迭部县| 黑水县| 阿鲁科尔沁旗| 尖扎县| 伽师县| 和静县| 惠州市| 永修县| 花垣县| 文登市| 昭苏县| 长沙市| 乾安县| 台南县| 上犹县|