SWO Debug

Description

Serial Wire Output Debug Configuration.

Initializes Serial Wire Output using the DWT and ITM peripherals of Cortex-M processors. Configures output of Program Counter samples, interrupt events, and data over any ITM channel.

Functions

sl_status_t sl_debug_swo_init (void)
 Initialize SWO Debug.
 
sl_status_t sl_debug_swo_enable_itm (uint32_t channel)
 Enable an ITM channel.
 
sl_status_t sl_debug_swo_disable_itm (uint32_t channel)
 Disable an ITM channel.
 
sl_status_t sl_debug_swo_write (uint32_t channel, uint8_t c)
 Write a byte to an ITM channel.
 

Function Documentation

◆ sl_debug_swo_init()

sl_status_t sl_debug_swo_init ( void  )

Initialize SWO Debug.

Initializes SWO debug using configuration parameters for frequency, as well as whether PC sample events and interrupt events should be emitted.

Note
This function does not enable any software stimulus ports in the ITM. This can be done by calling sl_debug_swo_enable_itm or by using sl_debug_swo_write which enables the necessary ports automatically.
Returns
Status code
Return values
SL_STATUS_OKSWO initialized successfully

◆ sl_debug_swo_enable_itm()

sl_status_t sl_debug_swo_enable_itm ( uint32_t  channel)

Enable an ITM channel.

Enables the given ITM channel in the Trace Enable Register.

Parameters
[in]channelITM channel number
Returns
Status code
Return values
SL_STATUS_OKITM channel enabled successfully

◆ sl_debug_swo_disable_itm()

sl_status_t sl_debug_swo_disable_itm ( uint32_t  channel)

Disable an ITM channel.

Disables the given ITM channel in the Trace Enable Register.

Parameters
[in]channelITM channel number
Returns
Status code
Return values
SL_STATUS_OKITM channel disabled successfully

◆ sl_debug_swo_write()

sl_status_t sl_debug_swo_write ( uint32_t  channel,
uint8_t 
)

Write a byte to an ITM channel.

Writes the given byte to the given ITM channel

Note
This function ensures that the ITM channel is enabled, and enables it if it wasn't already.
Parameters
[in]channelITM channel number
[in]cByte to send
Returns
Status code
Return values
SL_STATUS_OKByte sent successfully
SL_STATUS_NOT_INITIALIZEDITM has not been enabled, call sl_debug_swo_init first.