有谁自己写过烧写hex文件的上位机程序软件,对hex内部数据格式组成比较熟悉的?

2020-01-24 12:01发布

为什么有的编译器生成的hex文件一开始就是:020000040100F9,
(02表示数据只有2个字节,0000表示地址,04,说明该记录为扩展段地址记录,0100是数据,f9是校验码)
只有在原有的地址位(2byte)用完,即有效数据位达到64k后,才会出现020000040100F9这种类型的数据啊。
在hex文件最开始的地方是不会出现扩展段地址记录的?!
下面是一个hex文件开头的几行:
:020000040100F9
:100000007CA09FE52F0AB0E10AA6A0012AA6A001C4
:10001000FF1BBAE8FF03ABE80CF0A0E10080A0E30F
:1000200090909FE5FF00B9E8FF00A8E83F00B9E81D
:100030003F00A8E80107A0E3DFF021E300D0A0E142
:10004000010B40E2D1F021E300D0A0E1010B40E23E
:1000500052F021E300D0A0E1020A40E2D7F021E310
如有大侠曾经写过烧录软件,或者对hex文件内部格式比较熟悉,不妨赐教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
flor
1楼-- · 2020-01-25 07:41
百度或Google吧,都忘了
wuxi_stl
2楼-- · 2020-01-25 08:25
 精彩回答 2  元偷偷看……
number007cool
3楼-- · 2020-01-25 10:48
回复【8楼】wuxi_stl  
-----------------------------------------------------------------------

但是上位机那边似乎打开bin文件有点困难?
如果有好的建议,不妨提示下!
现在上位机打开hex文件是以打开写字板的方式操作的。
number007cool
4楼-- · 2020-01-25 16:13
回复【6楼】cheungman  
-----------------------------------------------------------------------

是的。
现在遇到了一个很麻烦的问题。
就是应用程序下载成功后不知道怎样从boot程序跳转到下载后的应用程序区。
不知阁下是否有所高见,谢谢!
cheungman
5楼-- · 2020-01-25 19:54
#define USER_APP_ADDR    0x0800                //定义用户程序位于0x0800起始的地址上
(*((void(*)(void))USER_APP_ADDR))();         //进入更新后的用户程序
number007cool
6楼-- · 2020-01-25 21:24
回复【11楼】cheungman
-----------------------------------------------------------------------

这种方法不行,我试过无数次,不能正确跳转到制定flash区段正确执行。
说明一下,我用的是ARM7TDMI核,用EBI总线对RAM和外部外接FLAHS统一编址。软件环境是:iar 4.3
我还有另外的两个帖子,你可以看下!希望给点好的建议!
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4955814&bbs_page_no=1&search_mode=3&search_text=number007cool&bbs_id=9999

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4968750&bbs_page_no=1&search_mode=3&search_text=number007cool&bbs_id=9999
貌似还要重新出事化堆栈之类的.......................................

一周热门 更多>