Coming soon |
1. Introduction
Debug on GPIO allows user to get real time debugging traces of the application. Debug on GPIO is present at any relevant places. It concerns:
- Start/end of interrupt.
- Start/end of each background process.
- To identify specific procedure and state machine.
- Etc.
2. Concepts
The Real Time SW Debug has a two stages pipeline architecture:
- The Local layer:
- First stage, it determines which “local signal” is linked to which “global signal”. The “Local signal association table” is responsible for the match between “local” and “global” signals.
- The Global layer:
- Second stage, it determines which “global signal” is linked to which GPIO pin. The “Global signal association table” is responsible for the match between “global” signals and GPIO Pin.
2.1. Signal selection
Debug signals are divided in different categories regarding the concerned layer:
- System SoC signals (interrupts, system services, …).
- Link Layer signals.
- MAC signals.
- Host stack signals (BLE, Open Thread, Zigbee, Matter).
- Application signals.
As some of these layers are delivered in library format, the debug signal selection cannot be done in the SW component itself.
- Desired signal will be selected in a general configuration file.
- In every SW component that supports RT SW debug, all the local debugging signals are used. Regarding the global signal selection, the global signal is used or not.
2.2. GPIO Configuration
GPIO associated to debug signal should be entirely configurable.
For optimization purposes, there is no dedicated callback for getting the associated GPIO at run time (and no registering). The goal is to reduce code size and processing time (not modify real time on tricky use cases).
3. Interfaces
TBD.
4. How to
TBD.