這周工作終於不太忙了,可以寫點筆記總結一下了。

之前的文章如何在Keil-MDK開發環境生成Bin格式文件,介紹了如何在Keil開發環境使用fromelf軟件,將生成的axf文件轉換為bin文件,這次我們再來介紹一下如何將elf文件轉換為hex文件。
如何將elf文件轉換為hex文件
elf(Executable and Linkable Format)文件一般是由gcc編譯器生成的,在Linux開發環境使用較多,但Windows一般情況下需要使用hex文件來進行燒錄,那么如何將elf格式轉換為hex格式呢?elf轉hex有兩種方式,一個是使用Keil環境自帶的fromelf.exe工具,第二個是使用arm-gcc編譯器下的arm-none-eabi-objcopy.exe工具。
先看一下我電腦上的文件路徑
測試文件路徑
D:\ELF
|-- arm-none-eabi-objcopy.exe
|-- arm_file.hex
|-- formelf_file.hex
|-- output.elf
fromelf文件路徑
E:\Keil_v5\ARM\ARMCC_505u2\bin\fromelf.exe
arm-none-eabi-objcopy.exe文件路徑
D:\ELF\arm-none-eabi-objcopy.exe
使用formelf工具將elf文件轉換為hex文件
"E:/Keil_v5/ARM/ARMCC_505u2/bin/fromelf.exe" --i32combined --output="D:/ELF/formelf_file.hex" "D:/ELF/output.elf"
命令說明:
--i32combined表示生成hex文件
--output=指定輸出hex文件的存儲路徑和文件名
"D:/ELF/output.elf"指定輸入elf文件的路徑
使用arm-none-eabi-objcopy工具將elf文件轉換為hex文件
"D:/ELF/arm-none-eabi-objcopy.exe" -O ihex "D:/ELF/output.elf" "D:/ELF/arm_file.hex"
-O ihex表示生成hex文件,這里要注意是大寫的O。

注意
- 從兩種方法生成的hex文件來看,還是有一些區別的,但程序運行都是一樣的。
- fromelf.exe不能拿出來單獨運行,它還依賴於Keil安裝目錄下的其他文件
- arm-none-eabi-objcopy可以拿出來單獨運行
arm-none-eabi-objcopy及測試文件下載地址:ELF.rar
歷史精選文章:
- Jlink使用技巧之讀取STM32內部的程序
- Jlink使用技巧之單獨下載HEX文件到單片機
- Jlink使用技巧之J-Scope虛擬示波器功能
- 百度智能手環方案開源(含源碼,原理圖,APP,通信協議等)
- 如何在Keil-MDK開發環境生成Bin格式文件
- elf格式轉換為hex格式文件的兩種方法
- 兩個HC-05藍牙模塊互相綁定構成無線串口模塊
- STM32實戰應用(一)——1602藍牙時鍾1液晶的顯示測試
- 單片機之模塊化編程
- 單片機課程設計——《基於AT89S52單片機和DS1302時鍾芯片的電子時鍾(可藍牙校准)》
- 個人博客添加網易雲音樂Flash插件
- 兩行代碼搞定博客訪問量統計
歡迎大家關注我的個人博客
或微信掃碼關注我的公眾號

