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 文件。