使用版本信息如下:
RTTHRAD Version: v3.0.1
fal version:v0.5.0
Ota_downloader: v1.0.0
STM:STM32F103VG
1、使用OTA,需要打开FAL_Flash库
一般正常情况需要在Kconfig中进行自己配置,并在内核裁剪中使能
menuconfig BSP_USING_ON_CHIP_FLASH bool "Enable on-chip Flash"
select RT_USING_FAL //这句注意添加,在其他系列,如F4系列可能不需要 default n
2、使用FAL库最好使用V0.5.0,不使用v1.0.0,否则实际编译可能在不同环境下会出错导致编译不过;
3、工程中即使使能FAL库但会提示找不到fal_cfg.h文件,该文件在步骤1、2使能更新pack包后,在sample中包含,最好将此文件移植board目录下,在board下自创个ports目录并在Sconscript中添加编译
4、fal_cfg.h文件中flash分区需要保持跟HAL库中,drv_flash_f1.c中定义的fal_flash_dev的设备名称、设备结构体名称保持一致,同时需要跟bootloader分区保持一致
5、各分区总量应小于flash总容量,固件大小应小于分区容量大小,download分区一般作为升级分区,可以小于正常固件大小(因为涉及压缩),但应大于升级固件大小;
6、各分区偏移量基于APP起始地址进行偏移的,而不是flash起始地址
7、Ymodem传输升级失败,可能涉及的原因为:
1、发送工具端最好使用xshell/securCRT进行Ymodem发送,其他因为串口设置相关可能会导致失败
2、串口的波特率太快,会导致失败
3、串口缓存buff太小,会导致失败
4、线程跳转太频繁,会导致数据丢失,失败
8、固件压缩工具在如下路径 ,需要注意的是:
1、每次压缩固件的版本号需要有差异,否则可能会跳过升级导致失败;
2、目前压缩工具只有windows版本;
正常运行跳转log如下,报的error是正常现象,根据论坛来说,在经历过完整ota之后会消失;