DBGEMLIB

Detailed Description

Debug (DBG) Peripheral API.

This module contains functions to control the DBG peripheral of Silicon Labs 32-bit MCUs and SoCs. The Debug Interface is used to program and debug Silicon Labs devices.

Enumerations

enum  DBG_LockMode_TypeDef {
  dbgLockModeAllowErase = 1UL,
  dbgLockModePermanent = 2UL
}
 

Functions

__STATIC_INLINE bool DBG_Connected (void)
 Check if a debugger is connected (and debug session activated).
 
void DBG_DisableDebugAccess (DBG_LockMode_TypeDef lockMode)
 Disable debug access.
 
void DBG_SWOEnable (unsigned int location)
 Enable Serial Wire Output (SWO) pin.
 

Enumeration Type Documentation

Lock modes

Enumerator
dbgLockModeAllowErase 

Lock debug access.

dbgLockModePermanent 

Lock debug access permanently.

Definition at line 59 of file em_dbg.h.

Function Documentation

__STATIC_INLINE bool DBG_Connected ( void  )

Check if a debugger is connected (and debug session activated).

Used to make run-time decisions depending on whether or not a debug session has been active since last reset, i.e., using a debug probe or similar. In some cases, special handling is required in that scenario.

Returns
True if a debug session is active since last reset, otherwise false.

Definition at line 85 of file em_dbg.h.

void DBG_DisableDebugAccess ( DBG_LockMode_TypeDef  lockMode)

Disable debug access.

SE interface is used to disable debug access. By choosing dbgLockModePermanent, debug access is blocked permanently. SE disables the device erase command and thereafter disables debug access.

Parameters
[in]lockModeDebug lock mode to be used.
Warning
If dbgLockModePermanent is chosen as the lock mode, the debug port will be closed permanently and is irreversible.

Definition at line 163 of file em_dbg.c.

References _MSC_LOCK_MASK, dbgLockModeAllowErase, dbgLockModePermanent, MSC, MSC_Deinit(), MSC_Init(), MSC_WriteWord(), SE_debugLockApply(), and SE_deviceEraseDisable().

void DBG_SWOEnable ( unsigned int  location)

Enable Serial Wire Output (SWO) pin.

The SWO pin (sometimes denoted SWV, serial wire viewer) allows for miscellaneous output to be passed from the Cortex-M3 debug trace module to an external debug probe. By default, the debug trace module and pin output may be disabled.

Since the SWO pin is only useful when using a debugger, a suggested use of this function during startup may be:

* if (DBG_Connected())
* {
* DBG_SWOEnable(1);
* }
* 

By checking if the debugger is attached, a setup leading to a higher energy consumption when the debugger is attached can be avoided when not using a debugger.

Another alternative may be to set the debugger tool chain to configure the required setup (similar to the content of this function) by some sort of toolchain scripting during its attach/reset procedure. In that case, the above suggested code for enabling the SWO pin is not required in the application.

Parameters
[in]locationA pin location used for SWO pin on the application in use.

Definition at line 97 of file em_dbg.c.

References CMU_OscillatorEnable(), GPIO_DbgLocationSet(), GPIO_DbgSWOEnable(), GPIO_PinModeSet(), GPIO_SWV_PIN, GPIO_SWV_PORT, and gpioModePushPull.