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