Please enable JavaScript to view this site.

winIDEA Help

Version: 9.21.260

NXP S32G/S32R45x: Cold Start with Cortex-M7 and A53 core

In this topic:

Requirements

Configuration

 

 

Introduction

This topic describes how to start debugging the Cortex-M7 or Cortex-A53 cores on S32G2/3 and S32R45x MCU via winIDEA initialization files if no valid boot image is found.

 

On NXP microcontroller only Hardware Security Engine (HSE) starts to run after reset.

It reads boot image either from QSPI flash or SD card and starts either the Cortex-M7 or the Cortex-A53 core. If no valid image is found, no core is started. All cores remain in reset and the device enters Serial Boot mode allowing the code to be loaded to RAM via CAN or UART interface.

 

BlueBox debugger can override Serial Boot mode and through a Cold Start procedure gains access to RAM too. Using winIDEA initialization files, a small program with endless loop is written to RAM and then the M7 / A-53 core is released from reset. Initialization files use AXI access type since standard Virtual Memory area access is not functioning due to the M7 / A-53 core being in reset.

 

 

Requirements

winIDEA 9.17.158 or newer

BlueBox iC5700 or iC5000

ARM HSSTP II Active Probe or 10-pin CoreSight Debug Adapter or 20-pin CoreSight Debug Adapter

 

 

Configuration

Boot image is available

If the boot image is available HSE initializes only the part of RAM where the code image is loaded. If you want to load code to another part of RAM, the RAM Initialization script must be specified, so that the debugger can load the code anywhere in RAM.

number1

Create a new workspace via File | Workspace | New Workspace and select your device.

 

number2

Open Hardware | CPU Options | Reset and configure:

a.select Stop and preset as RESET method.

b.define Post RESET delay - HSE must have enough time to read the boot image and start the application core.

c.make sure Initialization before Programming | Connect is Default.

d.specify the RAM initialization script under Initialization before Programming | Initialize.

 

number3

Perform:

Reset - HSE boots the application from SD Card / QSPI Flash, and no other part of RAM will be initialized. After reset, HSE core is the only core which is running. It reads the boot image, copies the code image to RAM and starts the core responsible for running the application.

Download - Resets the target, initialize the RAM (because of the specified script) and HSE boots the application from SD Card / QSPI flash, the entire RAM will be initialized (so if we specified any program files they can and will be downloaded at this point).

 

cold-start-g-r-2

 

Boot image is not available (perform Cold start or run a core with winIDEA)

If the boot image is not available, or is invalid, HSE will not start any of the application cores. All the application cores remain in reset. To be able to debug such a target, winIDEA can start one of the application cores. That is done by the Cold Start script, which writes an endless loop to RAM and starts the specified core. The RAM location where this loop is written can be specified as a script parameter. The RAM initialization script in this case is not necessary, because RAM is first initialized by the Cold Start script.

 

number1

Create a new workspace via File | Workspace | New Workspace and select your device.

 

number2

Open Hardware | CPU Options | Reset and make sure:

Boot core is the core you want to cold start from

Latch target RESET in the RESET pin section in unchecked

Stop and Preset in the RESET method drop-down menu is selected

 

number3

Make sure the Cold Start script is added to Initialization before programming | Connect (as a Custom script via the arrow button).

 

Number4

Specify the core that you want to start, and the start address where the code is loaded as the script parameters via the arrow button | Parameters for the script.

 

s32r-coldstart

 

 

More resources

Initialization sequence

Adding a custom script

Reset page

Copyright © 2024 TASKING