Debugging With CCS 20
Table of Contents
Overview
CCS 20 is the new integrated development environment (IDE) that is now available to use to assist in developing with TI microcontrollers and processors. The latest release of CCS 20 includes support for mmWave radar devices and includes a variety of new features to improve the development process. One improved feature is a revamped debugging flow that is integrated into CCS 20. Debug mode should be used when developing a mmWave application, so that breakpoints can be set in addition to not having to flash a new .bin/.appimage with every change. This mode allows you to flash once and then use CCS to download a different image to the device’s RAM on every boot. This user guide will walk through all the requirements and steps to be able to debug the latest devices for mmWave radar.
NOTE: For guidance on how to debug using previous versions of CCS, please refer to the Using CCS Debug guide
Requirements
- PC with:
- Recommended OS: Windows 10 or 11
- Code Composer Studio (version as specified in demo User’s Guide; for xWRLx432 and xWRL6844, CCS 20.0.0 or later is required)
- mmWave SDK installed (version as specified in demo User’s Guide; for xWRLx432, MMWAVE-L-SDK5; for xWRL6844, MMWAVE-L-SDK6)
📝 NOTE: The SDK for the xWRLx432 and xWRL6844 is different from the SDK for the xWR14xx, xWR16xx, xWR18xx and xWR68xx. It is the MMWAVE-L-SDK which enables support for the low power device family, designated via the “L” in the device name.
| EVM | Guide |
|---|---|
| xWR6843ISK, xWR6843ODS, or xWR6843AOPEVM (All require MMWAVEICBOOST Carrier Board) | Hardware Setup for Flashing in MMWAVEICBOOST Mode |
| xWR1443BOOST, xWR1642BOOST, or xWR1843BOOST | Hardware Setup of xWRxxxxBOOST for Flashing Mode |
| xWRLx432BOOST or IWRL6432AOP | Hardware Setup of Low Power EVMs for Flashing Mode |
| xWRL6844EVM | Hardware Setup of xWRL68xx EVMs for Flashing Mode |
📝 NOTE: The xWR6843ISK, xWR6843ODS, xWR6843AOPEVM cannot be used in standalone mode for CCS debug mode. The MMWAVEICBOOST carrier board must be used to connect to the PC with the onboard XDS110.
Procedure
Debugging xWRLx432 and IWRL6432AOP
For xWRLx432 and IWRL6432AOP, no specific debug firmware needs to be flashed to debug. Follow the steps below to start debugging xWRLx432 projects using CCS 20.
1. Set the device into functional mode
- Please refer to the EVM Operational Setup Guide for steps on setting the device into functional mode
2. Import the desired project into CCS 20
Click on File > Import Project and browse for the project you want to import
Browse and choose the desired project and hit finish to import the project
3. Start Debugging
- Right click on the project and select the “Debug Project” option or select the project and press F5
4. If the project was cleaned or imported, it will build the project and then start the debug session
There will be debug output as a result of the GEL script that executes to reset the front-end of the device
Once the debug session starts, the program will highlight the first line of executable code and pause the execution. You can now set break points and monitor expressions in the various tabs available in the debug window.
NOTE: After each debug session, please make sure to reset the device either via power-cycle or by pressing the reset button on the device
Debugging Generation 1 Devices and xWRL6844
📝 xWRL6844 Only
The complete debugging process and additional CCS20 tips can be found in the mmWave L-SDK6 User Guide, Code Composer Studio (CCS) Setup and Usage Guide.
1. Flash the CCS Debug Firmware using Uniflash
The debug binary is provided in the mmWave SDK. Flash the appropriate binary according to the instructions for using UniFlash
| Device | BIN Name | Location |
|---|---|---|
| xWR14xx | xwr14xx_ccsdebug.bin | <MMWAVE_SDK3_INSTALL_DIR>\packages\ti\utils\ccsdebug |
| xWR16xx | xwr16xx_ccsdebug.bin | <MMWAVE_SDK3_INSTALL_DIR>\packages\ti\utils\ccsdebug |
| xWR18xx | xwr18xx_ccsdebug.bin | <MMWAVE_SDK3_INSTALL_DIR>\packages\ti\utils\ccsdebug |
| xWR68xx or xWR68xx AOP | xwr68xx_ccsdebug.bin | <MMWAVE_SDK3_INSTALL_DIR>\packages\ti\utils\ccsdebug |
| xWRL6844 | empty_system.release.appimage | <MMWAVE_LSDK6_INSTALL_DIR>\examples\empty\xwrL684x-evm\system_freertos |
2. Setup the EVM for Functional Mode
Put the EVM in functional mode.
| EVM | Guide |
|---|---|
| xWR6843ISK, xWR6843ODS, or xWR6843AOPEVM + MMWAVEICBOOST Carrier Board | Hardware Setup of MMWAVEICBOOST + Antenna Module for Functional Mode |
| xWR1443BOOST, xWR1642BOOST, or xWR1843BOOST | Hardware Setup of IWRxxxxBOOST for Functional Mode |
| xWRL6844EVM | Hardware Setup of xWRL68xx EVMs for Flashing Mode |
3. Connect the EVM to CCS using JTAG
3.1 Create Target Configuration File (CCXML)
The first time CCS debug mode is run for each device, a CCXML file must be created. After the first debug session, this step can be skipped and the existing CCXML file can be used.
To create the CCXML file:
- Launch CCS 20
- Navigate to the debug view and look for the Target Configuration.
- This will show the “Target Configurations” window, click the + button in the window
- Specify an appropriate file name (ex: IWR68xx.ccxml) for the particular EVM being used and check “Use shared location”. Click OK.
- The configuration editor window will open.
- In the window, select Texas Instruments XDS110 USB Debug Probe for Connection and select the appropriate mmWave device in the Board or Device text box.
- Save the target configuration.
3.2 Connect to EVM using Target Configuration File and Load Binaries
If needed, open the target configuration window by going to the debug window and look for the target configuration tab.
Under Target Configuration, the target configuration file previously created should appear.
Right click on the target configuration and select Start Project-less Debug. The target configuration will launch in the Debug Window and show all cores present on the device. The following images may vary slightly depending on device type.
The necessary core(s) to connect to will depend on what is utilized by the demo code. This can be determined by examining which debug binaries are provided by the demo. The table below maps the file to the appropriate core. The demo may use only one or both.
| Debug binary file extension | Connect and load to: |
|---|---|
| *.xer4f | Cortex_R4_0 (Gen 1) |
| *.xe674 | C674X_0 (Gen 1) |
| *.out - commonly found under DSS project | Cortex_R5_0 (xWRL6844) |
| *.out - commonly found under MSS project | C66X_DSP (xWRL6844) |
- For each necessary core (Cortex_R4_0 and C674X_0 or Cortex_R5_0 and C66x_DSP), right click on the target core and select Connect Target. An example is shown below. When connected, the message “(Disconnected: Unknown)” changes to “(HALTED)”.
🛑 xWRL6844 Only
After connecting to the target core, reset the core prior to loading any programs by right-clicking the target core and selecting “Reset > CPU Reset”.
- For each debug binary, click on the appropriate core so that it is highlighted then click the Run Dialog Box -> Load -> Load Program button.
In the Load Program dialog, press the Browse button. Select the debug binary listed in the demo user’s guide, ensuring that the correct file is used for the core as listed in the table above.
Press Ok until you have returned to the debug window. The program will now load.
📝 NOTE: If the demo has separate ARM and DSP binaries, complete the connect to target and load program steps for each core/binary.
3.3 Running A Program
For each core a binary was loaded to, select the core so that it is highlighted then press the Run/Resume button
The program should start executing and generate console output.
The system is now setup for CCS debugging.
Need More Help?
- Learn about Radar fundamentals and types of data available using modules found in our Radar Academy
- Search for your issue or post a new question on the mmWave E2E forum