JFlash的高级使用教程(1)-- 固件合并

1.固件合并的使用场景;

为了使单片机拥有自定义的OTA功能,单片机程序都是有两段或者两段以上的程序组成,其中,负责实现OTA功能的程序叫做BootLoader程序,被升级的程序就是APP程序;

在量产过程中,为了一次性将BootLoader程序与APP程序烧录到单片机中,需要单片机工程师将BootLoader与APP的固件合并成一个固件;

2.固件合并的原理;

         主要操作就是将两个文件合并成一个文件,不过要注意的是,因为每段程序都有固定的起始地址,因此,

        1、固件的大小不能超过下一段固件的起始地址;

        2、在BootLoader与APP程序中基本都会存在一些空白区域;

3.JFlash固件合并的操作;

1、打开JFlash.exe,点击“File” -> “Open data file”,选择第一个固件;

 2、输入起始地址,bin格式的固件内部没有保存程序的地址信息,因此,起始地址可以直接输入0;

 3、继续点击“File” -> “Merage data file”,选择第二个固件后,会继续弹出填写地址的对话框,这里需要填的地址 = 第二个固件的偏移量 + 第一个固件的首地址,然后点击“OK”即可;

 4、最后点击“FIle” -> “Save data file as ...”,保存为新的固件文件;

 注:下图中的蓝色边框内就是两段固件间的空白区域,合并得到的新固件中该区域的信息被0xFF填充

 

版权声明:本文为CSDN博主「打不死的金刚狼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jokismithjs/article/details/122395643

1.固件合并的使用场景;

为了使单片机拥有自定义的OTA功能,单片机程序都是有两段或者两段以上的程序组成,其中,负责实现OTA功能的程序叫做BootLoader程序,被升级的程序就是APP程序;

在量产过程中,为了一次性将BootLoader程序与APP程序烧录到单片机中,需要单片机工程师将BootLoader与APP的固件合并成一个固件;

2.固件合并的原理;

         主要操作就是将两个文件合并成一个文件,不过要注意的是,因为每段程序都有固定的起始地址,因此,

        1、固件的大小不能超过下一段固件的起始地址;

        2、在BootLoader与APP程序中基本都会存在一些空白区域;

3.JFlash固件合并的操作;

1、打开JFlash.exe,点击“File” -> “Open data file”,选择第一个固件;

 2、输入起始地址,bin格式的固件内部没有保存程序的地址信息,因此,起始地址可以直接输入0;

 3、继续点击“File” -> “Merage data file”,选择第二个固件后,会继续弹出填写地址的对话框,这里需要填的地址 = 第二个固件的偏移量 + 第一个固件的首地址,然后点击“OK”即可;

 4、最后点击“FIle” -> “Save data file as ...”,保存为新的固件文件;

 注:下图中的蓝色边框内就是两段固件间的空白区域,合并得到的新固件中该区域的信息被0xFF填充

 

版权声明:本文为CSDN博主「打不死的金刚狼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jokismithjs/article/details/122395643

生成海报
点赞 0

打不死的金刚狼

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

JFlash的高级使用教程(1)-- 固件合并

1.固件合并的使用场景; 为了使单片机拥有自定义的OTA功能,单片机程序都是有两段或者两段以上的程序组成,其中,负责实现OTA功能的程序叫做BootLoader程序,被升级

4.8 51单片机-PCF8591(ADC/DAC)转换芯片

4.8 PCF8591(ADC/DAC)转换芯片 4.8.1 原理图 当前实验板上没有PCF8591芯片,这里采用外接模块的形式使用。 图4-8-1 PCF8591模块实物图 图4-8-2 原理图 通过原理图得到的重要信息:

基于STM32的“智能家居”课程设计

基于STM32的“智能家居系统”课程设计 此设计是基于STM32F407单片机的智能家居系统,具体完成要求如下: 基于蓝牙的智能家居系统设计 设计一个基于蓝牙/Wifi的智能家居控制系统,实现手机

STM32 单片机启动流程

STM32 单片机启动流程 刚接触ARM的cortex-m系列单片机时,被告知一切都从main() 函数开始,要将程序写在main()函数中。而仿真时也貌似是从main() 函数开始的,以STM32F