之后这些引脚的状态对引导加载程序没有影响.
我一直面临类似的请求,并找到了2种按需加载引导加载程序的方法.
首先,您可以从用户代码到引导加载程序“JUMP”.例如,您可以在按下按钮时跳转到引导加载程序.
但是……这比简单的JUMP指令复杂得多:一些寄存器和设备必须正确配置才能与引导程序一起工作,你必须确保在JUMP期间不会触发IRQ,…实际上,你必须重新配置处理器,就像它在重置后刚启动一样.
您可以找到有关此技术的一些信息:on this video from ST.
我设法在STM32F1xx项目上做了这样的事情.
然而,在基于STM32F4的更复杂的项目中,这将变得非常困难……我将不得不停止所有设备(定时器,通信接口,ADC,DAC ……),确保不会触发IRQ,重新配置所有时钟,……
相反,我决定实现第二个解决方案:当我想跳转到引导加载程序时,我在其中一个备份寄存器中写入一个字节,然后发出软复位.然后,当处理器重新启动时,在程序的最开始,它将读取该寄存器.该寄存器包含指示应在引导加载程序模式下重新引导的值.然后,跳转到引导加载程序要容易得多,如the youtube video所示.
总结以上是内存溢出为你收集整理的通过应用程序跳转到STM32中的Bootloader,即在用户闪存的引导模式下使用Boot 0和Boot 1 Pins全部内容,希望文章能够帮你解决通过应用程序跳转到STM32中的Bootloader,即在用户闪存的引导模式下使用Boot 0和Boot 1 Pins所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)