When transitioning from older winIDEA versions to the latest (9.21 and above), you may encounter challenges due to significant changes in configuration and debugging processes. This how-to provides an overview of the migration process, highlighting recommended steps.
The most significant changes are:
You can find a more detailed description in the topic Session Configuration.
Although automatic workspace conversion works in most cases. winIDEA updates and inadvertent corruption of some global files (or the workspace files) may cause some unexpected behavior.
1. Close all winIDEA versions.
2. Open Windows Explorer, type in %appdata%, and hit Enter. Navigate to the folders listed below and delete the contents:
3. Download the latest winIDEA build.
4. Create a new workspace.
Make sure to tick the Take me there after wizard checkbox, so you can configure the advanced settings as well.
You should create all the different applications to be debugged (e.g. if some application cores are running an OS, we will have one application for that, if the cores are running different applications we should define a separate application for each core, for example, App_HSM is a separate application running only in the HSM memory space).
1. Open Debug | Configure Session | Switch to Full | Applications | Application and determine a suitable name for the application(s).
2. On the Symbol Files page, define the files that contain the debug symbols for the debugged application.
If there are multiple symbol files (e.g. bootloader and application) you can specify which symbol file should be the default file for debugging. For each file, we can specify additional options (depending on the file format).
3. (optional) Correctly locate the source files for debugging via the Directories page.
You can use these options in case you want to do source-level debugging, set breakpoints in .c files, etc., and where the application is built on a different PC from where it is debugged. Refer to Locating the source code for more information.
4. (optional) On the OS page, specify OS awareness and configure the necessary ORTI or profiler.xml files.
The wizard creates the default configuration when you create a new workspace. The SoC dialog via Debug | Configure Session | Switch to Full | SoCs allows you to configure advanced options manually.
1. Select the SoC (named MCU by default) and click Edit.
2. On the SoC page specify the SoC name, the device, and the Probe being used for debugging.
Leaving the field empty defaults to the System.
3. Define operations on the debug session startup on the Startup page.
For example:
4. (optional) Configure the Lockstep page.
If you have any cores running in lockstep (this mostly pertains to Cortex-A clusters where lockstep is configurable. If the SoC features a non-configurable lockstep configuration it should not be specified here).
5. (optional) On the SMP page, specify SMP bindings.
This is intended in use cases where multiple cores execute the same application (such as an OS). Depending on the application, we can select multiple bindings, and assign different cores to them.
6. Define Memory spaces.
A Memory Space is assigned to a core or an SMP binding. Within it, virtual (core) memory accesses are separated from other memory spaces by hardware logic. In each memory space, one application is executed. For example, if two applications are defined, App and App_HSM, you need two memory spaces to assign these applications to.
Note that, if a memory space is disabled (unchecked) it means we will not be able to debug the application assigned to it (no debug symbols will be loaded for that application).
7. On the Program Files page specify all the program files which have the actual code you want to program to the target's memory.
winIDEA will combine these files in a single image (while checking for overlap) and program the target with this image. For each file, you can define different options (offset, override file format, etc.)
8. (optional) Add files on the Target Files page you want to download during an active debug session.
Regular Download implies a reset and a new debug session.
The option Diff Config to Clipboard can help you identify all configurations under the Hardware menu.
1. Navigate to Hardware | CPU Options.
2. On the Reset page specify what happens when a Reset occurs.
For example, whether it is triggered by the debugger or externally but still visible on the reset line.
For more details on how the debug session initialization is executed (e.g. what is done before Programming, the start of a debug session, or before attaching to a running target) please refer to the Initialization Sequence topic.
3. On the Debugging page, you can turn on the global flag for core synchronization.
After you can select for each core whether it should be synchronized or not), define whether/how to use the Image Checker etc.
4. On the Hardware page, define IO voltage levels.
5. On the JTAG | Nexus pages configure the signal properties for the debug/trace port.
6. On the Analyzer page, configure the on-chip trace module.
7. On the SoC Advanced page, configure SoC-specifics.
8. Configure the SoC page.
For example, specify whether a Low-power debug mode is required (as it requires some special handling).
9. On the Cores: <coreID> page, set the core-specific option for each of the cores featured on the SoC.
The most important options are: