Memo

20241127 BOOT LOCK bit nBOOT1 bit BOOT0 pin nBOOT SEL bi

在 STM32G0x1 中,引导模式(Boot Mode)的选择决定了启动时系统如何访问内存。这三种模式的区别如下: 1. 从主 Flash 内存引导(Boot from main Flash memory): - 地址映射:主 Flash 内存被映射到地址0x0000 0000,同时也可通过原地址0x0800 0000访问。 - 使用场景:这是最常用的模式,因为大多数应用程序直接存储在...

在 STM32G0x1 中,引导模式(Boot Mode)的选择决定了启动时系统如何访问内存。这三种模式的区别如下:

  1. 从主 Flash 内存引导(Boot from main Flash memory)
  • 地址映射:主 Flash 内存被映射到地址0x0000 0000,同时也可通过原地址0x0800 0000访问。
  • 使用场景:这是最常用的模式,因为大多数应用程序直接存储在 Flash 中。启动后,程序会从 Flash 中执行。
  1. 从系统内存引导(Boot from system memory)
  • 地址映射:系统内存(通常包含了内置的引导加载程序或 ISP)被映射到0x0000 0000,也可以通过其原始地址0x1FFF0000访问。
  • 使用场景:这个模式通常用于更新固件或调试。如果你想通过串口刷入新的固件,这个模式非常有用,因为系统会进入 DFU(Device Firmware Upgrade)模式,允许外部设备通过串口或 USB 等接口下载和更新固件。
  1. 从嵌入式 SRAM 引导(Boot from the embedded SRAM)
  • 地址映射:SRAM 被映射到0x0000 0000,同时也可以通过其原始地址0x2000 0000访问。
  • 使用场景:这种模式主要用于开发和调试,特别是在需要快速测试代码片段而不需要烧写到 Flash 中时。代码直接在 SRAM 中运行,但是一旦断电,所有内容都会丢失,所以不适合长期存储应用程序。
BOOT_LOCK bitnBOOT1 bitBOOT0 pinnBOOT_SEL bitnBOOT0 bitSelected boot area
0x00xMain Flash memory
0110xSystem memory
0010xEmbedded SRAM
0xx11Main Flash memory
01x10System memory
00x10Embedded SRAM
1xxxxMain Flash memory forced