SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:
Location : OpenSTM32 Community Site » Documentation » System Workbench for STM32 » User Guide » Debugging a project Debugging a project

Debugging a project

The debug is displayed into the “Debug perspective”. This page consists on a command toolbar and views related to the debug features.

Debugging commands

  • Instruction step mode
    • To go through the code step by step. In Disassembly view, the step by step mode is attach to the assembler code.

  • Skip all breakpoints
    • To disable all the breakpoint previously set.

  • Step over
    • To step over (without entering) the next function at the currently executing line code (while you are in suspended mode).

  • Step into
    • To step into the next function at the currently executing line code (while you are in suspended mode).

  • Resume
    • To resume the execution of the currently suspended debug target.

  • Suspend
    • To halt the execution of the currently selected thread in the debug target. In suspended mode, you can examine the stack frames.

  • Terminate
    • To terminate the selected debug target.

  • Disconnect
    • To terminate the connection between the debugger and the remote debug target.

  • Remove
    • To remove the selected debug target (if the target is terminated).

Debugging views

  • Debug

The Debug View allows you to manage the debugging or running of a program in the workbench. It displays the stack frame for the suspended threads for each target you are debugging. Each thread in your program appears as a node in the tree. It displays the process for each target you are running.

  • Console

The Console View displays a variety of console types depending on the type of development and the current set of user settings.

  • Breakpoints

The Breakpoints view lists all the enabled or disabled breakpoints and show the location in the source code.

  • Disassembly

The Disassembly view shows the loaded program as assembler instructions mixed with source code for comparison. The currently executing line is indicated by an arrow marker and highlighted in the view. You can do the following tasks in the Disassembly view:
- Set breakpoints at the start of any assembler instruction
- Enable and disable breakpoints and their set their properties
- Step through the disassembly instructions of your program
- Jump to specific instructions in the program

  • Variables

The Variables View displays information about the variables associated with the stack frame selected in the Debug View. When debugging a C/C++ program, variables can be selected to have more detailed information be displayed in the Detail Pane.

  • Registers

The Registers view of the Debug perspective lists information about the registers in a selected stack frame. Values that have changed are highlighted in the Registers view when your program stops.

  • I/O Registers

The I/O Registers view of the Debug perspective lists information about the target peripherals registers. To visualize the registers value, double-click on it. The registers in read mode are enlighten in green.

  • Memory

The Memory view of the Debug perspective lets you monitor and modify your process memory. The process memory is presented as a list of so called memory monitors. Each monitor represents a section of memory specified by its location called base address. Each memory monitor can be displayed in different predefined data formats - memory renderings. The debugger supports five rendering types - hexadecimal (default), ASCII, signed integer and unsigned integer. The default rendering is displayed automatically on the monitor creation.