Я хочу получить адрес ограничения вспышки в самом коде или хотя бы размер этой вспышки.

Я нашел только начальный адрес флеш-памяти в файле stm32f302xc.h, но не нашел конечный адрес.

/** @addtogroup Peripheral_memory_map
  * @{
  */

#define FLASH_BASE            0x08000000UL /*!< FLASH base address in the alias region */
#define SRAM_BASE             0x20000000UL /*!< SRAM base address in the alias region */
#define PERIPH_BASE           0x40000000UL /*!< Peripheral base address in the alias region */
#define SRAM_BB_BASE          0x22000000UL /*!< SRAM base address in the bit-band region */
#define PERIPH_BB_BASE        0x42000000UL /*!< Peripheral base address in the bit-band region */

Что определяет за это отвечает, спасибо.

1
Alexander Rakhmaev 7 Май 2021 в 11:21

1 ответ

Лучший ответ

Все, что вам нужно, описано в справочном руководстве RM0366 в разделе 29.2 Регистр данных размера памяти .

ST предоставляют эту функциональность, но по какой-то причине они не всегда предоставляют простой способ доступа к ней в заголовках.

Адрес этого регистра: FLASHSIZE_BASE. Вы должны прочитать его во время выполнения, например:

uint16_t flash_size_kb = *(const uint16_t*)FLASHSIZE_BASE;
2
Tom V 7 Май 2021 в 09:01