使用過Keil的同鞋都知道,現在Keil中默認可以輸出.axf的調試文件和可以通過鈎選輸出的.hex可執行文件,沒有bin(二進制)文件的輸出選項。可是偏偏某些時候需要或者習慣性的使用.bin文件來進行燒寫,下面各舉一例:
1. 一直使用ADS的用戶習慣性的使用.bin文件;
2. 某些燒寫器帶的應用軟件只支持.bin文件;
3. 正如筆者遇到的情況,我在使用STM32公司提供的網絡更新固件程序的例程時,需要用到.bin文件(.hex文件通過網絡更新后遇到某些問題,而且用Hex2Bin軟件轉換后的也不行)。
其實Keil也自帶了工具軟件,只要進行適當配置便可以輸出bin文件了,不過在介紹具體方法前,請仔細閱讀下面這一段關於Keil中自帶的fromelf.exe工具說明:
該工具的語法為:fromelf [options] input_file
其中options中的選項及說明如下:
命令選項格式
命令 |
說明 |
--help |
顯示幫助信息 |
--vsn |
顯示版本信息 |
--output file |
輸出文件(默認輸出為文本文件) |
--nodebug |
在生成的映像文件中不包含調試信息 |
--nolinkview |
在生成的映像文件中不包含段的信息 |
二進制輸出格式
選項 |
說明 |
--bin |
輸出plain binary格式的文件 |
--m32 |
生成Motorola 32位十六進制格式的文件 |
--i32 |
生成Intel 32位的十六進制格式的文件 |
--vhx |
面向字節的位十六進制格式的文件 |
--base addr |
設置m32,i32格式文件的基地址 |
--text |
顯示文本信息,文本信息標志如下: -v 打印詳細信息 -a 打印數據地址(針對帶調試信息的映 像) -d 打印數據段的內容 -e 打印表達式表 -f 打印消除虛函數的信息 -g 打印調試表 -r 打印重定位信息 -s 打印字符表 -t 打印字符串表 -y 打印動態段的內容 -z 打印代碼和數據大小信息 |
講完了工具的語法,下面就講如何在Keil中運用該自帶的工具,以使在工程編譯后能生成.bin格式的文件:
1. 打開一個建好的工程文件,就不舉例說明了。
2. 打開OptionsforTarget ‘工程名稱’對話框,可直接點圖標,如下圖:
3. 選擇User標簽頁,並進行如下圖一樣的配置:
4. 根據User頁的配置還要配置Output頁面,具體如下:
5. 點擊OK確定,然后再重新編譯則會按照上圖中的配置路徑生成.bin格式的文件了:
OK,打完收工…………希望對大家有點幫助!