nRF52: память Печать
Добавил(а) microsin   

nRF52x, как и все микроконтроллеры ARM Cortex, традиционно содержат на кристалле память FLASH и RAM, которую используют как память программ и данных. Объем этой памяти зависит от модели чипа, см. таблицу 1.

Таблица 1. Объем памяти в зависимости от модели чипа nRF52x.

Модель MCU RAM FLASH
nRF52832-QFAA 64 килобайта 512 килобайт
nRF52832-QFAB 32 килобайта 256 килобайт
nRF52832-CIAA 64 килобайта 512 килобайт

Примечание: все непонятные термины и сокращения см. в Словарике [7].

CPU и EasyDMA [3] могут обращаться к памяти через многослойную матрицу шины AHB (AHB multilayer interconnect [2]). CPU также может обращаться к периферийным устройствам через эту шину, см. рис. 1.

nRF52 Memory layout fig01

Рис. 1. Конфигурация памяти, периферийных устройств, шины AHB multilayer interconnect.

Одна и та же физическая память RAM отображается как на регион Data RAM, так и на регион Code RAM. В зоне ответственности приложения находится распределение RAM внутри этих регионов таким образом, чтобы они не повредили друг друга.

RAM. Интерфейс ОЗУ поделен на несколько подчиненных устройств RAM AHB (RAM AHB slave). Каждый из RAM AHB подключен к двум 4-килобайтным секциям RAM, см. Section 0 и Section 1 на рис. 1.

У каждой из секций RAM есть индивидуальное управление питанием для режимов System ON и System OFF, что конфигурируется через регистр RAM, см. [4].

FLASH. Память FLASH относится к энергонезависимому типу памяти (Non-Volatile Memory), т. е. она сохраняет свои данные после выключения питания. NVM можно читать программой CPU неограниченное количество раз, однако есть ограничение на количество циклов стирание/запись, и каким образом эти операции записи должны быть выполнены.

Запись в память Flash обслуживается контроллером NVMC (Non-volatile memory controller, см. [6]).

Flash поделена на несколько страниц (page), к которым CPU может обращаться как через шину ICODE, так и через шину DCODE, см. рис. 1. Каждая страница поделена на 8 блоков.

Карта памяти. Полная карта памяти показана на рис. 2. Как уже упоминалось, Code RAM и Data RAM представляют собой одно и то же физическое ОЗУ.

nRF52 Memory map fig02

Рис. 2. Карта памяти nRF52832.

Таблица 2. Адреса периферийных устройств на карте памяти nRF52832.

ID Базовый адрес Блок Экземпляр Описание
0 0x40000000 POWER POWER Управление питанием [4].
CLOCK CLOCK Управление тактированием [5].
BPROT BPROT Защита блоков памяти.
1 0x40001000 RADIO RADIO Радиотракт 2.4 ГГц.
2 0x40002000 UARTE UARTE0 Universal Asynchronous Receiver/Transmitter, с поддержкой технологии EasyDMA.
UART UART0(1) То же самое, устаревшее наименование.
3 0x40003000 SPIS SPIS0 SPI Slave 0.
SPIM SPIM0 SPI Master 0.
SPI SPI0(1)
TWIS TWIS0 Подчиненное устройство 0 интерфейса I2C/TWI.
TWIM TWIM0 Главное устройство 0 интерфейса I2C/TWI.
TWI TWI0(1) I2C/TWI Master 0.
4 0x40004000 SPIS SPIS1 SPI Slave 1.
SPIM SPIM1 SPI Master 1.
SPI SPI1(1)
TWIS TWIS1 Подчиненное устройство 1 интерфейса I2C/TWI.
TWIM TWIM1 Главное устройство 1 интерфейса I2C/TWI.
TWI TWI1(1) I2C/TWI Master 1.
5 0x40005000 NFCT NFCT Near Field Communication Tag.
6 0x40006000 GPIOTE GPIOTE GPIO Task и Events.
7 0x40007000 SAADC SAADC Аналого-цифровой преобразователь.
8 0x40008000 TIMER TIMER0 Timer/Counter 0.
9 0x40009000 TIMER1 Timer/Counter 1.
10 0x4000A000 TIMER2 Timer/Counter 2.
11 0x4000B000 RTC RTC0 Real-Time Counter 0.
12 0x4000C000 TEMP TEMP Датчик температуры.
13 0x4000D000 RNG RNG Генератор случайных чисел.
14 0x4000E000 ECB ECB Crypto AES ECB.
15 0x4000F000 CCM CCM AES Crypto CCM.
AAR AAR Accelerated Address Resolver.
16 0x40010000 WDT WDT Watchdog Timer.
17 0x40011000 RTC RTC1 Real-Time Counter 1.
18 0x40012000 QDEC QDEC Quadrature Decoder.
19 0x40013000 LPCOMP LPCOMP Компаратор детектирования пониженного напряжения питания (Low Power Comparator).
COMP COMP Компаратор общего назначения.
20 0x40014000 SWI SWI0 Программное прерывание 0.
EGU EGU0 Event Generator Unit 0.
21 0x40015000 EGU1 Event Generator Unit 1.
SWI SWI1 Программное прерывание 1.
22 0x40016000 SWI2 Программное прерывание 2.
EGU EGU2 Event Generator Unit 2.
23 0x40017000 SWI SWI3 Программное прерывание 3.
EGU EGU3 Event Generator Unit 3.
24 0x40018000 EGU4 Event Generator Unit 4.
SWI SWI4 Программное прерывание 4.
25 0x4001900 SWI5 Программное прерывание 5.
EGU EGU5 Event Generator Unit 5.
26 0x4001A00 TIMER TIMER3 Timer/Counter 3.
27 0x4001B00 TIMER4 Timer/Counter 4.
28 0x4001C00 PWM PWM0 Блок ШИМ 0.
29 0x4001D00 PDM PDM Pulse Density Modulation (интерфейс цифрового микрофона).
30 0x4001E000 NVMC NVMC Non-Volatile Memory Controller.
31 0x4001F000 PPI PPI Programmable Peripheral Interconnect.
32 0x40020000 MWU MWU Memory Watch Unit.
33 0x40021000 PWM  PWM1 Блок ШИМ 1.
34 0x40022000 PWM2 Блок ШИМ 2.
35 0x40023000 SPI SPI2(1) SPI Master 2.
SPIS SPIS2 SPI Slave 2.
SPIM SPIM2 SPI Master 2
36
0x40024000 RTC RTC2 Real-Time Counter 2.
37 0x40025000 I2S I2S Inter-IC Sound Interface.
38 0x40026000 FPU FPU Прерывание FPU.
0 0x50000000 GPIO GPIO(1) Порты ввода/вывода общего назначения.
P0
NA 0x10000000 FICR FICR Factory Information Configuration Registers (заводские информационно-конфигурационные регистры).
NA 0x10001000 UICR UICR User Information Configuration Registers (пользовательские регистры информации и конфигурации).

Примечание (1): устаревшее наименование.

[Ссылки]

1. Memory nRF52832 site:nordicsemi.com.
2. AHB multilayer nRF52832 site:nordicsemi.com.
3. EasyDMA nRF52832 site:nordicsemi.com.
4. nRF52: источники питания.
5. nRF52: управление тактированием.
6. nRF52: контроллер энергонезависимой памяти NVMC.
7Bluetooth: аббревиатуры и термины.