新聞中心
本文轉(zhuǎn)載自微信公眾號(hào)「strongerHuang」,作者strongerHuang。轉(zhuǎn)載本文請(qǐng)聯(lián)系strongerHuang公眾號(hào)。

創(chuàng)新互聯(lián)一直通過網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以做網(wǎng)站、網(wǎng)站設(shè)計(jì)、移動(dòng)互聯(lián)產(chǎn)品、全網(wǎng)營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。十余年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
現(xiàn)在很多產(chǎn)品都有IAP(BootLoader)和APP(應(yīng)用程序),一般在量產(chǎn)的時(shí)候,需要把兩部分程序合在一起。
一般來說,通過編程(下載)工具就能實(shí)現(xiàn)程序拼接,以及hex/bin格式互轉(zhuǎn)。
下面結(jié)合STM32,以及對(duì)應(yīng)的ST-LINK Utility、STM32CubeProg工具給大家簡(jiǎn)單描述下:
- IAP、APP程序拼接
- hex、bin格式的互轉(zhuǎn)
1理解bin、hex、axf
想要掌握程序IAP+APP程序拼接,需要理解程序文件hex、bin文件格式內(nèi)容。
用一個(gè)表格來區(qū)分bin、hex和axf三者的關(guān)系:
| bin | hex | axf |
| 程序數(shù)據(jù) | 程序數(shù)據(jù) | 程序數(shù)據(jù) |
| 地址、類型、校驗(yàn)等標(biāo)記信息 | 地址、類型、校驗(yàn)等標(biāo)記信息 | |
| 調(diào)試信息 |
Bin文件
Bin文件就是一種沒有格式的程序文件,只是包含了程序數(shù)據(jù)。
Hex文件
Hex是由Intel制定的一種十六進(jìn)制標(biāo)準(zhǔn)文件格式,是由編譯器轉(zhuǎn)換而成的一種用于下載帶處理器里面的文件。
Hex文件格式是由一行一行的十六進(jìn)制數(shù)據(jù)組成,每行包含:開始、長(zhǎng)度、數(shù)據(jù)、類型、校驗(yàn)和等重要信息。
axf文件
axf文件是經(jīng)過編譯器編譯之后,包含具有程序、調(diào)試等更多信息的一種文件。
對(duì)比MDK-ARM編譯后三個(gè)文件大小
Objects目錄下:
- Demo.axf(236K)
- Demo.hex(4K)
Bin目錄下:
- Demo.bin(2K)
2通過工具實(shí)現(xiàn)IAP+APP拼接
用于產(chǎn)品量產(chǎn),燒錄的程序文件,一般是hex,或bin文件。
不管是hex文件,還是bin文件,我們都需要通過燒錄軟件 + 燒錄(編程)工具實(shí)現(xiàn)。
燒錄軟件針對(duì)不同MCU,一般有不同的燒錄軟件。
針對(duì)STM32,一般建議使用官方提供的STVP、ST-LINK Utility和STM32CubeProg 這三種編程軟件。
拼接說明
拼接IAP+APP兩段程序,一般簡(jiǎn)單方法就是:將兩個(gè)程序分別燒錄進(jìn)去,再統(tǒng)一讀取出來,保存成一個(gè)量產(chǎn)文件。
拼接說明
IAP 和 APP程序的起始地址是不同的,因此燒錄進(jìn)芯片,是存儲(chǔ)在兩片區(qū)域的。
燒錄程序的時(shí)候,特別是燒錄bin文件(沒有地址)時(shí),要注意設(shè)置好起始地址。hex文件有地址地址,不用自己設(shè)置地址。
讀取“合并”程序的時(shí)候,同樣要注意起始地址,還有讀取大小,保證讀取全部程序。
比如通過ST-LINK Utility讀取STM32程序:
通過STM32CubeProg讀取STM32程序:
再次提示:
- 燒錄bin文件時(shí),設(shè)置好起始地址;
- 讀取時(shí),設(shè)置起始地址,讀取大小;
- 保存可選擇hex,還是bin文件;
3通過工具實(shí)現(xiàn)bin、hex格式轉(zhuǎn)換
在某些情況下需要使用特定格式的文件,比如我們遠(yuǎn)程升級(jí),要求通過bin文件實(shí)現(xiàn)。
通過上面的介紹,其實(shí)你會(huì)發(fā)現(xiàn),使用編程軟件ST-LINK Utility,或STM32CubeProg,就能直接另存為hex,或bin文件格式。
ST-LINK Utility另存為:
STM32CubeProg另存為:
之前我有介紹在MDK-ARM中,直接轉(zhuǎn)換成bin文件的文章:Keil MDK利用 fromelf 實(shí)現(xiàn)axf 轉(zhuǎn) bin 的方法
當(dāng)然,這些方法是比較簡(jiǎn)單,也比較使用的方法。bin和hex格式文件互相轉(zhuǎn)換的工具,網(wǎng)上有很多,感興趣的朋友可以搜索了解一下。
分享名稱:IAP、APP程序拼接,及Hex/Bin格式互轉(zhuǎn)
轉(zhuǎn)載源于:http://m.fisionsoft.com.cn/article/cdsedgp.html


咨詢
建站咨詢
