• 关于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开发板,程序运行正常。

  • 相关阅读:
    Navicat Premium_11.2.7简体中文版 破解版本 windows版本 失效
    php多维数组排序 3
    php 多维数组排序
    php对二维数组排序
    mysql子查询批量找id最大的
    教你如何选择相机的曝光模式(转)
    3分钟搞懂曝光直方图(转)
    摄影新手最想知道的10件事(转)
    教你搞懂光圈大小的成像差异(转)
    新手必须掌握的20个摄影构图法 转
  • 原文地址:https://www.cnblogs.com/constanto/p/10048657.html
Copyright © 2020-2023  润新知