• 关于HEX文件拼接(转载)


        在用到单片机做工程的时候,为了升级方便需要进行远程升级固件,我使用的是STM32单片机,这个时候就要使用到hex文件的拼接;我们远程更新方法来自于安卓等系统的烧录思路,先烧录一个boot程序,再烧录一个app程序,他们都存在于单片机的代码FLASH里面,boot程序一般是一个很小的程序运行在FLASH的首地址,APP程序分布在剩余的FLASH里面,按照这个理论FLASH可以保存多个APP程序.boot程序会指定跳转到哪里运行.升级固件要烧录两个HEX文件这样给调试和固化带来麻烦,好在万能的网友是有大智慧的给出了拼接HEX的方法,节约了我们的时间.大体思路是删除第一个hex文件的尾巴,将第二个hex文件的头删除复制到第一个hex文件后面就可以了.如下转载的方法,测试是可行的.

     

     

    Question

    由于分散加载文件设置的原因,工程生成的hex文件被分成两部分,一般情况下使用Flash Magic需要分别下载两次,但这样比较麻烦、效率低下,能否将两个文件合并,只下载一次?

     

    Answer

    本文只介绍如何将hex文件合并的问题:

    以附件的两个hex文件为例,该程序运行在EasyARM2131开发板上,通过串口向外发送数据。

    ROM_EXEC1文件的格式如下(可以使用记事本打开查看):

    :020000040000FA                                    文件头记录

    :1000000018F09FE518F09FE518F09FE518F09FE5C0      程序区开始

    ……

    ……(中间的省略)

    ……

    :080690002C2100000000000015                        程序区结束

    :00000001FF                                        文件结束(EOF)记录

     

    ROM_EXEC2文件的格式和ROM_EXEC1类似。

    用记事本新建一个文本文件,命名为new.hex,将ROM_EXEC1的内容全部复制到新文件,复制ROM_EXEC2文件的程序区(除了第一行与最后一行外)并将其插入最后一行之前,之后保存文件即可。

    将新的hex文件下载到EasyARM2131开发板,程序运行正常。

  • 相关阅读:
    Twitter视频下载方式
    维基百科镜像处理
    Python sll
    youyube-dl
    python 进程池pool
    python常用正则表达式
    Struts2笔记3--OGNL
    Struts2笔记2
    Struts2笔记1
    Hibernate笔记7--JPA CRUD
  • 原文地址:https://www.cnblogs.com/constanto/p/10048657.html
Copyright © 2020-2023  润新知