В этой статье дан обзор внутренней системы шин и памяти микроконтроллеров STM32F4 (перевод раздела "2 Memory and bus architecture" даташита [1]). Все непонятные термины и сокращения см. в Словарике [7].
[Архитектура системы]
STM32F405xx/07xx и STM32F415xx/17xx. Основная внутренняя система основана на 32-разрядной многослойной матрице шин AHB, которая соединяет:
• 8 главных устройств (master):
– Cortex®-M4 ядро с FPU I-bus, D-bus и S-bus – шина памяти DMA1 – шина памяти DMA2 – шина периферийных устройств DMA2 – шина Ethernet DMA – шина USB OTG HS DMA
• 7 подчиненных устройств (slave):
– шина внутренней памяти Flash ICode – шина внутренней памяти Flash DCode – основная внутренняя память SRAM1 (112 килобайт) – дополнительная внутренняя память SRAM2 (16 килобайт) – периферийные устройства AHB1, включая мосты AHB - APB и периферийные устройства APB – периферийные устройства AHB2 – FSMC
Матрица шин предоставляет доступ от master к slave, позволяя реализовать конкурентный доступ и эффективную работу даже когда одновременно работают несколько высокоскоростных периферийных устройств. 64-килобайтная память данных CCM (Core Coupled Memory) не является частью матрицы шин, и к ней можно осуществлять доступ только через ядро CPU. Эта архитектура показана на рис. 1.
Рис. 1. Архитектура системы MCU STM32F405xx/07xx и STM32F415xx/17xx.
STM32F42xx и STM32F43xx. Основная внутренняя система основана на 32-разрядной многослойной матрице шин AHB, которая соединяет:
• 10 главных устройств (master):
– Cortex®-M4 ядро с FPU I-bus, D-bus и S-bus – шина памяти DMA1 – шина памяти DMA2 – шина периферийных устройств DMA2 – шина Ethernet DMA – шина USB OTG HS DMA – шина DMA контроллера LCD [5] – шина памяти DMA2D (Chrom-Art Accelerator™)
• 8 подчиненных устройств (slave):
– шина внутренней памяти Flash ICode – шина внутренней памяти Flash DCode – основная внутренняя память SRAM1 (112 килобайт) – дополнительная внутренняя память SRAM2 (16 килобайт) – дополнительная внутренняя память SRAM3 (64 килобайта) – периферийные устройства AHB1, включая мосты AHB - APB и периферийные устройства APB – периферийные устройства AHB2 – FSMC
Матрица шин предоставляет доступ от master к slave, позволяя реализовать конкурентный доступ и эффективную работу даже когда одновременно работают несколько высокоскоростных периферийных устройств. 64-килобайтная память данных CCM (Core Coupled Memory) не является частью матрицы шин, и к ней можно осуществлять доступ только через ядро CPU. Эта архитектура показана на рис. 2.
Рис. 2. Архитектура системы MCU STM32F42xxx и STM32F43xxx.
I-bus. Эта шина соединяет с матрицей шин шину инструкций ядра Cortex®-M4. Шина I-bus используется ядром для выборки инструкций. Эта шина работает с памятью, где находится код (внутренняя память Flash/SRAM или внешние устройства памяти, доступные через контроллер FSMC/FMC).
D-bus. Эта шина соединяет память данных 64-килобайт CCM с шиной данных ядра Cortex®-M4 через матрицу шин (BusMatrix). Шина D-bus используется ядром для загрузки данных и доступа к отладке. Эта шина работает с памятью, где содержится код или данные (внутренняя память Flash или внешние устройства памяти, доступные через контроллер FSMC/FMC).
S-bus. Эта шина соединяет системную шину ядра Cortex®-M4 с BusMatrix. Шина S-bus используется для доступ к памяти, находящейся в периферийном устройстве или в SRAM. Через эту шину может также осуществляться выборка инструкций (с меньшей эффективностью по сравнению с ICode). Шина S-bus работает с внутренней памятью SRAM1, SRAM2 и SRAM3, периферийными устройствами AHB1, включая периферийные устройства APB, периферийные устройства AHB2 и внешние устройства памяти, доступные через контроллер FSMC/FMC.
Шина памяти DMA. Эта шина соединяет мастера шины памяти DMA с BusMatrix. Шина памяти DMA используется блоком DMA для выполнения перемещения данных между областями памяти. Эта шина работает со следующими областями данных: внутренние банки SRAM (SRAM1, SRAM2 и SRAM3) и внешние устройства памяти, доступные через контроллер FSMC/FMC.
Шина DMA периферийных устройств. Эта шина соединяет интерфейс мастера DMA периферии с BusMatrix. Шина DMA периферийных устройств используется блоком DMA для доступа к периферийным устройствам AHB, или для выполнения перемещений данных между областями памяти. Эта шина работает с периферийными устройствами AHB и APB плюс с памятью данных: внутренние банки SRAM (SRAM1, SRAM2 и SRAM3) и внешние устройства памяти, доступные через контроллер FSMC/FMC.
Шина Ethernet DMA. Эта шина соединяет интерфейс мастера Ethernet DMA с BusMatrix. Шина используется блоком Ethernet DMA для обмена данными с памятью. Шина Ethernet DMA работает с памятью данных: внутренние банки SRAM (SRAM1, SRAM2 и SRAM3), внутренняя память Flash и внешние устройства памяти, доступные через контроллер FSMC/FMC.
Шина USB OTG HS DMA. Эта шина соединяет интерфейс мастера USB OTG HS DMA с BusMatrix. Шина используется блоком USB OTG HS DMA для обмена данными с памятью. Шина USB OTG HS DMA работает с памятью данных: внутренние банки SRAM (SRAM1, SRAM2 и SRAM3), внутренняя память Flash и внешние устройства памяти, доступные через контроллер FSMC/FMC.
Шина DMA контроллера LCD-TFT. Эта шина соединяет интерфейс мастера DMA контроллера LCD [5] с BusMatrix. Шина используется блоком LCD-TFT DMA для обмена данными с памятью. Шина DMA контроллера LCD-TFT работает с памятью данных: внутренние банки SRAM (SRAM1, SRAM2 и SRAM3), внутренняя память Flash и внешние устройства памяти, доступные через контроллер FMC.
Шина DMA2D. Эта шина соединяет интерфейс мастера DMA2D с BusMatrix. Шина используется блоком графического ускорителя DMA2D для обмена данными с памятью. Шина DMA2D работает с памятью данных: внутренние банки SRAM (SRAM1, SRAM2 и SRAM3), внутренняя память Flash и внешние устройства памяти, доступные через контроллер FMC.
BusMatrix. Матрица шин управляет арбитражем между мастерами. Арбитраж использует алгоритм round-robin (циклическая передача приоритета).
Мосты AHB/APB. Два моста AHB/APB, APB1 и APB2, предоставляют полное синхронное соединение между шиной AHB и двумя шинами APB, что позволяет гибко выбирать частоту тактирования периферийных устройств. Для получения подробной информации по максимальным частотам шин APB1 и APB2 см. даташит на используемый MCU. В таблице 1 показано отображение адресов AHB и периферийных устройств APB.
После каждого сброса MCU тактирование всех периферийных устройств запрещено (кроме интерфейса памяти SRAM и Flash). Поэтому перед использованием периферийного устройства необходимо разрешить его тактирование программированием регистров контроллера RCC (RCC_AHBxENR или RCC_APBxENR).
Примечание: когда к регистру APB осуществляется 16-битный или 8-битный доступ, этот доступ преобразуется в 32-битный: мост дублирует 16-битные или 8-битные данные для подачи 32-битного вектора.
[Организация памяти]
Память программы, память данных, регистры и порты ввода/вывода организованы в одном общем, линейном пространстве адресов объемом 4 гигабайта.
Данные хранятся в памяти в формате little endian [6]. Байт с наименьшим номером в слове (с самым малым адресом) считается самым младшим значащим байтом этого слова. И наоборот, байт с самым большим номером (с самым большим адресом) считается самым значащим байтом слова.
Подробную информацию по адресам регистров периферийных устройств см. соответствующие разделы даташита [1].
Адресуемое пространство памяти поделено на 8 основных блоков, каждый по 512 мегабайт. Все области памяти, которые не принадлежат встроенным в чип областям памяти и периферийным устройствам считаются зарезервированными. См. карту памяти в даташите на используемый микроконтроллер.
[Карта памяти]
Подробную схему карты памяти см. в таблице, соответствующей вашему используемому MCU и периферийному устройству. Таблица 1 показывает границы адресов периферийных устройств, имеющихся во всех MCU STM32F4xx.
Таблица 1. Области адресов регистров STM32F4xx.
Границы адресов
Периферийное устройство
Шина
Карта регистров (в даташите [1])
0xA0000000 - 0xA0000FFF
FSMC control register (STM32F405xx/07xx и STM32F415xx/17xx) / FMC control register (STM32F42xxx и STM32F43xxx)
"9.2.8: SYSCFG register map" для STM32F405xx/07xx и STM32F415xx/17xx стр. 294 "9.3.8: SYSCFG register map" для STM32F42xxx и STM32F43xxx стр. 301
0x40013400 - 0x400137FF
SPI4
"28.5.10: SPI register map", стр. 925
0x40013000 - 0x400133FF
SPI1
0x40012C00 - 0x40012FFF
SDIO
"31.9.16: SDIO register map", стр. 1074
0x40012000 - 0x400123FF
ADC1, ADC2, ADC3
"13.13.18: ADC register map", стр. 430
0x40011400 - 0x400117FF
USART6
"30.6.8: USART register map", стр. 1018
0x40011000 - 0x400113FF
USART1
0x40010400 - 0x400107FF
TIM8
"17.4.21: TIM1 and TIM8 register map", стр. 587
0x40010000 - 0x400103FF
TIM1
0x40007C00 - 0x40007FFF
UART8
APB1
"30.6.8: USART register map", стр. 1018
0x40007800 - 0x40007BFF
UART7
0x40007400 - 0x400077FF
DAC
"14.5.15: DAC register map", стр. 453
0x40007000 - 0x400073FF
PWR
"5.6: PWR register map", стр. 149
0x40006800 - 0x40006BFF
CAN2
"32.9.5: bxCAN register map", стр. 1118
0x40006400 - 0x400067FF
CAN1
0x40005C00 - 0x40005FFF
I2C3
"27.6.11: I2C register map", стр. 872
0x40005800 - 0x40005BFF
I2C2
0x40005400 - 0x400057FF
I2C1
0x40005000 - 0x400053FF
UART5
"30.6.8: USART register map", стр. 1018
0x40004C00 - 0x40004FFF
UART4
0x40004800 - 0x40004BFF
USART3
0x40004400 - 0x400047FF
USART2
0x40004000 - 0x400043FF
I2S3ext
"28.5.10: SPI register map", стр. 925
0x40003C00 - 0x40003FFF
SPI3 / I2S3
0x40003800 - 0x40003BFF
SPI2 / I2S2
0x40003400 - 0x400037FF
I2S2ext
0x40003000 - 0x400033FF
IWDG
"21.4.5: IWDG register map", стр. 712
0x40002C00 - 0x40002FFF
WWDG
"22.6.4: WWDG register map", стр. 719
0x40002800 - 0x40002BFF
Регистры RTC и BKP
"26.6.21: RTC register map", стр. 836
0x40002000 - 0x400023FF
TIM14
"19.5.12: TIM10/11/13/14 register map", стр. 694
0x40001C00 - 0x40001FFF
TIM13
0x40001800 - 0x40001BFF
TIM12
"19.4.13: TIM9/12 register map", стр. 684
0x40001400 - 0x400017FF
TIM7
"20.4.9: TIM6 and TIM7 register map", стр. 707
0x40001000 - 0x400013FF
TIM6
0x40000C00 - 0x40000FFF
TIM5
"18.4.21: TIMx register map", стр. 648
0x40000800 - 0x40000BFF
TIM4
0x40000400 - 0x400007FF
TIM3
0x40000000 - 0x400003FF
TIM2
Встроенная SRAM. В микроконтроллерах STM32F405xx/07xx и STM32F415xx/17xx имеется 4 килобайта Backup SRAM и 192 килобайта системной памяти SRAM. В микроконтроллерах STM32F42xxx и STM32F43xxx имеется 4 килобайта Backup SRAM и 192 килобайта системной памяти SRAM. Описание Backup SRAM см. в секции "5.1.2: Battery backup domain" даташита [1].
К встроенной SRAM можно обращаться как к байтам, половинкам слов (16 бит) или к полным словам (32 бита). Операции чтения и записи выполняются на полной скорости CPU без циклов задержек на ожидание (0 wait state). Встроенная SRAM поделена на 3 блока:
• SRAM1 и SRAM2, отображенная на адрес 0x20000000, и доступная для всех мастеров AHB. • SRAM3 (имеется у STM32F42xxx и STM32F43xxx), отображенная на адрес 0x20020000, и доступная для всех мастеров AHB. • CCM (Core Coupled Memory), отображенная на адрес 0x10000000, и доступная для CPU через D-bus.
Мастера AHB поддерживают конкурентные попытки доступа к SRAM (от Ethernet или USB OTG HS): например, Ethernet MAC может читать/записывать SRAM2, в то время как CPU читает/записывает SRAM1 или SRAM3.
CPU может обращаться к SRAM1, SRAM2 и SRAM3 через системную шину (System Bus) или через шины I-Code/D-Code, когда выбрана загрузка (boot) из SRAM, или когда выбрано физическое переназначение карты памяти (physical remap, см. секцию "9.2.1: SYSCFG memory remap register (SYSCFG_MEMRMP)" описания контроллера SYSCFG даташита [1]). Чтобы получить максимальную производительность выполнения кода из SRAM, должно быть выполнено physical remap (выбор кода boot или программы).
Память Flash. Интерфейс памяти Flash обслуживает доступ шин CPU AHB I-Code и D-Code к памяти Flash. Он реализован для операций стирания и программирования памяти Flash, и для механизмов защиты от чтения и записи. Интерфейс ускоряет выполнение кода с помощью предварительной выборки инструкции и линеек кеша.
Память Flash организована следующим образом:
• Основной блок памяти поделен на секторы. • Системная память, из которой загружается система в режиме загрузки System memory boot mode. • 512 байт OTP (однократно программируемая память) для данных пользователей. • Байты опций, предназначенные для конфигурирования защиты чтения и записи, уровня детектора пропадания питания для сброса (BOR), программно/аппаратного сторожевого таймера и сброса, когда MCU находится в режиме Standby или Stop.
Подробнее см. секцию "3: Embedded Flash memory interface" в даташите [1].
Битовые операции (bit banding). Карта памяти Cortex®-M4 с FPU включает две группы бит (bit-band). Эти регионы отображают каждое слово ссылочного региона памяти на бит в группе (bit-band) памяти. Запись слова ссылочного региона дает тот же эффект, что и операция read-modify-write (чтение-модификация-запись) целевого бита группы bit-band.
В микроконтроллерах STM32F4xx как регистры периферийных устройств, так и SRAM, отображены на область bitband, поэтому дозволяются одиночные операции bit-band записи и чтения. Эти операции доступны только для доступа Cortex®-M4 с FPU, но не от других мастеров шины (например DMA).
Формула отображения показывает, как осуществляется ссылка на каждое слово в алиас-регионе на соответствующий бит группы в регионе bit-band:
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number x 4)
здесь:
bit_word_addr - адрес слова в алиас-регионе памяти, которая отображается на целевой бит. bit_band_base - начальный адрес алиас-региона. byte_offset - номер байта в регионе bit-band, который содержит целевой бит. bit_number - позиция (0 .. 7) целевого бита.
Следующий пример показывает, как отображается бит 2 байта, находящегося в SRAM по адресу 0x20000300, на алиас-регион:
0x22006008 = 0x22000000 + (0x300*32) + (2*4)
Запись по адресу 0x22006008 дает тот же эффект, что и операция read-modify-write бита 2 байта SRAM по адресу 0x20000300.
Чтение адреса 0x22006008 возвратит значение бита 2 (0x01 или 0x00) байта по адресу 0x20000300 (0x01 бит установлен, 0x00 бит сброшен).
Подробнее про bit-banding см. руководство по программированию PM0214 [3].
[Конфигурация загрузки]
Из-за фиксированной карты памяти область кода (программа) начинается с адреса 0x00000000 (эта область памяти доступна через шины ICode/DCode), в то время как область данных (SRAM) начинается с адреса 0x20000000 (эта область доступна через системную шину). CPU Cortex®-M4 всегда делает выборку инструкции по вектору сброса на шине ICode. Это подразумевает, что область загрузки доступна только в области кода (обычно память Flash). Микроконтроллеры STM32F4xx реализуют специальный механизм, позволяющий загрузиться из других областей памяти (наподобие внутренней SRAM).
В STM32F4xx есть 3 разных режима загрузки, выбираемые ножками корпуса BOOT[1:0], что показано в таблице 2.
Таблица 2. Режимы загрузки.
Выводы для выбора режима загрузки
Режим загрузки
На что происходит ссылка
BOOT1
BOOT0
x
0
Основная память Flash
В качестве области загрузки выбрана основная память Flash.
0
1
Системная память
В качестве области загрузки выбрана System Memory.
1
1
Встроенная SRAM
В качестве области загрузки выбрана встроенная SRAM.
Значения на выводах BOOTx защелкиваются на 4-ом фронте нарастания уровня тактов SYSCLK после сброса. Пользователь должен установить логический уровень ножек корпуса BOOT1 и BOOT0, чтобы после сброса был выбран необходимый режим загрузки.
Для функции BOOT0 выделена специальная ножка корпуса, в то время как функция BOOT1 совмещена с ножкой порта GPIO. Как только уровень BOOT1 был прочитан, соответствующая ножка GPIO освобождается, и может использоваться для других целей.
Уровни на ножках BOOT также анализируются, когда MCU выходит из режима Standby. Следовательно, необходимо сохранить требуемую конфигурацию режима загрузки, когда MCU находится в режиме Standby. После того, как задержка startup закончится, CPU делает выборку значение вершины стека по адресу 0x00000000, и затем начинает выполнять код из памяти загрузки (boot memory), начиная с 0x00000004.
Примечание: когда MCU загружается из SRAM, в коде инициализации приложения необходимо переразместить таблицу векторов в SRAM, используя таблицу исключений контроллера прерываний (NVIC exception table) и регистр смещения.
В случае, когда микроконтроллеры STM32F42xxx и STM32F43xxx загружаются из основной памяти Flash, программа приложения может загрузиться либо из банка 1, либо из банка 2. По умолчанию выбран банк 1.
Для выбора загрузки из банка 2 памяти Flash установите бит BFB2 в байтах опций пользователя. Когда этот бит установлен, и ножки управления загрузкой установлены на загрузку из основной памяти Flash, устройство загружается из системной памяти, и загрузчик делает безусловный переход на выполнение приложения пользователя, запрограммированного в банке 2 памяти Flash. Для дополнительной информации см. апноут AN2606 (для микроконтроллеров STM32F42xxx и STM32F43xxx см. статью [4]).
Встроенный загрузчик. Режим встроенного загрузчика используется для перепрограммирования памяти Flash, используя один из следующих последовательных интерфейсов:
• USART1 (ножки портов PA9/PA10) • USART3 (ножки портов PB10/PB11 и PC10/PC11) • CAN2 (ножки потов PB5 и PB13) • USB OTG FS (ножки портов PA11/PA12) в режиме устройства USB (этот интерфейс обозначается аббревиатурой DFU: device firmware upgrade, обновление ПО устройства).
Периферийные устройства USART работают от внутреннего высокоскоростного RC-генератора 16 МГц (HSI), в то время как CAN и USB OTG FS требуют внешнего источника тактов (обычно это кварц, генератор HSE) с частой, нацело делящейся на 1 МГц (в диапазоне от 4 до 26 МГц).
Встроенный загрузчик находится в системной памяти, он программируется компанией ST в процессе производства. Для дополнительной информации см. апноут AN2606 (для микроконтроллеров STM32F42xxx и STM32F43xxx см. статью [4]).
Physical remap STM32F405xx/07xx и STM32F415xx/17xx. Как только выбрано состояние выводов управления загрузкой, программа приложения может изменить память, доступную в области кода (таким способом код может быть выполнен через шину ICode вместо того, чтобы выполняться через системную шину). Эта модификация выполняется программированием регистра переназначения памяти (SYSCFG memory remap register, SYSCFG_MEMRMP) контроллера SYSCFG, см. [1].
Переназначение (remap) может быть применено к следующим областям памяти:
• Основная память Flash • Системная память • Встроенная SRAM1 (112 килобайт) • FSMC bank 1 (NOR/PSRAM 1 и 2)
Таблица 3. Отображение памяти при Boot mode/physical remap для STM32F405xx/07xx и STM32F415xx/17xx.
Адреса
Boot/Remap в основную Flash
Boot/Remap во встроенную SRAM
Boot/Remap в System Memory
Remap в FSMC
0x2001C000 - 0x2001FFFF
SRAM2 (16 KB)
SRAM2 (16 KB)
SRAM2 (16 KB)
SRAM2 (16 KB)
0x20000000 - 0x2001BFFF
SRAM1 (112 KB)
SRAM1 (112 KB)
SRAM1 (112 KB)
SRAM1 (112 KB)
0x1FFF0000 - 0x1FFF77FF
System Memory
System Memory
System Memory
System Memory
0x08100000 - 0x0FFFFFFF
Зарезервировано
Зарезервировано
Зарезервировано
Зарезервировано
0x08000000 - 0x080FFFFF
Память Flash
Память Flash
Память Flash
Память Flash
0x04000000 - 0x07FFFFFF
Зарезервировано
Зарезервировано
Зарезервировано
Зарезервировано
0x00000000 - 0x000FFFFF(1)(2)
Ссылка на Flash (1 MB)
Ссылка на SRAM1 (112 KB)
Ссылка на System Memory (30 KB)
Ссылка на FSMC bank 1 NOR /PSRAM 1 (128 MB)
Примечания:
(1) Когда FSMC переназначен на адрес 0x00000000, могут быть переназначены только первые 2 региона банка 1 контроллера памяти (bank 1 NOR/PSRAM 1 и NOR/PSRAM 2). В режиме переназначения (remap mode), CPU может получить доступ к внешней памяти через шину ICode вместо системной шины, что улучшает производительность. (2) Даже когда память ссылочно отображена на область загрузки (boot memory space), эта соответствующая память все еще доступна по своим оригинальным адресам на карте памяти.
Physical remap STM32F42xxx и STM32F43xxx. Как только выбрано состояние выводов управления загрузкой, программа приложения может изменить память, доступную в области кода (таким способом код может быть выполнен через шину ICode вместо того, чтобы выполняться через системную шину). Эта модификация выполняется программированием регистра переназначения памяти (SYSCFG memory remap register, SYSCFG_MEMRMP) контроллера SYSCFG, см. [1].
Переназначение (remap) может быть применено к следующим областям памяти:
• Основная память Flash • Системная память • Встроенная SRAM1 (112 килобайт) • FSMC bank 1 (NOR/PSRAM 1 и 2) • FMC SDRAM bank 1
Таблица 4. Отображение памяти при Boot mode/physical remap для STM32F42xxx и STM32F43xxx.
Адреса
Boot/Remap в основную Flash
Boot/Remap во встроенную SRAM
Boot/Remap в System Memory
Remap в FMC
0x20020000 - 0x2002FFFF
SRAM3 (64 KB)
SRAM3 (64 KB)
SRAM3 (64 KB)
SRAM3 (64 KB)
0x2001C000 - 0x2001FFFF
SRAM2 (16 KB)
SRAM2 (16 KB)
SRAM2 (16 KB)
SRAM2 (16 KB)
0x20000000 - 0x2001BFFF
SRAM1 (112 KB)
SRAM1 (112 KB)
SRAM1 (112 KB)
SRAM1 (112 KB)
0x1FFF0000 - 0x1FFF77FF
System Memory
System Memory
System Memory
System Memory
0x08100000 - 0x0FFFFFFF
Зарезервировано
Зарезервировано
Зарезервировано
Зарезервировано
0x08000000 - 0x080FFFFF
Память Flash
Память Flash
Память Flash
Память Flash
0x04000000 - 0x07FFFFFF
Зарезервировано
Зарезервировано
Зарезервировано
Ссылка на FMC bank 1 NOR /PSRAM 2 (128 MB)
0x00000000 - 0x001FFFFF(1)(2)
Ссылка на Flash (2 MB)
Ссылка на SRAM1 (112 KB)
Ссылка на System Memory (30 KB)
Ссылка на FMC bank 1 NOR /PSRAM 1 (128 MB), или ссылка на FMC SDRAM bank 1 (128 MB)
Примечания:
(1) Когда FSMC переназначен на адрес 0x00000000, могут быть переназначены только первые 2 региона банка 1 контроллера памяти (bank 1 NOR/PSRAM 1 и NOR/PSRAM 2) или SDRAM bank 1. В режиме переназначения (remap mode), CPU может получить доступ к внешней памяти через шину ICode вместо системной шины, что улучшает производительность. (2) Даже когда память ссылочно отображена на область загрузки (boot memory space), эта соответствующая память все еще доступна по своим оригинальным адресам на карте памяти.