你需要先将IAP升级弄好,然后通过CAN接口将所要升级的固件包发给stm32。这样就可以了。
现在用的多的是利用串口和USB模拟串口
可以先参考UART升级固件的IAP例程,CAN只是换了种接口。
用CAN升级程序,要自己做bootloader,然后制定通讯协议;设备运行时收到升级程序命令,就会跳转进入升级的流程。
要自己写一个boot程序,芯片本来是不支持这种通讯方式烧写程序的
你的boot接收CAN的数据,再烧写到Flash中,并跳到写入的地址运行
和 IAP串口升级程序是一样的原理,只不过传输总线变成了CAN总线
需要修改Bootload做数据接收
STM32的IAP升级都是一样的做法,先将固件写入某个特定的flash区域,然后跳转过去执行
CAN升级也是一样的,通过CAN总线下载固件,CAN总线一般是8个字节一包,收到一包就写一次