在做单片机的IAP升级时,通常需要两个程序,一个bootloader程序,一个app程序。首先将bootloader程序烧写到单片机中,然后通过串口将app程序写入到单片机内容,在平时学习和测试的时候这种方法没啥问题,但是如果产品需要量产,每次少些程序的时候都有通过这种方法的话,那效率就要低很多。那么能不能直接将bootloader和app的烧写文件一次性的下载到单片机里面去呢?当然是可以的。
首先需要将bootloader的烧写文件和app的烧写文件合称为一个文件。
合并的方法网上有很多,这里就不详细说明了。可以参考 这几篇文章
https://blog.csdn.net/qq_16519885/article/details/123744104
https://blog.csdn.net/qq_32348883/article/details/126156320
为了简单一点,这里直接使用上位机软件进行合并。
将bootloader的hex文件和app的hex文件合并成一个新的hex文件,接下来使用j-link的烧写软件进行烧写。
打开j_flash Lite软件
选择单片机的型号和烧写接口,然后点OK按钮。
接下来添加要烧写为hex文件
这里添加刚才新合并的hex文件,将文件添加进来之后,在底下的信息框中就可以看到这个hex文件是由两部分构成的。这个地址分别是bootloader和app文件的地址。
下面直接点击Program Device 按钮进行文件下载。
当下面的提示框中出现提示文字 Done
时,说明程序下载成功了。
通过串口助手观察程序运行的情况,可以看出来APP里面的程序已经正常运行了。通过这种方式,在量产产品的时候只需要烧写一次程序就可以将bootloader的程序和app的程序一起烧写进去。