Карта памяти: различия между версиями
Cryptozoy (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
=== Общая информация === | === Общая информация === | ||
Адресное | Адресное пространство RISC-V составляет 4 Гбайт. Все периферийные модули, блоки памяти и т. д. находятся в этом диапазоне и их содержимое можно получить чтением по адресу. | ||
=== Описание работы === | === Описание работы === | ||
Строка 15: | Строка 15: | ||
|- | |- | ||
|0x0000_0000 | |0x0000_0000 | ||
|Загрузчик ( | |Загрузчик (16 Кбайт) | ||
|- | |- | ||
|0x0004_0000 | |0x0004_0000 | ||
Строка 126: | Строка 126: | ||
|- | |- | ||
|0x0100_0000 | |0x0100_0000 | ||
|EEPROM ( | |EEPROM (8 Кбайт) | ||
|- | |- | ||
|0x0200_0000 | |0x0200_0000 | ||
|SRAM ( | |SRAM (16 Кбайт) | ||
|- | |- | ||
|0x8000_0000 | |0x8000_0000 | ||
|Внешняя память на QSPI интерфейсе, прямой доступ до 2 | |Внешняя память на QSPI интерфейсе, прямой доступ до 2 Гбайт | ||
(контроллер SPIFI) | (контроллер SPIFI) | ||
|} | |} | ||
Строка 165: | Строка 165: | ||
|Зарезервировано | |Зарезервировано | ||
|} | |} | ||
Значение выводов Boot0 и Boot1 фиксируются при включении питания. Программно возможно изменить способ загрузки | Значение выводов Boot0 и Boot1 фиксируются при включении питания. Программно возможно изменить способ загрузки путём записи необходимой конфигурации в регистр BOOT модуля Wakeup. | ||
В зависимости от выбранного режима загрузки происходит следующее изменение в адресном пространстве контроллера: | В зависимости от выбранного режима загрузки происходит следующее изменение в адресном пространстве контроллера: | ||
* загрузка из EEPROM: память EEPROM (8 | * загрузка из EEPROM: память EEPROM (8 Кбайт) отображается в загрузочную область (0x0000_0000), но по прежнему остается доступной также по адресу 0x0100_0000; | ||
* загрузка из внешней памяти: контроллер SPIFI отображается в загрузочную область (0x0000_0000), но по прежнему остается доступной также по адресу 0x8000_0000; | * загрузка из внешней памяти: контроллер SPIFI отображается в загрузочную область (0x0000_0000), но по прежнему остается доступной также по адресу 0x8000_0000; | ||
* загрузка из системной ОЗУ: блок ОЗУ отображается в загрузочную область (0x0000_0000), но по прежнему остается доступной также по адресу 0x0200_0000. | * загрузка из системной ОЗУ: блок ОЗУ отображается в загрузочную область (0x0000_0000), но по прежнему остается доступной также по адресу 0x0200_0000. |
Версия от 23:34, 16 апреля 2024
Общая информация
Адресное пространство RISC-V составляет 4 Гбайт. Все периферийные модули, блоки памяти и т. д. находятся в этом диапазоне и их содержимое можно получить чтением по адресу.
Описание работы
Введение
Все области памяти имеют фиксированный, за исключением области Загрузчика 0x0000_0000 - 0x0000-0x4000. Это память из которой запускается микроконтроллер.
Карта памяти
Карта памяти представлена на следующей таблице.
Адрес/смещение | Устройство |
---|---|
0x0000_0000 | Загрузчик (16 Кбайт) |
0x0004_0000 | DMA_Config |
0x0005_0000 | Устройста на шине APB_M |
+0x0000 | Блок управления питанием и тактированием |
+0x0400 | Контроллер прерываний |
+0x0800 | Таймер32_0 |
+0x0C00 | Контроллер выводов |
+0x1000 | Сторожевой таймер шины |
+0x1400 | OTP |
+0x1800 | Монитор напряжения |
0x00006_0000 | Устройства батарейного домена |
+0x000 | WakeUp |
+0x400 | RTC |
0x00007_0000 | Устройства подсистемы памяти |
+0x000 | Регистры контроллера SPIFI |
+0x400 | Регистры контроллера EEPROM |
0x0008_0000 | Устройста на шине AHB_P |
+0x000 | Ускоритель симметричной криптографии |
+0x400 | 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 | SRAM (16 Кбайт) |
0x8000_0000 | Внешняя память на QSPI интерфейсе, прямой доступ до 2 Гбайт
(контроллер SPIFI) |
Менеджер загрузки
Микросхема MCU32 имеет три различных варианта старта, определяемых состоянием выводов 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.