以*.hex為后綴的文件我們稱之為HEX文件。 HEX的英語原始意思是16進制。這種文件格式主要用於保
存單片機固件。
整個文件以行為單位,每行以冒號開頭,內容全部為16進制碼,2個ASCII碼字符表示1個Hex字節
:02 0000 04 0804 EE
- 每行以冒號開頭
- 第1字節0x02表示數據區的字節個數,用ASCII表示就是4個ASCII字符。
- 第2、 3字節0x0000 表示偏移地址或無用填0
- 第4字節0x04表示本行記錄的類型
'00' Data Rrecord:用來記錄數據,HEX文件的大部分記錄都是數據記錄
'01' End of File Record: 用來標識文件結束,放在文件的最后,標識HEX文件的結尾
'02' Extended Segment Address Record: 用來標識擴展段地址的記錄
'03' Start Segment Address Record: 段地址 STM32不用
'04' Extended Linear Address Record: 用來標識擴展線性地址
'05' Start Linear Address Record: 程序啟動運行的地址 - 第5、 6字節表示數據區
- 最后1個字節是校驗字節。所有16進制碼的累加和(不計進位),檢驗和 = 0x100 - 累加和
:02 0000 04 0804 EE <---------------首行給出燒錄的目標地址的高16位 : 0x0804
:10 0000 00 A899 0020 C101 0408 830B 0408 3908 0408 DA <------- 燒寫到0x0804 0000 處的數據
:10 0010 00 7F0B 0408 AB02 0408 5518 0408 0000 0000 18 <------- 燒寫到0x0804 0010 處的數據
:04 0000 05 0804 01AD 3D <------- 05類型的行對於燒寫程序無用。見參看英文。
:00 0000 01 FF <------- HEX文件結束行
05 類型: Start Linear Address Record. The address field is 0000, the byte count is 04. The 4 data
bytes represent the 32-bit value loaded into the EIP register of the 80386 and higher CPU.
注:以上文字摘錄安富萊STM32-V6 開發板軟件開發手冊