嵌入式技术论坛
直播中

fanB

8年用户 1431经验值
擅长:20615
私信 关注
[问答]

STM32F4VET6 bootloader升级时间过长是什么原因呢?

问题:bootloader升级时间过长
型号:STM32F4VET6 ,使用片外flash作为download分区,升级时间过长,长达3分钟
在bootloader中,分区表为

#define FAL_PART_TABLE
{
{FAL_PART_MAGIC_WORD, "bl", "stm32_onchip_flash_16k", 0, 641024, 0},
{FAL_PART_MAGIC_WORD, "app", "stm32_onchip_flash_128k", 128
1024, 3841024, 0},
{FAL_PART_MAGIC_WORD, "download", FAL_USING_NOR_FLASH_DEV_NAME, 0, 384
1024, 0},
{FAL_PART_MAGIC_WORD, "env", FAL_USING_NOR_FLASH_DEV_NAME, 3841024, 81024, 0},
}
#endif
下载进去后可以进行升级,也可以进行ymodem_ota升级,但是时间过长,长达3~4分钟
1.png

回帖(2)

lalajie

2023-9-6 18:29:20
写片内flash的速度就是比较慢
举报

李萍

2023-9-26 10:06:06
"config",       "stm32_onchip_flash_16k",    3841024,   3851264, 0},{FAL_PART_MAGIC_WORD,         "factory",      "stm32_onchip_flash_128k",  3851264,   4096000, 0}}。

可能的原因有以下几点:

1. 片外flash的读写速度较慢,导致下载速度变慢,进而导致升级时间较长。
2. 升级的固件程序较大,需要传输的数据量较大,下载速度变慢,进而导致升级时间较长。
3. bootloader中存在其他操作,会占用CPU时间,导致升级时间变长。
4. 程序设计中存在其它问题,比如循环等待,导致升级时间变长。

针对以上问题,可以采取以下解决措施:

1. 选用快速的片外flash,比如SPI flash,可以提高读写速度。
2. 尽可能减小固件程序的大小,比如去掉一些无用的代码和库,减小程序的内存占用。
3. 在bootloader中避免占用过多CPU时间,可以采用中断去处理数据,避免阻塞。
4. 在程序设计中避免无效的循环等待,尽可能缩短升级时间。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分