Embedded 使用USB的STM32F072C8T7(Boot0)引导加载程序
在我的项目中,我使用的是STM32F072C8T7 MCU。在这个MCU中,只有一个名为BOOT0的引导引脚。根据应用说明,我必须配置BOOT0->GND以选择主闪存作为引导空间 我已经这样做了,这个项目似乎正在运行。我想知道的是,当我以后想升级我设备的固件时,我是否需要对BOOT0引脚进行任何更改 我想知道的是,当我以后想升级我设备的固件时,我是否需要对BOOT0引脚进行任何更改 如果您想使用出厂ROM引导加载程序来编写新固件,那么是的,对于大多数STM32部件,您需要将BOOT0引脚设置为高,然后重置处理器。(在某些情况下,您可以将现有程序跳转到出厂引导ROM中,就好像pin处于与实际状态不同的状态,但这可能有点棘手,可能需要反向工程引导ROM的启动) 但是,在STM32处理器上更改程序还有一些其他常用方法,这些方法不经过出厂引导加载程序,因此不指向更改引导引脚的状态。其中主要有:Embedded 使用USB的STM32F072C8T7(Boot0)引导加载程序,embedded,boot,bootloader,stm32f0,Embedded,Boot,Bootloader,Stm32f0,在我的项目中,我使用的是STM32F072C8T7 MCU。在这个MCU中,只有一个名为BOOT0的引导引脚。根据应用说明,我必须配置BOOT0->GND以选择主闪存作为引导空间 我已经这样做了,这个项目似乎正在运行。我想知道的是,当我以后想升级我设备的固件时,我是否需要对BOOT0引脚进行任何更改 我想知道的是,当我以后想升级我设备的固件时,我是否需要对BOOT0引脚进行任何更改 如果您想使用出厂ROM引导加载程序来编写新固件,那么是的,对于大多数STM32部件,您需要将BOOT0引脚设置为
谢谢你的详细回答。在我当前的配置中,我将boot0引脚连接到地上,程序存储在用户闪存中。由于我有一个蓝牙模块连接到STM,我可以使用您答案第2部分中提到的方法发布OTA固件更新?此外,在此过程中,我也会将boot0引脚绑在地上?当您使用自己的片上软件而不是出厂的bootloader写入闪存时,您确实会将boot0引脚设置为从闪存开始。但是,要意识到,实现固件升级方案比编写普通固件更具挑战性,这远远超出了本文的讨论范围。