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碼形...