0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

痞子衡嵌入式 ? 來源:痞子衡嵌入式 ? 作者:痞子衡嵌入式 ? 2022-10-24 14:08 ? 次閱讀

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

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

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

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

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

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

1.1 IAR EWARM下

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

a708817a-5123-11ed-a3b6-dac502259ad0.png

如果你仔細(xì)看 Build 窗口的 log 信息,會發(fā)現(xiàn) IDE 其實(shí)是在可執(zhí)行文件生成之后,再借助 IAR SystemsEmbedded Workbench 9.10.2arminielftool.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

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

CMD /C ""$TOOLKIT_DIR$inielftool.exe" --bin "$PROJ_DIR$/debug/hello_world_demo_cm7.out" "$PROJ_DIR$/debug/hello_world_demo_cm7.bin""
a72e4266-5123-11ed-a3b6-dac502259ad0.png

1.2 Keil MDK下

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

a74d5bd8-5123-11ed-a3b6-dac502259ad0.png

MDK 下其實(shí)也有類似 IAR 下的鏡像文件轉(zhuǎn)換小工具,即 Keil_v5ARMARMCCinfromelf.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

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

$KARMARMCCinfromelf.exe --bin --output=debug@L.bin !L
a75bd1ea-5123-11ed-a3b6-dac502259ad0.png

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

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

a780e69c-5123-11ed-a3b6-dac502259ad0.png

我們知道 MCUXpresso IDE 是基于標(biāo)準(zhǔn) ARMGCC 的二次封裝,所以其生成鏡像文件的能力其實(shí)是靠得 MCUXpressoIDE_11.6.0_8187ide oolsinarm-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"
a79a8d86-5123-11ed-a3b6-dac502259ad0.png

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    46540
  • Cortex-M
    +關(guān)注

    關(guān)注

    2

    文章

    227

    瀏覽量

    29659
  • 鏡像
    +關(guān)注

    關(guān)注

    0

    文章

    158

    瀏覽量

    10651
  • mcuxpresso
    +關(guān)注

    關(guān)注

    1

    文章

    38

    瀏覽量

    4116

原文標(biāo)題:三種常用IDE下花式生成鏡像文件的方法

文章出處:【微信號:pzh_mcu,微信公眾號:痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何制作ISO光盤鏡像文件

    如何制作光盤鏡像文件NERO軟件不管是刻錄還是做鏡像文件,都是很好用的。下面介紹一如何制作:有的時候我們不喜歡Nero直接刻盤,呵呵,比方說刻錄盤用完了,而要保存一張光盤的內(nèi)容留待以后再刻,或是刻
    發(fā)表于 09-11 16:10

    Linux鏡像文件

    RedHat9 鏡像文件下載
    發(fā)表于 01-21 10:45

    如何制作光盤鏡像文件

    如何制作光盤鏡像文件 NERO軟件不管是刻錄還是做鏡像文件,都是很好用的。下面介紹一如何制作:有的時候我們不喜歡Nero
    發(fā)表于 09-11 16:03 ?3w次閱讀
    如何制作光盤<b class='flag-5'>鏡像文件</b>

    centos5.5鏡像文件

    centos5.5鏡像文件下載文檔后可以看到百度網(wǎng)盤鏈接及密碼。
    發(fā)表于 03-11 14:26 ?15次下載

    ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件

    ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件 將PL與PS部分一起使用,并且通過JTAG下載到板子運(yùn)行。對于ZYNQ,有多種啟動方式,比如從JTAG啟動、從QSPI(即Flash
    的頭像 發(fā)表于 05-28 11:42 ?6242次閱讀
    ZYNQ-7000如何<b class='flag-5'>生成</b>從Flash和SD卡啟動的<b class='flag-5'>鏡像文件</b>

    ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件

    ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件 將PL與PS部分一起使用,并且通過JTAG下載到板子運(yùn)行。對于ZYNQ,有多種啟動方式
    的頭像 發(fā)表于 12-01 08:38 ?7512次閱讀
    ZYNQ-7000如何<b class='flag-5'>生成</b>從Flash和SD卡啟動的<b class='flag-5'>鏡像文件</b>

    光盤鏡像文件測試工具應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是光盤鏡像文件測試工具應(yīng)用程序免費(fèi)下載。
    發(fā)表于 08-31 08:00 ?0次下載

    鏡像文件下載到SD卡中的方法

    本文介紹如何將事先制作好的鏡像文件下載到SD卡中,然后做一些基本配置,讓樹莓派(Raspberry pi 4B)能夠連上wifi,并且通過wifi登錄控制臺。
    的頭像 發(fā)表于 10-23 10:38 ?1.1w次閱讀
    <b class='flag-5'>鏡像文件</b>下載到SD卡中的<b class='flag-5'>方法</b>

    一文教大家如何制作鏡像文件

    調(diào)試。但是這樣只要一斷電,程序就會丟失,掉電不保存。 本文詳細(xì)介紹如何制作鏡像文件。將鏡像文件拷貝到 SD 卡,設(shè)置撥碼開關(guān),使系統(tǒng)從 SD 啟動。那么每次斷電重啟后,系統(tǒng)都會從 SD 啟動。這樣將程序做固化,掉電重啟后就不會丟失。 1.固化的流程 2. 固化準(zhǔn)備 首先,
    的頭像 發(fā)表于 08-09 16:52 ?8835次閱讀
    一文教大家如何制作<b class='flag-5'>鏡像文件</b>

    如何下載一個Rocky鏡像文件

    創(chuàng)建虛擬機(jī)之后,便可安裝Linux操作系統(tǒng),其安裝過程與Windows系統(tǒng)極為相似。如果你之前安裝過Windows系統(tǒng),那接下來的操作就不難了。在安裝Rocky Linux之前,我們還需要做一件事情 —— 下載一個Rocky鏡像文件。
    的頭像 發(fā)表于 10-14 09:13 ?2433次閱讀

    MCUXpresso IDE生成鏡像文件方法

    我們先來看看MCUXpress以外的其它IDE是如何生成各種格式鏡像文件的。我們以 SDK_2.11.1_MIMXRT1170-EVKoardsevkmimxrt1170demo_
    的頭像 發(fā)表于 10-20 09:16 ?1368次閱讀

    Linux內(nèi)核常用的幾種鏡像文件

    簡述幾種常用的內(nèi)核鏡像文件:vmlinux、Image、zImage、bzImage、uImage、bootpImage、XIPImage等等。
    發(fā)表于 06-23 11:49 ?1.1w次閱讀
    Linux內(nèi)核<b class='flag-5'>常用</b>的幾種<b class='flag-5'>鏡像文件</b>

    學(xué)技術(shù) | 帶您認(rèn)識Microchip MPU之第六篇鏡像文件下載及測試

    制作SD卡Linux鏡像(如果VM購買并安裝了擴(kuò)展包,可直接在VM制作)?使用軟件工具---Etcher將Buildroot生成鏡像文件
    的頭像 發(fā)表于 02-08 15:03 ?633次閱讀
    學(xué)技術(shù) | 帶您認(rèn)識Microchip MPU之第六篇<b class='flag-5'>鏡像文件</b>下載及測試

    MCUXpresso IDE生成鏡像文件方法及其與IAR,MDK差異

    MCUXpresso IDE生成鏡像文件方法及其與IAR,MDK差異
    的頭像 發(fā)表于 09-28 17:05 ?744次閱讀
    MCUXpresso <b class='flag-5'>IDE</b>下<b class='flag-5'>生成</b><b class='flag-5'>鏡像文件</b>的<b class='flag-5'>方法</b>及其與IAR,MDK差異

    怎么下載centos鏡像文件

    CentOS 6 或 CentOS 8。其次,你需要選擇合適的鏡像文件類型。CentOS 發(fā)行版提供了三種主要類型的鏡
    的頭像 發(fā)表于 11-23 10:48 ?932次閱讀