Changes

Jump to: navigation, search
Introduction
==Introduction==
This Application Note (AN) is associated with [https://www.dave.eu/en/news-and-media/news/multicore-debug-and-trace-su-nxp-imx8 this webinar] organized by [https://www.lauterbach.com www.lauterbach.it Lauterbach Italy], [https://www.dave.eu DAVE Embedded Systems], and [https://www.nxp.com NXP] in May 2021.
The webinar showed advanced techniques used to debug, trace, and energy profile the code executed by the NXP i.MX8M SoC powering the [[MITO_8M_SOM|Mito8M system-on-module (SoM)]] with the aid of Lauterbach tools. Basically, the hardware platforms used for this demonstration consists of the [[MITO_8M_SOM/MITO_8M_Evaluation_Kit|MITO 8M Evaluation Kit]]. This kit comprises three different boards:* The SoM* The [[:Category:SBC-AXEL|SBCX carrier board]]* An adapter board.In this regard, it is worth remembering that Mito8M SoM '''is electrically and mechanically compatible with i.MX6-based [[AXEL_Lite_SOM|AxelLite SoM]]'''. Therefore, '''Mito8M can be mated with the SBCX carrier board directly'''. Nevertheless, to fully leverage all the functionalities it provides, an adapter board is required. Namely, the adapter board allows to access physical interfaces that are used for the purposes here discussed.
For what regards the software configurationSpecifically, this article deals with JTAG debugging, which is a typical Linux SMP setup was usedstop-mode technique. SpecificallyUnlike run/mode debuggers such as GDB, this means that the debugger stops the processor, for example, to execute the kernel TBD was utilized in tandem with code step-by-step or when it hits a root file system built breakpoint. Another fundamental characteristic of this mode is that the processor cooperates with Yocto TBDthe debugger for controlling the execution of the code and for accessing internal resources (CPU registers, RAM/flash mempries, on-chip periperal registers, etc.). For more details on JTAG debugging, please refer to [https://www2.lauterbach.com/pdf/training_jtag.pdf this document].
Tracing is en extremely powerful technique that comes to help not only to "enhance" the debugging. It is also an outstanding troubleshooting weapon and allows advanced measurements, profiling, and specific software-related testing like code coverage. You can think about it as a sort of "movie" that is shot in real-time and in a non-intrusive fashion while the processor is running. Later on, it allows engineers to scrutinize all the processor's activity around specific events that occurred in the past. For instance, this is astonishingly useful for analyzing errors, bugs, or other situations that do not allow to stop the processor. With respect to tracing, three different strategies are here illustrated:
* Onchip trace
* Offchip trace via Trace Port Interface Unit (TPIU)
* Offchip trace via PCIe.
In this AN, tracing will be also used to show how to carry out energy profiling in order to correlate the power consumption with the execution of the code.
 
The hardware platforms used for this demonstration basically consists of the [[MITO_8M_SOM/MITO_8M_Evaluation_Kit|MITO 8M Evaluation Kit]]. This kit comprises three different boards:
* The SoM
* The [[:Category:SBC-AXEL|SBCX carrier board]]
* An adapter board.
It is also worth remembering that Mito8M SoM '''is electrically and mechanically compatible with i.MX6-based [[AXEL_Lite_SOM|AxelLite SoM]]'''. Therefore, '''Mito8M can be mated with the SBCX carrier board directly'''. Nevertheless, to fully leverage all the functionalities it provides, an adapter board is required. Namely, the adapter board allows to access physical interfaces that are used for the purposes here discussed.
 
Regarding the software configuration, a typical Linux SMP setup was used. Specifically, the kernel TBD was utilized in tandem with a root file system built with Yocto TBD.
==The debugging/tracing/energy profiling tools==
4,650
edits

Navigation menu