STM32CubeWBA: Real Time Debug

Revision as of 10:09, 16 February 2024 by Registered User (→‎RTDebug general overview)


Under construction.png Coming soon

1. Introduction

The STM32CubeWBA firmware provides Real Time debug capabilities. The RTDebug module is GPIO based for a minimal impact on real time timings. The module is present, by default, into the application framework.

While enabling the RTDebug module in the application, the user can choose, among a various list of signals, the ones it wants to monitor and which GPIO is assigned for output.

Some default configuration are also presents and ease debugging System, BLE, MAC or Coexistance behaviors.

2. Concepts

2.1. RTDebug general overview

The main objectives of the RTDebug system module is to provide a GPIO probing solution:

  • With accurate timings.
  • That is not disturbing real time nor modifying critical executions.
  • Easy to configure (debug signal selection and GPIO assignation).
  • With low footprint, both memory and execution time.

Regarding these objectives, the RTDebug module is configured at compile time. Only the necessary code is compiled, according to the user configuration.

The debug signals are present, by default, in the system framework (modules and interfaces) and the Link Layer libraries (BLE, 802.15.4 and concurrent modes). If those signals are always present, the effective use is conditioned to the user configuration.

  • If the signal is selected, it will trigger the associated GPIO.
  • If the signal is not selected at compile time, it will not trigger any GPIO.

2.2. Debug tables mechanism

As the RTDebug module configuration is done at compile time, we need to map only chosen debug signals to selected GPIOs. This operation is done with debug tables. They are constructed at compiled time, regarding the user configuration of the RTDebug module.

2.2.1. Local debug tables

If debug signals are always present in WBA SW modules / Link Layer libraries, we need a mechanism to handled unselected signals, while having an optimized execution time. This is done through local debug tables.

2.2.2. Global debug table

2.3. RTDebug module configuration

2.4. Default GPIO assignation

3. Interfaces

TBD.

4. How to

TBD.