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

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

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

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

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2022-10-20 09:16 ? 次閱讀
本人很久以前寫過一篇文章 《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 的對比。

注:本文測試的MCUXpresso IDE版本是v11.6.0_8187。

一、各種IDE下生成鏡像文件的方法

我們先來看看MCUXpress以外的其它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)。

63a85118-5014-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.binielftool.exe --ihex app.out app.hexielftool.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)致命令出錯(cuò)),也能達(dá)到一樣的效果。

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

63bc9baa-5014-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 HEXfile,則可以生成hex格式鏡像文件,不過要想生成其他bin/srec格式鏡像文件需要想其他辦法。

63c51794-5014-11ed-a3b6-dac502259ad0.png

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

fromelf.exe --bin app.out --output app.binfromelf.exe --i32 app.out --output app.hexfromelf.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

63d909b6-5014-11ed-a3b6-dac502259ad0.png

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

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

63e335a8-5014-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"

63f1a688-5014-11ed-a3b6-dac502259ad0.png


審核編輯 :李倩


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

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347774
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

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

    關(guān)注

    0

    文章

    158

    瀏覽量

    10651

原文標(biāo)題:MCUXpresso IDE下生成鏡像文件的方法及其與IAR,MDK差異

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    佩特科技PET_A40I_P03安卓通用主板簡介

    開發(fā)過程中,一般使用 PhoenixSuit 進(jìn)行鏡像文件的燒寫。
    的頭像 發(fā)表于 08-15 14:18 ?155次閱讀
    佩特科技PET_A40I_P03安卓通用主板簡介

    MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯(lián)合調(diào)試i.MXRT1170雙核工程的三種方法
    的頭像 發(fā)表于 08-08 15:18 ?247次閱讀
    <b class='flag-5'>MCUXpresso</b> <b class='flag-5'>IDE</b>下在線聯(lián)合調(diào)試雙核MCU工程的三種<b class='flag-5'>方法</b>

    stm32mp157編譯燒錄運(yùn)行到uboot串口無輸出怎么解決?

    1.大概2月前后,參考第2部分的方法,生成sdcard鏡像文件并燒錄的步驟,生成了sdcard鏡像文件并燒錄到sd卡,然后我一直使用這個(gè)sd
    發(fā)表于 07-05 08:11

    STM32MP157燒錄Yocto下載完的鏡像文件時(shí)發(fā)生錯(cuò)誤的原因?

    當(dāng)下載完Yocto基本鏡像文件后打算燒錄到系統(tǒng)里,卻發(fā)生了這個(gè)錯(cuò)誤,使用的.tsv文件是 FlashLayout_emmc_stm32mp157d-ev1-optee.tsv 錯(cuò)誤是說 Error
    發(fā)表于 03-29 09:02

    如何使用Yocto更新已更改的TF-A設(shè)備樹來產(chǎn)生新的鏡像文件?

    求助大佬, 我用Yocto構(gòu)建了STM32MP157的鏡像文件,但我需要更改和移植TF-A和U-BOOT來適配我的板子, 我按照它正點(diǎn)原子教程里更改了.bl2和創(chuàng)建了新的.dtsi設(shè)備樹文件,但
    發(fā)表于 03-29 08:01

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    Workspace To Unified IDE 選擇導(dǎo)出的路徑文件位置 這時(shí)候就會在所選路徑下生成遷移腳本migrate.py,然后打開 VivadoTcl Shell ,cd到腳本文件
    發(fā)表于 03-24 17:14

    佩特科技PET_A40I_P02安卓屏產(chǎn)品簡介

    開發(fā)過程中,一般使用 PhoenixSuit進(jìn)行鏡像文件的燒寫。
    的頭像 發(fā)表于 12-21 10:34 ?658次閱讀
    佩特科技PET_A40I_P02安卓屏產(chǎn)品簡介

    keil如何生成bin文件

    Keil是一種集成開發(fā)環(huán)境(IDE),專為ARM架構(gòu)的嵌入式系統(tǒng)開發(fā)而設(shè)計(jì)。在Keil中生成bin文件是將代碼編譯并轉(zhuǎn)換為可執(zhí)行文件的過程。本文將詳細(xì)介紹Keil
    的頭像 發(fā)表于 12-15 13:43 ?9731次閱讀

    ADgerber文件怎么生成PCB

    生成ADGerber文件是將電路板設(shè)計(jì)轉(zhuǎn)化為可供PCB加工廠制造的圖像文件的過程。下面詳細(xì)介紹關(guān)于如何生成ADGerber文件。 ADGer
    的頭像 發(fā)表于 12-07 17:19 ?2720次閱讀

    怎么下載centos鏡像文件

    CentOS 是一個(gè)基于 Linux 的操作系統(tǒng),它是一種穩(wěn)定、強(qiáng)大且易于使用的發(fā)行版。CentOS 鏡像文件是用于安裝和部署 CentOS 操作系統(tǒng)的文件。在本文中,我們將詳細(xì)介紹如何下載
    的頭像 發(fā)表于 11-23 10:48 ?932次閱讀

    MCUXpresso IDE下將源碼制作成Lib庫方法及其與IAR,MDK差異

    MCUXpresso IDE下將源碼制作成Lib庫方法及其與IAR,MDK差異
    的頭像 發(fā)表于 11-07 17:13 ?1009次閱讀
    <b class='flag-5'>MCUXpresso</b> <b class='flag-5'>IDE</b>下將源碼制作成Lib庫<b class='flag-5'>方法</b>及其與IAR,MDK差異

    安全引導(dǎo)的作用和原理是什么

    安全引導(dǎo)可用于保證系統(tǒng)的完整性,防止系統(tǒng)中重要鏡像文件被破壞或替換。 一般情況下,安全引導(dǎo)需要保護(hù) ? 系統(tǒng)的BootLoader鏡像文件、 ? TEE鏡像文件、 ? Linux內(nèi)核鏡像文件
    的頭像 發(fā)表于 11-07 15:21 ?1029次閱讀

    手把手帶您使用MCUXpresso Config Tools生成USB組合設(shè)備

    手把手帶您使用MCUXpresso Config Tools生成USB組合設(shè)備
    的頭像 發(fā)表于 10-31 16:55 ?990次閱讀
    手把手帶您使用<b class='flag-5'>MCUXpresso</b> Config Tools<b class='flag-5'>生成</b>USB組合設(shè)備

    MCUXpresso調(diào)試其它工具鏈生成的項(xiàng)目

    MCUXpresso調(diào)試其它工具鏈生成的項(xiàng)目
    的頭像 發(fā)表于 10-31 16:42 ?409次閱讀
    用<b class='flag-5'>MCUXpresso</b>調(diào)試其它工具鏈<b class='flag-5'>生成</b>的項(xiàng)目

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

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