Ⅰ
寫在前面
對于使用過BootLoader的朋友來說,本文說描述的這三個文件格式并不會陌生,而且還應(yīng)該有深入的了解。
本文接著上一篇文章講述兩點內(nèi)容:
1.格式轉(zhuǎn)換
2.bin、hex和axf的描述
Ⅱ
格式轉(zhuǎn)換 - fromelf.exe命令行選項字
上一篇文章講述的人【MDK-ARM如何生產(chǎn)Bin文件】,只是簡單的講述了實現(xiàn)過程,這里再簡單提一下有朋友問的問題:fromelf的格式和使用。
C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe --bin -o ./Objects/Demo.bin ./Objects/Demo.axf
Keil官網(wǎng)對fromelf.exe命令行選項字有詳細(xì)的講述,官網(wǎng)地址:
http://www.keil.com/support/man/docs/armutil/armutil_pge1362128884798.htm
Hex與Bin文件之間的互轉(zhuǎn),其實在Keil官網(wǎng)也是有相關(guān)工具和說明。
1.Bin轉(zhuǎn)Hex
Keil官網(wǎng)地址:
http://www.keil.com/download/docs/113.asp
2.Hex轉(zhuǎn)Bin
Keil官網(wǎng)地址:
http://www.keil.com/download/docs/7.asp
Ⅲ
bin、hex和axf的描述
本文說的bin、hex和axf文件,在我上一篇文章提供的例程中,編譯后就會生成。(Bin是由fromelf轉(zhuǎn)化而來,路徑可自己定義,我定義在bin下面)
這三種文件中,Hex應(yīng)該是最為常見的一種,就是下載到處理器里面的程序。其實,其他兩種也都可以下載到處理器里面,運行效果和Hex一樣,只是各自包含的信息有所差異。
上一篇文章提供的例程中,編譯后三個文件大小:
Objects目錄下:
Demo.axf(236K)
Demo.hex(4K)
Bin目錄下:
Demo.bin(2K)
從編譯后文件大小,我們可以猜測到bin文件是最精簡的一種文件,那么它和其他兩種有啥區(qū)別呢?
簡單來說,他們是一種包含的關(guān)系:axf的內(nèi)容包含了hex的內(nèi)容,而hex又包含了bin的內(nèi)容。
1.Hex文件
https://en.wikipedia.org/wiki/Intel_HEX
Intel HEXis a file format that conveys binary information in ASCII text form. It is commonly used for programming microcontrollers, EPROMs, and other types ofprogrammable logic devices. In a typical application, a compiler or assembler converts a program's source code (such as in C or assembly language) to machine code andoutputs it into a HEX file. The HEX file is then imported by a programmer to "burn" the machine code into a ROM, or is transferred to the target system for loading andexecution.
簡單來說:Hex是由Intel制定的一種十六進制標(biāo)準(zhǔn)文件格式,是由編譯器轉(zhuǎn)換而成的一種用于下載帶處理器里面的文件。
Hex文件格式是由一行一行的十六進制數(shù)據(jù)組成,每行包含:開始、長度、數(shù)據(jù)、類型、校驗和等重要信息。
2.Bin文件
Hex文件是有一定格式的,而Bin文件就是一種沒有格式的程序文件,只是包含了程序數(shù)據(jù)。
3.axf文件
這種文件,初學(xué)者應(yīng)該沒怎么了解過,但有一定經(jīng)驗的朋友應(yīng)該多少都有了解。說實話,之前我們用過一家公司的芯片,往芯片里面下載的程序文件就是axf文件。
一般axf文件大小都比較大,只要代碼稍微大一點,就會超過芯片F(xiàn)lash的大小,那么問題來了:下載比Flash還大的axf文件能成功嗎?
答案:能下載成功,而且能正常運行。
因為我們只往芯片里面下載了有效程序,還有許多調(diào)試信息沒有下載進去。
本文到此為止,簡單描述其內(nèi)容,后面講述IAP如何實現(xiàn),以及如何兼容既能升級應(yīng)用程序,又能升級BootLoader,還會進一步講述相關(guān)內(nèi)容。
-
bin
+關(guān)注
關(guān)注
1文章
33瀏覽量
13637 -
HEX
+關(guān)注
關(guān)注
0文章
37瀏覽量
17064 -
AXF
+關(guān)注
關(guān)注
0文章
3瀏覽量
6732
發(fā)布評論請先 登錄
請問DLP5530PGUQ1EVM所輸出的bin格式文件如何生成?
EE-110:ELF和DWARF文件格式快速入門

MOV文件與其他視頻格式的兼容性
EPS文件格式如何轉(zhuǎn)換 EPS和SVG文件的區(qū)別
hex格式和二進制的區(qū)別
最新的Aduino IDE 2.3.3如何輸出hex文件?
發(fā)掘3D文件格式的無限潛力:打造沉浸式虛擬世界

評論