最近 研究如何将 BootLoader 代码 和app 工程集合的一个 MDK 工程里 软件发布的时候,直接编译生成烧录文件。
以下是实现思路:
1 ,利用rt-thread 提供的在线bootloader 生成的bin文件 生成C 文件数组,并指定数组地址 attitude At 0x800000
2,将boot c文件 添加进keil 工程,
3,修改link sct 文件 定位APP 至 0x8020000
4 编译生成最终bin文件
以下是验证过程。
1比较 boot 的bin 文件 和生成 C 数组数据差异 发现没有差异。
2 比较最终 生成的 bin 文件 和boot bin文件 发现0x802000之前的数据 和 boot 的bin 文件一致
3 下载到板子上,运行了bootloader 的代码 串口有提输出是
遗留问题,
ota 升级程序,官网提供的 rt_ota_packaging_tool 不能截取最终bin文件的 app 部分, 不知道官网能不能 分享打包工具的源码?
另外,boot和app分开成2个工程不是坏事,可以固定出boot.bin,给不同的项目用。
要生成all.bin时,把 boot.bin + app.bin ==> all.bin
好像也有提供这样的工具吧