STM32F7基于openBLT通过can升级过程
下载openBLT源码
https://github.com/feaser/openblt
目录结构如图所示
删除多余的文件
openBLT支持众多芯片,由于此工程使用STM32F767单片机,在Ubuntu使用GCC方式编译,为了方便,只保留选中文件删除其余文件
Prog也不需要
source目录保留F7的文件夹
编译
cd到Boot目录,执行make,编译成功,如下:
配置为can通信方式
blt_conf.h就是配置文件
晶振频率根据实际配置
关闭网络使能开关
关闭串口使能开关
添加can相关配置,配置can通道及波特率
调试发现BOOT_COP_HOOKS_ENABLE打开,程序跳转后会进入死循环,原因未知,所以在此配置为0
stm32f7xx_hal_conf.h文件中,打开HAL_CAN_MODULE_ENABLED使能
晶振频率,再次配置一次
main函数修改
工程文件缺少can库文件,在其他F7工程复制一份过来
makefile文件修改,由于不使用网络,去掉相关文件,lib下面的uip文件夹一并删除
can相关GPIO在Boot\lib\STM32F7xx_HAL_Driver\Src\stm32f7xx_hal_can.c中配置
再次编译,OK!
程序烧录
打开上位机,配置通信参数,这里使用的是Kvaser can调试器
等待升级完成即可!