这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 一个问题越查越有趣,关于HEX格式

共3条 1/1 1 跳转至

一个问题越查越有趣,关于HEX格式

高工
2014-06-13 11:17:22     打赏

问题起始于 ---> 用MDK开发LPC2114,在proteus中仿真。

                      出现的问题是,将编译得到的hex文件加载到proteus中,仿真毫无反应。而用ADS1.2编译得到的                       hex加载进proteus中又是正常的。

               ---> 在网上查了一下,最后可以实现在proteus上运行.http://forum.eepw.com.cn/thread/252237/1


第二个问题 ---> 为什么删除hex文件倒数第二行才能在proteus上运行。于是开始查hex格式

                      看到这篇文章http://hi.baidu.com/chris_zheng/item/701a2cefc9adcc235b2d6450

                      Intel Hex也分为INTEL 8 INTEL 16 INTEL 32

                      下面分别展示一下,51单片机程序的hex,STM32程序生成的hex,以及LPC2114生成的hex,以及ADS1.2生成的hex


:0300000002033CBC
:0C033C00787FE4F6D8FD7581140203837D
:0F05A0002B30302E30202064733138623230001F
............
:0E032E00C3E49FFFE49EFEE49DFDE49CFC22E0
:00000001FF


//STM32
:020000040800F2
:10000000B0020020890100088D0100088F0100085E
:10001000910100089301000895010008000000000C
.......
:1013700090130008000000200C0000002801000865
:101380009C1300080C000020A40200004401000887
:0C13900000000000000000000000000051
:04000005080000ED02
:00000001FF


//lpc
:020000040000FA
:1000000018F09FE518F09FE518F09FE518F09FE5C0
:1000100018F09FE50000A0E1F0FF1FE518F09FE554
:1000200058000000400000004400000048000000AC
:100030004C000000000000005000000054000000D0
..........

:100D600060C0800007070404040707007C0D000032
:0C0D700000000040E804000054010000F6
:0400000500000110E6
:00000001FF


//ADS1.2
:020000040000FA
:1000000018F09FE518F09FE518F09FE518F09FE5C0
:1000100018F09FE5805F20B9F0FF1FE518F09FE51D
:10002000F00000004000000044000000A0000000BC
................
:100BE00000000000000000001C0C0000000000409D
:100BF000000000001C0C0000600400400000000029
:100C00001C0C000000200040000000001C0C000034
:0C0C100000000000000000406004000034
:00000001FF



在hex格式的文章里看到“I32HEX or INTEL 32, 32-bit format. Allows usage of 04 and 05 records. The data field endianness may be byte-swapped.Beware! Byte-swapped data might be more confusing. It is possible to misinterpret the byte order in case of I16HEX and I32HEX.”


分别看上面几个hex的内容,只有stm32,LPC程序得出的hex的倒数第二行多了个05 records。倒数第二句意思应该是往地址0000处写入了一段数据。在proteus进入单步调试状态,打开FLASH窗口,发现地址0处不是LDR PC,Reset_Addr,地址0x04才是LDR PC,Reset_Addr。






关键词: 格式     问题     hex    

院士
2014-06-14 19:46:01     打赏
2楼
放弃这个帖子,真心看不懂! 短时间内也不会用到。 话说你们为什么会用到软件仿真啊?

高工
2014-06-15 15:21:36     打赏
3楼

这个问题是跟安装编译软件时候的安装选项的选择有关吧,还没做过仿真呢


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]