ST意法半导体
直播中

张桂英

7年用户 1490经验值
私信 关注
[问答]

如何在STM32L432上软件激活BOOT0?

大家好,
我正在使用 STM32L432 mcu 创建个人板,但我对 BOOT0 有疑问。我希望我的未来能够让我未来的客户有机会更新董事会。为此,我知道我可以使用 DFU 模式并进入此模式,BOOT0 应该为高电平。
但是我不想添加一个特定的按钮,因为我没有地方,而且电路板无法访问,所以是否可以通过软件激活 BOOT0,例如在重置电路板之前?




回帖(1)

莫联雪

2022-12-28 14:51:18
如果您只需要跳转到引导加载程序,请考虑这篇文章中的以下代码片段。


  • inline void launchBootloader(void)
  • {
  •     typedef void (*pFunction)(void);
  •     pFunction JumpToApplication;
  •     //    uint32_t JumpAddress;
  •     HAL_RCC_DeInit();
  •     SysTick->CTRL = 0;
  •     SysTick->LOAD = 0;
  •     SysTick->VAL = 0;
  •     /* Step: Disable all interrupts */
  •     __disable_irq();/* ARM Cortex-M Programming Guide to Memory Barrier Instructions.*/
  •     __DSB();
  •     __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH();/* Remap is bot visible at once. Execute some
  • unrelated command! */
  •     __DSB();
  •     __ISB();
  •     JumpToApplication = (void (*)(void))(*((uint32_t*)(SYSTEM_MEMORY
  •                                                        + 4)));/* Initialize user application's
  • Stack Pointer */
  •     __set_MSP(*(__IO uint32_t*)SYSTEM_MEMORY);
  •     JumpToApplication();
  • }

举报

更多回帖

发帖
×
20
完善资料,
赚取积分