stm32在线升级功能!!!挑战大神的智慧!
stm32外挂一块flash,当前板子运行内部flash的固件,通过iic接受新固件并将它放到外部flash内,然后切换,开始运行外部flash的代码?这个怎么实现,各位大神,求指导! 使用“中断向量表重映射”功能(一般Cortex-M0+及以上都支持)可以实现你说的功能。只需要转换一个向量表并把程序地址指向新地址即可。
你可以参考下通用的IAP程序。 非常感谢您的回复!我看了您提到的IAP程序,但是它复位后是从原固件的中断向量表开始跑的。 Power123 发表于 2016-9-14 21:12
非常感谢您的回复!我看了您提到的IAP程序,但是它复位后是从原固件的中断向量表开始跑的。 ...
你需要在IAP代码断中做一些标记,然后根据标记跳转向量表即可。
楼上说的对,你的单片机FLASH分为两个区,一个放bootloader,另外一个是你的应用。外部的FLASH可以随便更换应用,bootloader直接进行加载应用就行了。 楼上都是老手啊,你可以参考这个https://www.stmcu.org.cn/document/detail/index/id-213123,使用USART接口实现STM32F10xxx的在线升级,虽然升级方式有区别,但是如何加载应用程序、如何运行的原理是一样的! 高二毛 发表于 2016-9-16 22:40
楼上说的对,你的单片机FLASH分为两个区,一个放bootloader,另外一个是你的应用。外部的FLASH可以随便更换 ...
前辈之前这样做过吗?是否可靠? 非常可靠,目前已经开始正式使用了。放心大胆的做吧。:D
页:
[1]