關于固件安全檢測,一文看懂hex文件、bin文件、axf文件的區别
- 分類:新聞資訊
- 作者:蘇州華克斯信息科技有限公司
- 來源:蘇州華克斯信息科技有限公司
- 發(fā)布時(shí)間:2024-01-24
- 訪問量:0
【概要描述】
關于固件安全檢測,一文看懂hex文件、bin文件、axf文件的區别
【概要描述】
- 分類:新聞資訊
- 作者:蘇州華克斯信息科技有限公司
- 來源:蘇州華克斯信息科技有限公司
- 發(fā)布時(shí)間:2024-01-24
- 訪問量:0
關于固件安全檢測,一文看懂hex文件、bin文件、axf文件的區别
固件漏洞安全檢測平台
醫療器械網絡安全漏洞識别—嵌入式系統安全掃描方案
在STM32開(kāi)發(fā)中,經(jīng)常會(huì)碰到hex文件、bin文件與axf文件,這(zhè)些都(dōu)是可以燒寫到闆子裡(lǐ)運行的文件。這(zhè)三個文件有什麼(me)區别呢?
可燒錄的文件
axf文件、hex文件與bin文件都(dōu)是可以運行在我們的stm32上的,它們都(dōu)存儲了編譯器根據源代碼生成(chéng)的機器碼,根據應用場合的不同,它們又有所區别。
axf文件:包含調試信息。
hex文件:包含地址信息。
bin文件:最直接的代碼映像。
axf文件是編譯默認生成(chéng)的文件,不僅包含代碼數據,而且還(hái)包含著(zhe)調試信息,在MDK裡(lǐ)進(jìn)行debug調試用的就(jiù)是這(zhè)個文件。
hex文件在MDK裡(lǐ)要勾選如下選項才可以生成(chéng):
hex 文件是一種(zhǒng)使用十六進(jìn)制符号表示的代碼記錄, 記錄了代碼應該存儲到FLASH 的哪個地址,下載器可以根據這(zhè)些信息輔助下載。
bin文件是根據axf文件生成(chéng)的,需要在MDK下添加類似如下格式命令來生成(chéng)對(duì)應的bin文件:
離線文件的燒錄方法
hex文件的燒錄,我們可以使用FlyMcu工具通過(guò)串口來下載:
FlyMcu不可以燒bin文件,因爲上面(miàn)說(shuō)過(guò)了bin文件隻包含最直接的代碼映像,不包含地址信息,會(huì)出現如下錯誤:
bin文件可以使用STM32CubeProgrammer軟件通過(guò)STLINK進(jìn)行下載:
總結:
hex .bin .elf .axf文件區别
一、bin
bin 文件是純粹的二進(jìn)制文件,内部無地址标記,可直接在裸機運行,如果下載運行,則需要下載到編譯時(shí)的地址。
二、hex
可理解爲帶存儲地址描述格式的 bin 文件,可通過(guò)串口下載到單片機内部。燒寫或下載 hex 文件時(shí),一般都(dōu)不需要用戶指定地址,因爲 hex 文件内部信息已經(jīng)包括了編譯時(shí)的地址。
三、elf
gcc編譯出來的是 elf 文件,包含了符号表、彙編、調試信息,可在 Linux 中運行,無法直接在裸機上運行。
它是可執行文件,必須在有操作系統環境中運行,如果沒(méi)有操作系統,將(jiāng) elf 文件燒寫進(jìn)去,包含了符号表、調試信息等,ARM 運行碰到這(zhè)些指令,就(jiù)會(huì)導緻失敗。
而這(zhè)個map文件就(jiù)是從elf提出取來的,非常直觀地(以文本形式)展現程序中的各文件包含了哪些函數變量,而這(zhè)些函數變量分配在哪些段,地址是什麼(me),以及其占用的空間大小等。
四、axf
可理解爲 bin 文件+ 調試信息,axf 文件由 ARM 編譯器産生,除了包含 bin 文件内容外,還(hái)附加其他調試信息。這(zhè)些調試信息加在可執行的二進(jìn)制數據之前,調試時(shí)這(zhè)些調試信息不會(huì)下載到 RAM 中,真正下載到 RAM 中的信息僅僅是可執行代碼。
axf文件、hex文件與bin文件都(dōu)是可以運行在我們的stm32上的,它們都(dōu)存儲了編譯器根據源代碼生成(chéng)的機器碼,根據應用場合的不同,它們又有所區别:
axf文件:包含調試信息。
hex文件:包含地址信息。
bin文件:最直接的代碼映像。
bin文件就(jiù)是最小的可以運行的文件了,其包含最直接的代碼映像。
這(zhè)三個文件中axf文件最大,hex文件次之,bin文件最小。
掃二維碼用手機看
更多資訊