之前做的都是在芯片内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就可以吧,然后读写或跳转。 |
Proteus是否无法正确仿真STM32的开漏输出
Cortex m3内核是很特殊吗,为什么st公司的很多软件比如cubemx.ai唯独不支持m3内核的stm32f1系列
stm32f103c8t6串口发送大量hex数据失效。
STM32 CAN通讯收发异常
自己画的STM32F103RCT6的板子下载识别不到芯片。
adc采集电压
STM32硬件IIC
STM32IDE工程内如何访问、计算得到当前程序flash已经使用的情况?
数据丢失
STM32F107RBT6 页擦除函数返回值成功但目标扇区数据并未擦除