單片機下載程序需要將c文件通過編譯器編譯成o文件通過連接器連接為一個main的o文件,再將main文件生成hex文件,hex文件即可通過下載器加載到我們的單片機。那么他到底是怎么樣子呢

從上圖來看,Hex就是一個16進制數(shù)文件,它具有一定格式,下面我們進行一些說明。
Hex文件的格式,如上圖所示,共包含6個部分,開始冒號為起始記錄,bb為字節(jié)個數(shù),aaaa為地址,dd為具體的數(shù)據(jù),cc為checksum部分。

02代表這部分Hex有兩個字節(jié),0400是這部分Hex的存儲地址,而00為其記錄類型(后續(xù)我們會介紹一下記錄類型有哪些種類),0034為數(shù)據(jù)部分,這里先存放低字節(jié)部分,后存放高字節(jié)部分。

記錄類型使用兩位二進制數(shù)據(jù)表示,共有四種形式,如上圖表示,其中00表示數(shù)據(jù)類型,01表示文件結(jié)尾記錄類型(后續(xù)我們對實際Hex進行說明)。

這里是結(jié)尾Hex數(shù)據(jù)表示,00代表有0個數(shù)據(jù),地址表示0x0000,記錄類型為0x01,checksum是0xFF。

使用一個實際的PIC16F1778的代表編譯出來的Hex進行說明,第一行Hex數(shù)據(jù)是02 0000 04 0000 FA,可以看出這里有兩個Hex字節(jié),地址為0x0000,記錄類型為擴展線性地址記錄,數(shù)據(jù)是0000,checksum為0xFA,對應(yīng)第一個PAGE存儲空間。第二行為04 0000 00 8031 0628 1D,這里顯示為四個數(shù)據(jù)字節(jié),地址為0x0000開始,類型為數(shù)據(jù)字節(jié),具體數(shù)據(jù)為0x3180,0x2806。
審核編輯:湯梓紅
-
單片機
+關(guān)注
關(guān)注
6076文章
45494瀏覽量
670251 -
嵌入式
+關(guān)注
關(guān)注
5198文章
20442瀏覽量
333964 -
文件
+關(guān)注
關(guān)注
1文章
594瀏覽量
26054 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51591 -
HEX
+關(guān)注
關(guān)注
0文章
37瀏覽量
17438
發(fā)布評論請先 登錄
嵌入式文件系統(tǒng)znFAT介紹
嵌入式Linux文件系統(tǒng)的研究與應(yīng)用
詳解嵌入式linux文件類型
嵌入式文件系統(tǒng)及特點
基于嵌入式視頻存儲的專用文件系統(tǒng)設(shè)計
支持Hex、Bin、Motorola S文件的開源庫使用
【嵌入式】文件操作
【嵌入式】構(gòu)建嵌入式Linux系統(tǒng)(uboot、內(nèi)核、文件系統(tǒng))
嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng))
Intel Hex 文件格式
嵌入式的HEX文件怎么來的
評論