Skip to content

Debugging

Debugging helper functions.

The functions provided in the debugging group are meant to enable and disable certain debug outputs at runtime. As a developer you should make sure to disable any debug options in release code since it can significantly slow down execution and also increase RAM and Flash usage.

Functions Overview

Name
voidosSetDebugFlags(osDebugFlags_t flags)
Enable certain debugging behaviour.
voidosClearDebugFlags(osDebugFlags_t flags)
Disable certain debugging behaviour.
intosDebuggerAttached(void )
Query the presence of a debugging probe (JTAG/SWD)

Defines

Name
OS_DBGFLAG_HALT_ON_ERRstop the system on any fault or assertion
OS_DBGFLAG_MEMORYperiodically print the available heap memory
OS_DBGFLAG_CPU_LOADperiodically print all tasks and their cpu usage
OS_DBGFLAG_WATCHDOGdebug watchdog and halt on "bite"

Function Details

function osSetDebugFlags

cpp
void osSetDebugFlags(
    osDebugFlags_t flags
)

Enable certain debugging behaviour.

Parameters:

  • flags or'ed flags to enable

function osClearDebugFlags

cpp
void osClearDebugFlags(
    osDebugFlags_t flags
)

Disable certain debugging behaviour.

Parameters:

  • flags or'ed flags to disable

function osDebuggerAttached

cpp
int osDebuggerAttached(
    void 
)

Query the presence of a debugging probe (JTAG/SWD)

Return: 1 if a debugger is attached, 0 if not. In case of Cortex-M0/M0+ the function returns 1 for debug builds at any given time.

Be aware, that Cortex-M0 and -M0+ dont't support querying for a debugger. Also, once a debugger was attached to the system, simply detaching it won't make the function return 0. The state of "no debugger attached" will only be restored by a "cold" reboot / power-on reset.

Macros Documentation

define OS_DBGFLAG_HALT_ON_ERR

cpp
#define OS_DBGFLAG_HALT_ON_ERR (0x00000001U)

stop the system on any fault or assertion

define OS_DBGFLAG_MEMORY

cpp
#define OS_DBGFLAG_MEMORY (0x00000002U)

periodically print the available heap memory

define OS_DBGFLAG_CPU_LOAD

cpp
#define OS_DBGFLAG_CPU_LOAD (0x00000004U)

periodically print all tasks and their cpu usage

define OS_DBGFLAG_WATCHDOG

cpp
#define OS_DBGFLAG_WATCHDOG (0x00000008U)

debug watchdog and halt on "bite"