NXP

IAP在线烧录实现记录(蓝牙->CAN->LPC1114)

2019-07-12 11:44发布

最近接手一个项目是对现有设备实现在线烧录的功能,各种坑完来来回回一个月了,才通过内部测试,趁着热乎,总结一下。 需求原因:由于外围设备较多,现场烧录不便,所以迫切需要解决外围设备的在线烧录问题。 整体方案:手机APP+蓝牙模块+系统控制器+外围设备。通过手机或平板中的APP加载烧录文件,通过蓝牙将烧录文件传输到控制器,控制器通过原有的CAN发送至外围设备。 编程环境: APP: 安卓、eclipse 主控:STM32105 KEIL 外围:LPC111系列 KEIL 具体实现: 1、内部bootloader转换部分的具体实现方法主要参考LPC的参考手册,21,7IAP命令章节。 2、关于编译器配置问题主要参考网上一个资料,https://blog.csdn.net/jdsnpgxj/article/details/71479995,需要注意的是同一个扇区不可分到两个程序中去。 3、加密策略采用AES,主要参考:http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf这个是原理级别的说明,只看了个大概,具体的参考的百度文库里的一个文件,找不到了,我看周立功官网也有,有需要的可以去找下。 4、具体的流转图如下:   踩过的坑无数,最大的是一个小的注意事项:当调用IAP的接口函数时注意需要将所有中断暂时关闭,否则可能偶尔出现烧录失败的问题。 项目是给公司做的,肯定不能外发。但有个参考的DEMO大家有需求的可以看下,应该会有帮助。 demo程序、芯片手册及注意事项:https://download.csdn.net/download/gkxg001/10564368