AMP Debugging
This chapter describes how to start debugging in AMP (Asymmetrical multiprocessing) mode where a separate winIDEA instance is opened for each core.
When a microcontroller features two or more cores, each core is debugged in an individual winIDEA instance. The application code for non-primary core is loaded by the primary winIDEA instance/workspace, which downloads the application code in the MCU internal program flash. Program flash is shared amongst all cores available. Non-primary core winIDEA instance requires to download only symbols for the specific core being debugged. When the microcontroller is released from the reset state, all cores are stopped at start point. All non-primary cores are started by the primary core application code.
Configure the first Application via Wizard. |
Add and configure the second Application via Debug / Session configuration / Application. |
Give the application a meaningful name, specify the Architecture and Symbol file in the Symbol Files.
![]() |
Define Memory Spaces for both Applications via Debug / Session configuration / SoCs / Memory Spaces. |
Make sure the correct Application is selected in the Application drop-down.
![]() |
Application App_CPU1 is running in the AMP1 group (CPU0, CPU1, CPU2) with its own Memory Space MS1.
Application App_CPU2 is running in the AMP2 group (CPU3, CPU4, CPU4) with its own Memory Space MS2.
![]()
|
Perform Reset / Download. |
Begin a Debug session in the primary winIDEA instance via:
Download (this step will also Program the SoC). |
|
Load Symbols Only |
|
Reset |
|
Attach |
Open the secondary winIDEA instance via Debug / Core / <core>. |
![]() |
Connect to the primary winIDEA instance via Debug / Connect. |
![]() |
View Core state via View / Debug / Session Explorer. |
You can inspect the state of every observed core to which winIDEA has debug access via Session Explorer.