
之前做的都是在芯片内FLASH运行的串口在线升级工作, 现在需要对外挂SPI FLASH进行程序升级,希望有做过的大佬给个大概思路,谢谢! |
原理类似,像安装APP一样。先把要升级的程序下载到FLASH中,下载完毕后。通过boot程序进行应用程序的刷写。注意自己对自己操作会发生异常,擦除后代码不存在会死机。 |
F1自己没有内置的程序,所以在应用程序中添加SPI 烧录代码。至于这段代码放在哪个位置,根据应用需要就好了。 对于F1来说,这种应用比较少,通常都是放数据在外挂FLASH里面。 |
此功能使用BOOT+APP模式就可以了.BOOT运行于F1的内部FLASH,包含串口升级的逻辑.APP存放于SPI FLASH中,运行时加载到内存.APP中需要升级时,跳转到BOOT中启动升级过程,或上电中BOOT检查是否处于升级请求状态,如果是,则进入升级过程,如果否并APP校验OK,则跳入APP,反之也进入升级过程. |
外部FLASH和内部FLASH没什么区别吧,只是将BOOT的起始地址改为外部FLASH就可以吧,然后读写或跳转。 |
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
stm32f407无法配置定时器2为全部dma
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
串口DMA + 空闲中断收发 ?
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
WS2812B怎么显示任意字符 / 图案?
STM32F103RCT6 定位孔 镂空,会影响使用吗?
HAL库1.8.4在做破坏性测试的时候出现g_state永远为busy的情况导致串口通信发送卡死