尚硅谷bootloader开发流程笔记

📅 2026/6/17 5:50:16
尚硅谷bootloader开发流程笔记
尚硅谷bootloader开发流程笔记文章目录1.串口通讯2.写数据到flash3.总体测试4.跳转程序注意事项5.大体流程6.应用层逻辑优化上述流程应用层逻辑流程7.OTA架构简述失败情况1失败情况2加入备份区的原因解决方案1解决方案21.串口通讯2.写数据到flash3.总体测试4.跳转程序核心就是复位中断把其中地址当做函数指针注意事项Keil 里改 IROM Start0x08002000这是编译链接阶段配置告诉编译器把流水灯代码、向量表编译链接到 Flash 0x08002000 地址保证固件本身地址正确。只解决「代码放对位置」的问题。​代码里写 SCB-VTOR 0x08002000这是程序运行阶段配置跳转进APP后CPU硬件默认还是去 0x08000000 找中断向量表。这行代码专门修改内核寄存器告诉CPU现在向量表在 0x08002000。只解决「CPU去哪找中断」的问题。5.大体流程1.首先编写流水灯程序作为A区和boot loader作为B区2.然后注意修改A、B两区的起始地址keil和代码中3.编译A区文件4.注释掉跳转函数编译下载B区文件5.发送A区Bin文件串口接收6.取消注释掉跳转函数编译下载B区文件6.应用层逻辑优化上述流程应用层逻辑流程1.先编译App_bootloader.c文件然后烧录到开发板2.串口发送信息3.查看发送bin文件大小4.发送startxxx完成交互指令5.发送文件6.7.OTA架构简述1.Boot loader跳转前更改标志位2.启动看门狗3.如果APP跳转成功就会喂狗4.成功喂狗说明按时启动更改标志位说明APP能跑5.程序全部功能自检更改标志位APP功能正常6.替换备份区失败情况11.Boot loader跳转前更改标志位2.启动看门狗3.如果APP跳转失败没人喂狗4.系统重启5.Bootloader把备份区代码刷写到内部APP失败情况2加入备份区的原因解决方案1解决方案2