52/70 MDK編譯生成.bin文件


layout: "post"
title: "MDK編譯生成.bin文件"
date: "2017-04-20 13:08"


使用 MDK 時,我們實際燒錄的文件其實是 .axf 文件,所以一般情況下我們不需要編譯出 .bin 或 .hex 文件。

生成 .hex 文件時,需要在工程打開狀態(tài) MDK 的 Options for Target 選項中,點擊 Output 選項,在中間的 Create HEX File 的空白矩形框上打上勾即可。 .hex 文件可以使用第三方燒寫工具燒錄到 MCU 中,但是一些燒錄工具或者芯片只支持 .bin 文件的燒錄,這時候我們需要 MDK 能夠輸出 .bin 文件,并且 .bin 文件遠要比 .hex 來的通用些。

下面說下如何生成 .bin 文件:

  • 打開 Options for Target 'xxx' 對話框,選擇 User 標簽頁。
  • 構(gòu)選 Run User Programs After Build/Rebuild 框中的 Run#1 多選框,在后邊的文本框中輸入 C:/Keil_v5/ARM/ARMCC/bin/fromelf.exe --bin -o ../OBJ/consumer.bin ../OBJ/consumer.axf ,這條命令類似于 gcc ,對于不同的版本 fromelf.exe 軟件位置不同,如果找不到可以嘗試手動搜索,如果設(shè)置完編譯不成功則代表你的路徑有問題需要仔細檢查路徑位置,目錄的當前路徑為 uvproj 工程文件所在位置,我的輸出路徑為工程目錄上一級的下的 OBJ 文件夾。
  • 重新編譯文件,在 ./OBJ/ 文件夾下生成了 consumer.bin 文件。

直接在 CMD.exe 下運行 fromelf 工具則可以看到所有的選項和基本命令,這邊僅列出最常用的一些內(nèi)容:

  • --bin:輸出二進制文件
  • --i32:Intel 32位Hex
  • --m32:Motorola 32位Hex
  • --output <file>:file為輸出文件名
  • -o<file>:這個是armcc編譯器命令,也可用于這里,指定輸出文件的名字

轉(zhuǎn)換過程實際是:通過fromelf.exe工具進行轉(zhuǎn)換,將 .axf 格式的文件轉(zhuǎn)換成 .bin 格式的文件。你也可以不通過 MDK ,而是直接在 CMD.exe 窗口下運行 C:/Keil_v5/ARM/ARMCC/bin/fromelf.exe --bin -o ../OBJ/consumer.bin ../OBJ/consumer.axf 手動將 .axf 文件 轉(zhuǎn)換成 .bin 文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容