Карта памяти: различия между версиями

Материал из MIK32 микроконтроллер
(исправлены синтаксические и орфографические ошибки)
Строка 21: Строка 21:
|-
|-
|0x0005_0000
|0x0005_0000
|'''''Устройста на шине APB_M'''''
|'''''Устройства на шине APB_M'''''
|-
|-
|<nowiki>+0x0000</nowiki>
|<nowiki>+0x0000</nowiki>
Строка 63: Строка 63:
|-
|-
|0x0008_0000
|0x0008_0000
|'''''Устройста на шине AHB_P'''''
|'''''Устройства на шине AHB_P'''''
|-
|-
| +0x0000
| +0x0000
Строка 72: Строка 72:
|-
|-
|0x0008_1000
|0x0008_1000
|'''''Устройста на шине APB_P'''''
|'''''Устройства на шине APB_P'''''
|-
|-
|<nowiki>+0x0000</nowiki>
|<nowiki>+0x0000</nowiki>
Строка 129: Строка 129:
|-
|-
|0x0200_0000
|0x0200_0000
|SRAM (16 Кбайт)
|RAM (16 Кбайт)
|-
|-
|0x8000_0000
|0x8000_0000
Строка 165: Строка 165:
|Зарезервировано
|Зарезервировано
|}
|}
Значение выводов Boot0 и Boot1 фиксируются при включении питания. Программно возможно изменить способ загрузки путём записи необходимой конфигурации в регистр BOOT модуля Wakeup.  
Значение выводов Boot0 и Boot1 фиксируются при включении питания. Программно возможно изменить способ загрузки путём записи необходимой конфигурации в регистр BOOT модуля WakeUp.  


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

Версия от 12:06, 28 июня 2024

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

Адресное пространство 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 Старт из системного ОЗУ
4 1 1 Зарезервировано

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

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

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