Nordic Semiconductor nRF54H20
The Nordic Semiconductor nRF54H20 are ultra low-power multiprotocol wireless System-on-Chip (SoC) supporting Bluetooth Low Energy, Bluetooth mesh, Thread, and Matter technologies.
Flash Banks
| Flash Bank | Base address | J-Link Support | Loader | |
|---|---|---|---|---|
| Name | Size | |||
| MRAM | 0x0E003000 | Default | 1988 KB | |
| UICR APP core | 0x0FFF8000 | Default | 1976 B | |
| UICR RADIO core | 0x0FFFA000 | Default | 72 B | |
Flash programming is supported through SECURE core while in life cycle state EMPTY.
Watchdog Handling
- The device has two watchdogs WDT010, WDT011.
- The watchdogs are fed during flash programming.
Multi-Core Support
Before proceeding with this article, please check out the generic article regarding Multi-Core debugging here.
Depending on the life cycle state (LCS) different cores are available.
| Core | LCS | J-Link Support |
|---|---|---|
| SECURE | EMPTY | |
| APP | RoT | |
| RADIO | RoT after unlock through APP core |
In below, the debug related multi-core behavior of the J-Link is described for each core:
SECURE core
Init/Setup
- Enables debugging
- Initializes MPC so that MRAM is in readable state
Reset
- No reset is performed.
APP core
Init/Setup
- The core is only available after transitioning to LCS state EMPTY.
Reset
- Performs a reset via CTRL-AP
RADIO core
Init/Setup
- The core is only available after transitioning to LCS state EMPTY.
- The core needs to be enabled by APP core application.
STM tracing
The NRF54H20 includes a STM. It can be used for system tracing.
Minimum requirements
- J-Trace Pro V3 or later
- Trace pinout on board
- Target application that initializes Arm Coresight and configures STM to send data (recommended STM trace ID is 0x40)
- J-Link software V7.94i or later
- nRF54H20-DK eval board
- Python V3.10 installed
Example setup
- Download the following example setup and unzip it: File:nRF54 STM ExampleSetup.zip
- Make sure your target application is already flashed which fulfills the requirements above.
- Open STM_Trace_TestClient.py and leave the launched window open
- Open a terminal from the unzipped folder
- Call the JLink.exe file with the following command line: -device Cortex-M33 -JLinkScriptFile .\nRF54_Connect.JLinkScript -if SWD -speed 4000 -CommandFile .\nRF54_Command.jlink
- On Linux or macOS systems replace the JLink.exe with the host specific executable for the J-Link Commander
- The raw STM data from the target device will now be stored in the STMData.bin file
- To stop the recording simply type q in the J-Link Commander and press enter
Capture with Nordic nrfutil
It is also possible to capture the stream with Nordics nrfutil tool.
Installation guides can be found here:
- https://docs.nordicsemi.com/bundle/nrfutil/page/guides/installing.html
- https://docs.nordicsemi.com/bundle/nrfutil/page/guides/installing_commands.html
The required command line call is: nrfutil trace stm --input-jtrace-serial-number <J-Trace serial number> --stdout ascii
Simply replace <J-Trace serial number> with your actual J-Trace Pro serial number.
If everything was set up correctly you should see the received STM printf data displayed in the terminal.