日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hex文件解析

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hex文件解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hex(hexadecimal),十六進制的英文縮寫,*.hex為后綴的文件為稱之為hex文件,主要用于保
存單片機固件,可直接下載到單片機中,故又稱為可執行文件

1、 hex文件內容

  • 打開任意一個hex文件,內容如下(為了內容展示方便,已刪除中獎部分內容):

  • 整個文件以行為單位,每行以冒號開頭,內容全部為16進制碼(以ASCII碼形式顯示), 2個ASCII碼字符表示1個Hex字節。

2、 hex文件解析

hex文件的內容都是有規律的編碼,我們可以對它進行解析,以第一行 :020000040800F2 為例:

1) 每一行都以 :(0x3A)開頭

2) 第1個字節0x02 ,表示數據區的字節個數,用ASCII表示就是4個ASCII字符

3) 第2、3字節0x00, 0x00 ,表示偏移地址或無用填0

4) 第4個字節0x04, 表示本行記錄的數據類型

  • ‘00’ Data Record :用來記錄數據, 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) 第5、6個字節0x08, 0x00即是數據

6) 第7個字節0xF2是校驗字節,校驗和的算法為:計算從0x3A 以后(不包括0x3A)的所有各字節的和模256的余。即各字節二進制算術和,不計超過256的溢出值,然后用0x100減去這個算數累加和,得出得值就是此行得校驗和。

7) 每條數據最后還有<0x0d> (回車鍵)、 <0x0a>(換行鍵)

總結:hex文件的數據行可按如下方式解析:

  • 注意:由于每行標識數據地址的只有2Byte,所以最大只能到64K,為了可以保存高地址的數據,就有了Extended Linear Address Record。如果這行的數據類型是0x04,那么,這行的數據就是隨后數據的基地址。例如:
:020000040004F6 :1000000018F09FE518F09FE518F09FE518F09FE5C0 :1000100018F09FE5805F20B9F0FF1FE518F09FE51D
  • 第一行,是Extended Linear Address Record,里面的數據,也就是基地址是0x0004,
  • 第二行是Data Record,里面的地址值是0x0000。那么數據18F09FE518F09FE518F09FE518F09FE5要寫入FLASH中的地址為 (0x0004 << 16) | 0x0000,也就是寫入FLASH的0x40000這個地址。
  • 第三行的數據的寫入地址為0x40010。當一個HEX文件的數據超過7k的時候,文件中就會出現多個Extended Linear Address Record。

3、 分析示例:

  • :020000040800F2 -----首行給出燒錄的目標地址的高16位 : 0x0800

  • :100000003807002029020008B90300086F03000820 ----燒寫到0x0800 0000 處的數據

  • :10001000B5030008D10200084706000800000000F0 ----燒寫到0x0800 0010 處的數據

  • :040000050800018965 ----05類型的行對于燒寫程序無用

  • :00000001FF ----HEX文件結束行

    --- 完 ---

本文參考安富萊STM32開發板軟件參考手冊,筆者知識有限,如果發現本文有錯誤的地方歡迎批評、指正!

總結

以上是生活随笔為你收集整理的hex文件解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。