久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機常用輸出格式--Hex-80(Hex 386)

單片機常用輸出格式--Hex-80(Hex 386)

作者: 時間:2016-11-23 來源:網絡 收藏

單片機常用輸出格式--Hex-80(Hex 386)

我前面曾經介紹了Intel 32 bit Hex,但并不是所有的.hex文件都屬于這種格式。Keil輸出的hex文件則是另外一個類似的格式Hex-80。與前者類似,紀錄的格式為:
:LLAAAARRDDDD………DDDDCC
LL: Length field-長度段:數據段(D)的字節數
AAAA: Address field-地址段:數據段第一個字節的地址
RR: Record type-紀錄類型,00代表數據,01代表紀錄結束
DD..: Data field-數據段
CC: CheckSum field-校驗和:計算方法是將本條記錄冒號開始的所有對字母<不包括本效驗字和冒號>所表示的十六進制數字<一對字母表示一個十六進制數,這樣的一個十六進制數為一個字節>都加起來然后模除256得到的余數最后求出余數的補碼即是本效驗字節cc.

例子::011B50002272
LL = 0x01
AAAA = 0x1B50
RR=0x00
DD=0x22
CHECK SUM = ~((0x01+0x1B+0x50+0x22)&0xFF)+1 = 0x72

與Intel 32不同,由于Hex-80用于64K地址范圍以內的系統,所以沒有基址設定的指令。如果在Keil-51中,用跨BANK的方式超過了64K,編譯器會產生多個HXX文件來標識BANK。如:
test.h00
test.h01
test.h02
分別在每個bank的視角來產生64K代碼空間。對于Common Bank由于其在每個Bank的視角中都存在,所以在幾個文件中都有同樣的存在,這點要求編程人員注意。
還有,貌似Keil產生的Hex-80文件地址并不連續~天曉得Keil為什么不規整一下。


評論


技術專區

關閉