Карта памяти

Материал из MIK32 микроконтроллер

Общая информация

Адресное пространство RISC-V составляет 4 Гбайта. Все периферийные модули, блоки памяти и т. д. находятся в этом диапазоне и их содержимое можно получить чтением по адресу.

Описание работы

Введение

Все области памяти имеют фиксированный адрес, за исключением области Загрузчика 0x0000_0000 - 0x0000_4000. Это память из которой запускается микроконтроллер.

Карта памяти

Карта памяти представлена на следующей таблице.

Карта памяти
Адрес/смещение Устройство
0x0000_0000 Загрузчик (16 Кбайт)
0x0004_0000 DMA_Config
0x0005_0000 Устройства на шине APB_M
+0x0000 Блок управления питанием и тактированием
+0x0400 Контроллер прерываний
+0x0800 Таймер32_0
+0x0C00 Контроллер выводов
+0x1000 Сторожевой таймер шины
+0x1400 OTP
+0x1800 Монитор напряжения
0x0006_0000 Устройства батарейного домена
+0x0000 WakeUp
+0x0400 RTC
0x0007_0000 Устройства подсистемы памяти
+0x0000 Регистры контроллера SPIFI
+0x0400 Регистры контроллера EEPROM
0x0008_0000 Устройства на шине AHB_P
+0x0000 Ускоритель симметричной криптографии
+0x0400 CRC32
0x0008_1000 Устройства на шине APB_P
+0x0000 Сторожевой таймер
+0x0400 USART_0
+0x0800 USART_1
+0x0C00 TIMER16_0
+0x1000 TIMER16_1
+0x1400 TIMER16_2
+0x1800 TIMER32_1
+0x1С00 TIMER32_2
+0x2000 SPI_0
+0x2400 SPI_1
+0x2800 I2C_0
+0x2C00 I2C_1
+0x3000 GPIO16_0
+0x3400 GPIO16_1
+0x3800 GPIO8_2
+0x3С00 EXTI Модуль формирования прерываний GPIO
+0x4000 Блок управления аналоговой подсистемой ЦАП/АЦП/Датчик температуры
0x0100_0000 EEPROM (8 Кбайт)
0x0200_0000 RAM (16 Кбайт)
0x8000_0000 Внешняя память на QSPI интерфейсе, прямой доступ до 2 Гбайт

(контроллер SPIFI)

Менеджер загрузки

Микросхема MIK32 имеет три различных варианта старта, определяемых состоянием выводов Boot0 и Boot1 в соответствии с таблицей

№ режима BOOT0 BOOT1 Режим
1 0 0 Старт из встроенной памяти EEPROM
2 0 1 Старт из внешней памяти с использованием контроллера SPIFI
3 1 0 Старт из системного ОЗУ (RAM)
4 1 1 Зарезервировано

Значение выводов Boot0 и Boot1 фиксируются при включении питания. Программно возможно изменить способ загрузки путём записи необходимой конфигурации в регистр BOOT модуля WakeUp.

В зависимости от выбранного режима загрузки происходит следующее изменение в адресном пространстве контроллера:

  • загрузка из EEPROM: 8 Кбайт памяти EEPROM отображаются в загрузочную область (0x0000_0000), но по-прежнему остаются доступными также по адресу 0x0100_0000;
  • загрузка из внешней памяти: первые 16 Кбайт внешней памяти SPIFI отображаются в загрузочную область (0x0000_0000), но до 16 Мбайт адресного пространства внешней памяти по-прежнему остаются доступными также по адресу 0x8000_0000;
  • загрузка из системного ОЗУ (RAM): 16 Кбайт ОЗУ отображаются в загрузочную область (0x0000_0000), но по-прежнему остаются доступными также по адресу 0x0200_0000.