關(guān)于IAREWSTM8 HEX文件
研究了一下BIN與HEX的關(guān)系,發(fā)現(xiàn)由BIN轉(zhuǎn)到HEX比較簡(jiǎn)單,但是由BIN轉(zhuǎn)到HEX就覺得多了一行東西。
上圖看一下:
用別人寫的代碼也是一樣多出來。
上網(wǎng)找了一下發(fā)現(xiàn)也有人跟我遇到相同的問題:http://bbs.21ic.com/icview-187817-1-1.html
并且給出了答案
以":0400000508004ABDE8"為例子。
其中的地址是0x08004ABD,當(dāng)下載代碼到芯片里后(不勾選 run to main),程序恰好停在 0x08004ABD,對(duì)應(yīng)于標(biāo)號(hào): __iar_program_start
維基百科是這么說:
http://en.wikipedia.org/wiki/Intel_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.
根據(jù)http://en.wikipedia.org/wiki/X86_assembly_language
Theinstruction pointeris called ip in 16-bit mode, eip in 32-bit mode, and rip in 64-bit mode. The instruction pointer register points to the memory address which the processor will next attempt to execute
實(shí)際上 EIP 寄存器就是 STM8或者ARM芯片的PC指針。
可見,上面維基百科的描述是對(duì)的:類型05后面跟的是4字節(jié)地址,將賦給(STM8或者ARM芯片的)PC指針。