Memory

The application microcontroller has embedded 1024 kB flash and 256 kB RAM for application code and data storage.

As illustrated in Memory layout, both CPU and EasyDMA are able to access RAM via the AHB multilayer interconnect. See AHB multilayer interconnect and EasyDMA for more information about AHB multilayer interconnect and EasyDMA respectively. The LTE modem can access all application MCU memory, but typically a small portion of RAM is dedicated to data exchange between application MCU and the modem baseband controller.

Figure 1. Memory layout

Memory layout

RAM - Random access memory

RAM can be read and written an unlimited number of times by the CPU and the EasyDMA.

Each RAM AHB slave is connected to one or more RAM sections. See Memory layout for more information.

The RAM blocks power states and retention states in System ON and System OFF modes are controlled by the VMC.

Flash - Non-volatile memory

Flash can be read an unlimited number of times by the CPU and is accessible via the AHB interface connected to the CPU, see Memory layout for more information. There are restrictions on the number of times flash can be written and erased, and also on how it can be written. For more information, see Absolute maximum ratings. Writing to flash is managed by the non-volatile memory controller (NVMC).

Memory map

All memory and registers are found in the same address space, as illustrated in the device memory map below.

Figure 2. Memory map

Memory map

Some of the registers are retained (their values kept). Read more about retained registers in Retained registers and Reset behavior.

Instantiation

Table 1. Instantiation table
IDBase addressInstanceTrustZoneSplit accessDescription
MapAttDMA
30x50003000SPU

HF

S

NANo

System Protection Unit

4

0x50004000
0x40004000

REGULATORS : S
REGULATORS : NS

US

NS

NANo

Regulator configuration

5

0x50005000
0x40005000

CLOCK : S
CLOCK : NS

US

NS

NANo

Clock control

5

0x50005000
0x40005000

POWER : S
POWER : NS

US

NS

NANo

Power control

60x50006000CTRL_AP_PERI

HF

S

NANo

CTRL-AP-PERI

8

0x50008000
0x40008000

SPIM0 : S
SPIM0 : NS

US

NS

SANo

SPI master 0

8

0x50008000
0x40008000

SPIS0 : S
SPIS0 : NS

US

NS

SANo

SPI slave 0

8

0x50008000
0x40008000

TWIM0 : S
TWIM0 : NS

US

NS

SANo

Two-wire interface master 0

8

0x50008000
0x40008000

TWIS0 : S
TWIS0 : NS

US

NS

SANo

Two-wire interface slave 0

8

0x50008000
0x40008000

UARTE0 : S
UARTE0 : NS

US

NS

SANo

Universal asynchronous receiver/transmitter with EasyDMA 0

9

0x50009000
0x40009000

SPIM1 : S
SPIM1 : NS

US

NS

SANo

SPI master 1

9

0x50009000
0x40009000

SPIS1 : S
SPIS1 : NS

US

NS

SANo

SPI slave 1

9

0x50009000
0x40009000

TWIM1 : S
TWIM1 : NS

US

NS

SANo

Two-wire interface master 1

9

0x50009000
0x40009000

TWIS1 : S
TWIS1 : NS

US

NS

SANo

Two-wire interface slave 1

9

0x50009000
0x40009000

UARTE1 : S
UARTE1 : NS

US

NS

SANo

Universal asynchronous receiver/transmitter with EasyDMA 1

10

0x5000A000
0x4000A000

SPIM2 : S
SPIM2 : NS

US

NS

SANo

SPI master 2

10

0x5000A000
0x4000A000

SPIS2 : S
SPIS2 : NS

US

NS

SANo

SPI slave 2

10

0x5000A000
0x4000A000

TWIM2 : S
TWIM2 : NS

US

NS

SANo

Two-wire interface master 2

10

0x5000A000
0x4000A000

TWIS2 : S
TWIS2 : NS

US

NS

SANo

Two-wire interface slave 2

10

0x5000A000
0x4000A000

UARTE2 : S
UARTE2 : NS

US

NS

SANo

Universal asynchronous receiver/transmitter with EasyDMA 2

11

0x5000B000
0x4000B000

SPIM3 : S
SPIM3 : NS

US

NS

SANo

SPI master 3

11

0x5000B000
0x4000B000

SPIS3 : S
SPIS3 : NS

US

NS

SANo

SPI slave 3

11

0x5000B000
0x4000B000

TWIM3 : S
TWIM3 : NS

US

NS

SANo

Two-wire interface master 3

11

0x5000B000
0x4000B000

TWIS3 : S
TWIS3 : NS

US

NS

SANo

Two-wire interface slave 3

11

0x5000B000
0x4000B000

UARTE3 : S
UARTE3 : NS

US

NS

SANo

Universal asynchronous receiver/transmitter with EasyDMA 3

130x5000D000GPIOTE0

HF

S

NANo

Secure GPIO tasks and events

14

0x5000E000
0x4000E000

SAADC : S
SAADC : NS

US

NS

SANo

Analog to digital converter

15

0x5000F000
0x4000F000

TIMER0 : S
TIMER0 : NS

US

NS

NANo

Timer 0

16

0x50010000
0x40010000

TIMER1 : S
TIMER1 : NS

US

NS

NANo

Timer 1

17

0x50011000
0x40011000

TIMER2 : S
TIMER2 : NS

US

NS

NANo

Timer 2

20

0x50014000
0x40014000

RTC0 : S
RTC0 : NS

US

NS

NANo

Real time counter 0

21

0x50015000
0x40015000

RTC1 : S
RTC1 : NS

US

NS

NANo

Real time counter 1

23

0x50017000
0x40017000

DPPIC : S
DPPIC : NS

HF

NS

NAYes

DPPI configuration

24

0x50018000
0x40018000

WDT : S
WDT : NS

US

NS

NANo

Watchdog timer

27

0x5001B000
0x4001B000

EGU0 : S
EGU0 : NS

US

NS

NANo

Event generator unit 0

28

0x5001C000
0x4001C000

EGU1 : S
EGU1 : NS

US

NS

NANo

Event generator unit 1

29

0x5001D000
0x4001D000

EGU2 : S
EGU2 : NS

US

NS

NANo

Event generator unit 2

30

0x5001E000
0x4001E000

EGU3 : S
EGU3 : NS

US

NS

NANo

Event generator unit 3

31

0x5001F000
0x4001F000

EGU4 : S
EGU4 : NS

US

NS

NANo

Event generator unit 4

32

0x50020000
0x40020000

EGU5 : S
EGU5 : NS

US

NS

NANo

Event generator unit 5

33

0x50021000
0x40021000

PWM0 : S
PWM0 : NS

US

NS

SANo

Pulse width modulation unit 0

34

0x50022000
0x40022000

PWM1 : S
PWM1 : NS

US

NS

SANo

Pulse width modulation unit 1

35

0x50023000
0x40023000

PWM2 : S
PWM2 : NS

US

NS

SANo

Pulse width modulation unit 2

36

0x50024000
0x40024000

PWM3 : S
PWM3 : NS

US

NS

SANo

Pulse width modulation unit 3

38

0x50026000
0x40026000

PDM : S
PDM : NS

US

NS

SANo

Pulse density modulation (digital microphone) interface

40

0x50028000
0x40028000

I2S : S
I2S : NS

US

NS

SANo

Inter-IC Sound

42

0x5002A000
0x4002A000

IPC : S
IPC : NS

US

NS

NANo

Interprocessor communication

440x4002C000FPU

HF

NS

NANo

Floating-point unit

490x40031000GPIOTE1

HF

NS

NANo

Non Secure GPIO tasks and events

57

0x50039000
0x40039000

APPROTECT : S
APPROTECT : NS

HF

NS

NAYes

APPROTECT control

57

0x50039000
0x40039000

KMU : S
KMU : NS

HF

NS

NAYes

Key management unit

57

0x50039000
0x40039000

NVMC : S
NVMC : NS

HF

NS

NAYes

Non-volatile memory controller

58

0x5003A000
0x4003A000

VMC : S
VMC : NS

US

NS

NANo

Volatile memory controller

640x50840000CC_HOST_RGF

HF

S

NSANo

Host platform interface

640x50840000CRYPTOCELL

HF

S

NSANo

CryptoCell sub-system control interface

66

0x50842500
0x40842500

P0 : S
P0 : NS

HF

NS

NAYes

General purpose input and output

N/A0x00FF0000FICR

HF

S

NANo

Factory information configuration

N/A0x00FF8000UICR

HF

S

NANo

User information configuration

N/A0xE0041000ETM

HF

NS

NANo

ETM

N/A0xE0051000ETB

HF

NS

NANo

ETB

N/A0xE0054000TPIU

HF

NS

NANo

TPIU

N/A0xE0058000ATBREPLICATOR

HF

NS

NANo

ATBREPLICATOR

N/A0xE005A000ATBFUNNEL1

HF

NS

NANo

ATBFUNNEL unit 1

N/A0xE005B000ATBFUNNEL2

HF

NS

NANo

ATBFUNNEL unit 2

N/A0xE0080000TAD

HF

S

NANo

Trace and debug control

Peripheral access control capabilities

Information about the peripheral access control capabilities can be found in the instantiation table.

The instantiation table has two columns containing the information about access control capabilities for a peripheral:

  • Secure mapping: This column defines configuration capabilities for TrustZone®-M secure attribute.
  • DMA security: This column indicates whether the peripheral has DMA capabilities, and if DMA transfer can be assigned to a different security attribute than the peripheral itself.

For details on options in secure mapping column and DMA security column, see the following tables respectively.

Table 2. Secure mapping column options
AbbreviationDescription
NSNon-secure: This peripheral is always accessible as a non-secure peripheral.
SSecure: This peripheral is always accessible as a secure peripheral.
USUser-selectable: Non-secure or secure attribute for this peripheral is defined by the PERIPHID[0].PERM register.
SPLITBoth non-secure and secure: The same resource is shared by both secure and non-secure code.
Table 3. DMA security column options
AbbreviationDescription
NANot applicable: Peripheral has no DMA capability.
NSANo separate attribute: Peripheral has DMA, and DMA transfers always have the same security attribute as assigned to the peripheral.
SASeparate attribute: Peripheral has DMA, and DMA transfers can have a different security attribute than the one assigned to the peripheral.