关于IAREWSTM8 HEX文件
扫描二维码
随时随地手机看文章
研究了一下BIN与HEX的关系,发现由BIN转到HEX比较简单,但是由BIN转到HEX就觉得多了一行东西。
上图看一下:
用别人写的代码也是一样多出来。
上网找了一下发现也有人跟我遇到相同的问题:http://bbs.21ic.com/icview-187817-1-1.html
并且给出了答案
以":0400000508004ABDE8"为例子。
其中的地址是0x08004ABD,当下载代码到芯片里后(不勾选 run to main),程序恰好停在 0x08004ABD,对应于标号: __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.
根据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
实际上 EIP 寄存器就是 STM8或者ARM芯片的PC指针。
可见,上面维基百科的描述是对的:类型05后面跟的是4字节地址,将赋给(STM8或者ARM芯片的)PC指针。