Difference between revisions of "STM32MP1 Platform trace and debug environment overview for Android"

[unchecked revision] [quality revision]

The block diagram below shows the STM32MP1 Platform trace and debug environment for Android components and their possible interfaces. Click the block diagram to directly jump to one of the sub-levels listed below:

  • The STM32MPU Embedded Software package (see STM32MPU Embedded Software for Android architecture overview) that includescomprises:
    • The the STM32MPU distribution for Android™, running on the Arm® Cortex®-A , and including:
      • The the OpenSTLinux BSP with:
        • The the boot chain based on TF-A and U-Boot.
        • The the OP-TEE secure OS running on the Arm® Cortex®-A core in Secure mode.
        • The the Linux® kernel running on the Arm® Cortex®-A core in Non-secure mode.
      • The the application frameworks are composed of middleware components relying on the BSP and providing APIs:
        • on the OP-TEE side, APIs to run Trusted Applications (TA) that allow manipulating secrets (not visible from the Linux® and STM32Cube MPU Package).
        • on the Android side, APIs to run applications that typically interact with the user via a display or a touchscreen.
    • The the STM32Cube MPU Package runs on the Arm® Cortex®-M core: like other STM32 microcontrollers, it is based on HAL drivers and middleware components, and . Iit is completed with the coprocessor management.

Click the figure below to directly jump to one of the sub-levels listed above.

  • The STM32MPU peripherals shared between Cortex®-A and Cortex®-M cores (such as GPIO, I2C and SPI).
  • The user interfaces or tools, which allow interacting with different trace and debug Tools, such as:
    • The remote shell using terminal console
    • The Android host tools (such as Android Studio)
    • The debugger tools (such as GDB)
    • The graphical IDE (such as GDBGUI or SystemWorkbench)
  • The trace and debug interfaces or hardware paths that provide access to trace and debug components through:
    • The the network interface (e.g. Ethernet)
    • The the communication port (e.g UART)
    • The the hardware connector interfaces:
      • JTag port
      • Trace port to access ETM, STM, ITM and SWD
      • I/O probes to access HDP
  • The hardware probes (such as ST-Link).


This block diagram also illustrates the Arm® debugging modes:

  • Invasive debug: debug process that allows controlling and monitoring the processor. Most debug features are considered invasive because they enable you to halt the processor and modify its state.
  • Non-invasive debug: debug process that allows monitoring the processor but not controlling it. The embedded trace macrocell (ETM) interface and the performance monitor registers are non-invasive debug features.


Click the figure below to directly jump to the component you want to trace, monitor or debug:

  • Select a hardware component to be redirected to the corresponding hardware board article in order to and check if the hardware connector is supported on your board.
  • By selecting Select a target software component, you will to be be redirected to an article that explains in details how to trace, monitor or debug this the corresponding component.
  • By selecting Select a host software component, you will to be redirected to an article that explains how to use this the corresponding remote tool.


Remote shell Android host tools GDB Category:HW probes Network link OP-TEE Linux applications OP-TEE TF-A U-Boot Linux kernel ComPort connector JTag connector Trace connector IOProbe connector STM32CubeMP1 Package
STM32MP1 Platform trace and debug environment overview for Android...
Template:WarningImageMapOverlay
STM32MP1 Platform trace and debug environment overview legend.png


The block diagram below shows the {{highlight|'''STM32MP1 Platform trace and debug environment for Android'''}} components and their possible interfaces. Click the block diagram to directly jump to one of the sub-levels listed below:

* The '''STM32MPU Embedded Software''' package (see [[STM32MPU Embedded Software for Android architecture overview]]) that includes:
** Thecomprises:
** the '''STM32MPU distribution for Android&trade;''', running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A,  and including:
*** Thethe '''OpenSTLinux BSP''' with:
**** Thethe [[Boot_chains_overview|boot chain]] based on [[TF-A overview|TF-A]] and [[U-Boot overview|U-Boot]].
**** Thethe [[OP-TEE overview|OP-TEE ]] secure OS running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A core in Secure mode.
**** Thethe '''Linux<sup>&reg;</sup> kernel''' running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A core in Non-secure mode.
*** Thethe '''application frameworks''' are composed of middleware components relying on the BSP and providing APIs:
**** on the '''OP-TEE'''  side, :
**** '''OP-TEE''' APIs to run '''Trusted Applications (TA)''' that allow manipulating secrets (not visible from the Linux<sup>&reg;</sup> and STM32Cube MPU Package).
**** on the '''Android''' side,APIs to run '''applications''' that typically interact with the user via a display or a touchscreen.
** Thethe '''STM32Cube MPU Package''' runs on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M core: like other STM32 microcontrollers, it is based on HAL drivers and middleware components, and completed with . Iit is completed with the [[Coprocessor_management_overview|coprocessor management]].<br />
Click the figure below to directly jump to one of the sub-levels listed above.<br />


* The '''STM32MPU peripherals''' shared between Cortex<sup>&reg;</sup>-A and Cortex<sup>&reg;</sup>-M cores (such as GPIO, I2C and SPI).


* The '''user interfaces or tools''', which allow interacting with different trace and debug Tools, such as:
** The '''remote shell''' using terminal console
** The '''Android host tools''' (such as Android Studio)
** The '''debugger tools''' (such as GDB)
** The '''graphical IDE''' (such as GDBGUI or SystemWorkbench)

* The '''trace and debug interfaces or hardware paths''' that provide access to trace and debug components through:
** Thethe '''network''' interface (e.g. Ethernet)
** Thethe '''communication port''' (e.g UART)
** Thethe hardware connector interfaces:
*** '''JTag''' port
*** '''Trace''' port to access ETM, STM, ITM and SWD
*** '''I/O probes''' to access HDP

* The '''hardware probes''' (such as ST-Link).

This block diagram also illustrates the Arm<sup>&reg;</sup> debugging modes:
* '''Invasive debug''': debug process that allows controlling and monitoring the processor. Most debug features are considered invasive because they enable you to halt the processor and modify its state.
* '''Non-invasive debug''': debug process that allows monitoring the processor but not controlling it. The embedded trace macrocell (ETM) interface and the performance monitor registers are non-invasive debug features.

{{highlight|Click the figure below}} to directly jump to the component you want to trace, monitor or debug:
* Select a '''hardware component''' to be redirected to the corresponding hardware board article in order to and check if the hardware connector is supported on your board. <br>

* By selecting Select a '''target software component''', you will be be  to be redirected to an article that explains in details how to trace, monitor or debug this the corresponding component.<br>

* By selecting Select a '''host software component''', you will  to be redirected to an article that explains how to use this the corresponding remote tool.

{{ImageMap|Image: STM32MP1 Platform trace and debug environment overview for Android.png{{!}} thumb{{!}} 800px {{!}} center {{!}} STM32MP1 Platform trace and debug environment overview for Android... <br/> {{WarningImageMapOverlay}}
rect 25 4 207 72 [[How to get Terminal|Remote shell]]
rect 220 4 461 72 [[Android tracing, monitoring and debugging | Android host tools]]
rect 473 4 746 72 [[GDB]]
rect 789 90 1064 160 [[:Category:HW probes]]
rect 594 181 731 248 [[Getting started with ST boards | Network link]]
rect 256 312 386 385 [[OP-TEE - How to debug | OP-TEE]]
rect 661 312 793 385 [[Android tracing, monitoring and debugging| Linux applications]]
rect 256 459 386 531 [[OP-TEE - How to debug | OP-TEE]]
rect 401 459 516 531 [[TF-A - How to debug | TF-A]]
rect 537 459 650 531 [[U-Boot - How to debug | U-Boot]]
rect 661 459 793 531 [[Linux tracing, monitoring and debugging| Linux kernel]]
rect 94 380 229 445 [[Getting started with ST boards | ComPort connector]]
rect 1101 389 1237 459 [[Getting started with ST boards | JTag connector]]
rect 1179 485 1316 554 [[Getting started with ST boards | Trace connector]]
rect 1258 586 1407 656 [[Getting started with ST boards | IOProbe connector]]
rect 800 270 939 559 [[STM32CubeMP1 Package | STM32CubeMP1 Package]]
}}
[[File:STM32MP1 Platform trace and debug environment overview legend.png|center|link=]]
<noinclude>

[[Category:Trace and debug tools|1]]
[[Category:Android]]
{{PublicationRequestId |13245  | 2019-09-12}}</noinclude>
Line 1: Line 1:
The block diagram below shows the {{highlight|'''STM32MP1 Platform trace and debug environment for Android'''}} components and their possible interfaces:
+
The block diagram below shows the {{highlight|'''STM32MP1 Platform trace and debug environment for Android'''}} components and their possible interfaces. Click the block diagram to directly jump to one of the sub-levels listed below:
   
* The '''STM32MPU Embedded Software''' package (see [[STM32MPU Embedded Software for Android architecture overview]]) that includes:
+
* The '''STM32MPU Embedded Software''' package (see [[STM32MPU Embedded Software for Android architecture overview]]) that comprises:
** The '''STM32MPU distribution for Android&trade;''', running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A, including:
+
** the '''STM32MPU distribution for Android&trade;''' running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A and including:
*** The '''OpenSTLinux BSP''' with:
+
*** the '''OpenSTLinux BSP''' with:
**** The [[Boot_chains_overview|boot chain]] based on [[TF-A overview|TF-A]] and [[U-Boot overview|U-Boot]].
+
**** the [[Boot_chains_overview|boot chain]] based on [[TF-A overview|TF-A]] and [[U-Boot overview|U-Boot]].
**** The [[OP-TEE overview|OP-TEE ]] secure OS running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A core in Secure mode.
+
**** the [[OP-TEE overview|OP-TEE ]] secure OS running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A core in Secure mode.
**** The '''Linux<sup>&reg;</sup> kernel''' running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A core in Non-secure mode.
+
**** the '''Linux<sup>&reg;</sup> kernel''' running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A core in Non-secure mode.
*** The '''application frameworks''' are composed of middleware components relying on the BSP and providing APIs:
+
*** the '''application frameworks''' composed of middleware components relying on the BSP and providing:
**** on the '''OP-TEE''' side, to run '''Trusted Applications (TA)''' that allow manipulating secrets (not visible from the Linux<sup>&reg;</sup> and STM32Cube MPU Package).
+
**** '''OP-TEE''' APIs to run '''Trusted Applications (TA)''' that allow manipulating secrets (not visible from the Linux<sup>&reg;</sup> and STM32Cube MPU Package).
**** on the '''Android''' side, to run '''applications''' that typically interact with the user via a display or a touchscreen.
+
**** '''Android''' APIs to run '''applications''' that typically interact with the user via a display or a touchscreen.
** The '''STM32Cube MPU Package''' runs on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M core: like other STM32 microcontrollers, it is based on HAL drivers and middleware components, and completed with [[Coprocessor_management_overview|coprocessor management]].<br />
+
** the '''STM32Cube MPU Package''' runs on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M core: like other STM32 microcontrollers, it is based on HAL drivers and middleware components. Iit is completed with the [[Coprocessor_management_overview|coprocessor management]].<br />
Click the figure below to directly jump to one of the sub-levels listed above.<br />
 
   
* The '''STM32MPU peripherals''' shared between Cortex<sup>&reg;</sup>-A and Cortex<sup>&reg;</sup>-M cores (such as GPIO, I2C and SPI)
+
* The '''STM32MPU peripherals''' shared between Cortex<sup>&reg;</sup>-A and Cortex<sup>&reg;</sup>-M cores (such as GPIO, I2C and SPI).
   
 
* The '''user interfaces or tools''', which allow interacting with different trace and debug Tools, such as:
 
* The '''user interfaces or tools''', which allow interacting with different trace and debug Tools, such as:
Line 22: Line 21:
   
 
* The '''trace and debug interfaces or hardware paths''' that provide access to trace and debug components through:
 
* The '''trace and debug interfaces or hardware paths''' that provide access to trace and debug components through:
** The '''network''' interface (e.g. Ethernet)
+
** the '''network''' interface (e.g. Ethernet)
** The '''communication port''' (e.g UART)
+
** the '''communication port''' (e.g UART)
** The hardware connector interfaces:
+
** the hardware connector interfaces:
 
*** '''JTag''' port
 
*** '''JTag''' port
 
*** '''Trace''' port to access ETM, STM, ITM and SWD
 
*** '''Trace''' port to access ETM, STM, ITM and SWD
 
*** '''I/O probes''' to access HDP
 
*** '''I/O probes''' to access HDP
   
* The '''hardware probes''' such as ST-Link.
+
* The '''hardware probes''' (such as ST-Link).
   
   
Line 38: Line 37:
   
 
{{highlight|Click the figure below}} to directly jump to the component you want to trace, monitor or debug:
 
{{highlight|Click the figure below}} to directly jump to the component you want to trace, monitor or debug:
* Select a '''hardware component''' to be redirected to the corresponding hardware board article in order to check if the hardware connector is supported on your board. <br>
+
* Select a '''hardware component''' to be redirected to the corresponding hardware board article and check if the hardware connector is supported on your board. <br>
* By selecting a '''target software component''', you will be be redirected to an article that explains in details how to trace, monitor or debug this component.<br>
+
* Select a '''target software component''' to be redirected to an article that explains in details how to trace, monitor or debug the corresponding component.<br>
* By selecting a '''host software component''', you will be redirected to an article that explains how to use this remote tool.
+
* Select a '''host software component''' to be redirected to an article that explains how to use the corresponding remote tool.
   
 
{{ImageMap|Image: STM32MP1 Platform trace and debug environment overview for Android.png{{!}} thumb{{!}} 800px {{!}} center {{!}} STM32MP1 Platform trace and debug environment overview for Android... <br/> {{WarningImageMapOverlay}}
 
{{ImageMap|Image: STM32MP1 Platform trace and debug environment overview for Android.png{{!}} thumb{{!}} 800px {{!}} center {{!}} STM32MP1 Platform trace and debug environment overview for Android... <br/> {{WarningImageMapOverlay}}