Configure SWO in Embedded Studio
SEGGER Embedded Studio can use SWO for printf Output to the Debug Terminal and for code profiling and execution trace. This article describes the configuration of a project in Embedded Studio to enable SWO.
The setup guide will be based on the following hardware and software components:
- J-Link Software Package V6.18c or later
- Embedded Studio V3.26a or later
- SEGGER emPower evaluation board
- Any J-Link/J-Trace hardware
- Physically connected SWO pin to debug interface
- Open your project in Embedded Studio
- In the Project Explorer select the project and go to Project-> Edit Options...
- Go to Debug -> Target Trace
- Select SWO as Trace Interface Type
- Enter the Trace Clock Speed: The trace clock speed is usually the target CPU speed while the application is running.
- Enter the SWO Baud Rate: The SWO baud rate (or SWO speed) needs to match the trace clock speed and the used J-Link.
- Click OK
- Start a debug session
- Open the Execution Profile Window (View -> More Debug Windows -> Execution Profile)
- Open the Execution Trace Window (View -> More Debug Windows -> Execution Trace)
A basic ES project for the emPower board with all settings applied can be found here: emPower_ES_SWO.zip
Calculating the SWO speed
The supported SWO speeds depend on the connected emulator. They can be retrieved from the emulator. To get the supported SWO speeds for your emulator, use J-Link Commander, connect to your target and execute the command "SWOSpeed" without quotations. The listed speeds can be set as SWO baud rate.
Target specific SWO pin init
Some target devices require target specific SWO pin initialization. This has to be ensured by the user either by enabling the SWO pin in the target application, or via an Embedded Studio script or a JLinkScript. More information can be found here.
- The Terminal I/O windows are still not showing any information even after following the setup guide step by step.
- Make sure the SWO pin is actually connected to your J-Link debug hardware, many J-Link OBs for example do not have SWO routed to them.
- Check if the selected target device is correct.
- I want to use SWO and JTAG simultaniously, how can i do that?
- This is not possible as the TDO (JTAG) signal is sharing the same pin as SWO. To be able to use SWO a SWD debug connection is required.
- I can't start a debug session
- Is the target device powered properly? You can open the J-Link Commander to see what voltage is currently showing as VTREF in the console output. Is that value expected?
If there are still issues persisting, please get in touch with SEGGER directly via our support system: https://www.segger.com/ticket/.