Using CCS Debug

Table of Contents

Overview

This mode should be used when debugging with CCS is involved and/or developing an mmWave application where the .bin files keep changing constantly and frequent flashing of image onto the board is not desirable. This mode allows you to flash once and then use CCS to download a different image to the device’s RAM on every boot.

0. Requirements

📝 NOTE: The SDK for the XWRL6432 is different from the SDK for the XWR14XX, XWR16XX, XWR18XX and XWR68XX. It is the MMWAVE-L-SDK which enables low power modes.

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
XWRL6432BOOST Hardware Setup of XWRL6432BOOST Low Power EVM’s for Functional 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.

1. Flash the CSS 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
XWRL6432 empty.release.appimage <MMWAVE_SDK5_INSTALL_DIR>\examples\empty\xwrL64xx-evm\m4fss0-0_freertos\ti-arm-clang

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
XWRL6432BOOST Hardware Setup of XWRL6432BOOST Low Power EVM’s for Functional Mode

3. Connect the EVM to CCS using JTAG

3.1 Create Target Configuration File (CCXML)

Creation of the CCXML file is needed for each device type, but only the first time CCS debug mode is used. In subsequent sessions, this step can be skipped and the existing CCXML file can be used directly.

To create the CCXML file:

  1. Launch CCS
  2. If CCS does not already show “Target Configurations” window, go to View → Target Configurations.
  3. This will show the “Target Configurations” window, right click in the window and select “New Target Configuration”
  4. Specify an appropriate file name (ex: IWR68xx.ccxml) for the particular EVM being used and check “Use shared location”. Click Finish.
  5. The configuration editor window will open.
  6. 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.
  7. Press the “Save” button to create and save the target configuration.
  8. [Optional]: Press the “Test Connection” button to check the connection with the board.

3.2 Connect to EVM using Target Configuration File and Load Binaries

Debug binary file extension Connect and load to:
*.xer4f Cortex_R4_0
*.xe674 C674X_0
*.out Coretx_M4_0

📝 NOTE
XWRL6432 Cores
For XWRL6432 devices the Cortex_M3_0 will appear in the debug window. There is no need to connect to the Cortext_M3_0.

📝 NOTE: If the demo has _*.xer4f_ and _*.xe674_ binaries, complete the connect to target and load program steps for each core/binary. If the demo only has a _*.out binary, code only needs to be loaded to the Cortex_M4_0.

3.3 Run

The systems is now setup for CCS debugging.

4 Helpful CCS Debug Tips

4.1 Group the debug cores

By grouping the R4F and DSP cores in CCS debug mode, it allows the user to connect or disconnect, load, and run programs simultaneously.

4.2 Reloading previous program files for faster resets

When debugging, users commonly need to break, check some values, then restart the program to check again without needing to actually re-build the program files. Because the device uses external memory to load the program, this often requires a full device reset using the NRESET button on the EVM itself. This can add time and cause frustration when debugging if the debug session must be relaunched and reloaded with every reset. However there are faster ways to do this.

📝 NOTE: If the target is disconnected or reset while the debug session is still connected, it will often require a full restart of CCS on the PC. It is advised to always disconnect the cores before resetting the EVM.

4.3 Debugging with MMWAVE_L_SDK

The code built for the XWRL6432 devices automatically runs with low power modes enabled. The low power modes do not allow for stepping through the code or setting breakpoints. To use the full debug capabilities of CCS with XWRL6432 code set gDebugTargetCode = 1 in motion_detect.c.

Need More Help?