STM32 hex檔案格式

2021-09-08 09:25:21 字數 1723 閱讀 8809

hex 是 intel 公司制定的一種使用 ascii 文字記錄機器碼或常量資料的檔案格式,它可以燒錄到mcu中,被mcu執行的一種檔案格式。乙個hex檔案由多條記錄組成,而每條記錄由5個部分組成,

格式如下:

「:aabbbbcc[dd...]ee」

用記事本開啟hex檔案如下:

:020000040801f1

:1000000018050020050401087d0201087f0201088f

:100010008102010883020108850201080000000036

:10002000000000000000000000000000870201083e

:1000300089020108000000008b0201088d020108fe

:100040001f0401081f0401081f0401081f04010800

:100050001f0401081f0401081f0401081f040108f0

:100060001f0401081f0401081f0401081f040108e0

:100070001f0401081f0401081f0401081f040108d0

:100080001f0401081f0401081f0401081f040108c0

:100090001f0401081f0401081f0401081f040108b0

:1000a0001f0401081f0401081f0401081f040108a0

:1000b0001f0401081f0401081f0401081f04010890

1、「:」:每條記錄的開頭都使用冒號來表示一條記錄的開始;

2、「aa」:表示這條記錄的實際資料的長度(16進製表示),即[dd...]中的資料長度;

3、「bbbb」:表示這條記錄中的資料寫到flash中的起始位址;

4、「cc」:表示這條記錄的型別,各個型別表示如下:

00:資料記錄

01:本檔案結束記錄

02:擴充套件位址記錄

04:擴充套件線性位址記錄(表示後面的記錄按這個位址遞增)

05:表示乙個線性位址記錄的起始位址(只適用於arm)

5、"[dd...]":表示乙個位元組的資料,一條記錄中有多少個位元組資料 ,aa表示它有多少個位元組的資料

6、"ee":表示本條記錄的校驗和,它是前面所有16進製制資料(除冒號以外,兩個數字為乙個位元組)和對256取模運算的結果的補碼

例如:1、在上面的第一行hex資料中

02:表示這條記錄實際資料的長度是2個位元組;

0000:表示這條記錄要儲存到的位址;

04:表示這是一條擴充套件線性位址記錄;

0801:因為這是一條擴充套件線性位址記錄,所以這部分表示位址的高16位,與前面的「0000」結合在一起,表示要擴充套件的線性位址為「 0x08010000」,這是stm32內部flash設定的偏移位址位址;

f1:表示校驗和,它的值為(0x02+0x00+0x00+0x04+0x08+0x01)%256的值再取補碼。

2、在上面的第二行hex資料中:

10:表示這條記錄資料區的長度為16位元組;

0000:表示這條記錄所在的位址,與前面的擴充套件記錄結合,表示這條記錄要儲存的flash首位址為(0x08010000+0x0000);

00:表示這是一條資料記錄,資料區的是位址;

18050020050401087d0201087f020108:這是要按位址儲存的資料;

8f:校驗和

HEX檔案格式

hex檔案格式描述 1intel hex檔案是由一行行符合intel hex檔案格式的文字所構成的ascii文字檔案。在intel hex檔案中,每一行包含乙個hex記錄。這些記錄由對應機器語言碼和 或常量資料的十六進製制編碼數字組成。intel hex檔案通常用於傳輸將被存於rom或者eprom中...

HEX檔案格式

nec微控制器編譯器pm 生成的燒錄檔案是hex檔案。hex檔案的intel格式 這是intel公司提出的按位址排列的資料資訊,資料寬度為位元組,所有資料使用16進製制數字表示.例子 10008000af5f67f0602703e0322cfa92007780c361 1000900089001c6...

hex檔案格式

hex檔案是可以燒寫到微控制器中,被微控制器執行的一種檔案格式,生成hex檔案的方式由很多種,可以通過不同的編譯器將c程式或者匯程式設計序編譯生成hex。hex檔案如果用特殊的程式來檢視 一般記事本就可以實現 開啟後可發現,整個檔案以行為單位,每行以冒號開頭,內容全部為16進製製碼 以ascii碼形...