Multi-Memory Space Session Overview
The Multi-Memory Space concept in winIDEA describes how Applications, Memory Spaces, and Processes are configured within a Debug Session.
Complex SoCs can contain many cores and run different types of embedded software. Embedded software is not limited to a single Application running on a core. It can also include a hypervisor that creates and runs multiple virtual machines with operating systems, which in turn can run multiple embedded Applications.
Depending on the complexity of the embedded software and the target SoC, debugging use cases can span from a single Application running on a single core to one or more Applications running on multiple cores.
An Application defines the software being debugged, while a Memory Space defines where and in which target context it executes. Together, they identify a Process.
An Application is compiled and linked from source files. The result is one or more executables containing the program code, data, and optionally symbolic debug information.
On a simple system only a single instance of one Application will execute. In a rich OS environment, many applications can run simultaneously, even multiple instances of the same Application.
Application configuration contains Symbol File(s), Operating System (optional) and other miscellaneous settings (e.g. Stack Usage). Each Application has its Symbol File that enables debugging activities, such as setting a breakpoint or stepping through the code.
A Memory Space is assigned to a **core or an SMP group**. Within it, virtual (core) memory accesses are separated from other Memory Spaces by hardware logic. In each Memory Space, one Application is executing.
If a core supports multiple protection levels or execution contexts, a Memory Space can additionally specify the context in which the Application executes.
A Process*represents an Application running in a designated Memory Space.
Each Process is identified by a Process URL, which consists of:
•Application name, and
•Memory Space name.
For example, an Application named App running in the MCU/CPU0 Memory Space has the Process URL: App/MCU/CPU0.
Program Files*are files whose content is stored into the target system at session start. Typical formats include Motorola S, Binary, and ELF files.
The content of Program Files is transferred to target RAM or memory-mapped Flash.
Program Files are configured as part of the SoC configuration.
Symbol Files contain symbolic debug information used by winIDEA to provide high-level debug functionality. Usually, this is a single ELF file.
Symbol Files are configured as part of the Application configuration.