下面对PIC BootLoader的关键技术进行回顾:
1、地址分配:
BootLoader在ROM的前端,APP在ROM的后端,因为Bootloader要接管中断向量
在APP中将BootLoader部分保留
2、中断重映射
Bootloader中中断向量要重映射,判断是否在Bootloader中执行,然后执行不同的中断服务函数。
Boot中中断执行标志设置
App中中断执行标志设置
3、注意事项
注意PIC单片机的指针区分ROM指针和RAM指针。
U8 * 和 const rom U8 *
const U8 TestData[16]默认编译器放在RAM区。const rom U8 TestData[16]则放在ROM区。
调试时,FLASH编程后,数据区并不自动更新,必须回读才能更新。
参考文档:
历时三周终于搞定了四个程序,一个Bootloader,两个APP,一个上位机升级程序。(上位机==》主MCU ==》PIC,通过CAN升级从PIC单片机)
有问题去英文网站搜索,大牛很多。