SPRADN5 December   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2C28x vs C29x vs ARM Logging
  6. 3SysConfig
    1. 3.1 Start or Stop Logging
    2. 3.2 Capture Modes
    3. 3.3 Trigger for transferring Logs
  7. 4Interpreting DLT Logs
  8. 5Compiler Intrinsic
  9. 6DLT Tool
    1. 6.1 Visualization
    2. 6.2 Walkthrough on Tool
    3. 6.3 Add Logs to Application
    4. 6.4 Export DLT Log
    5. 6.5 CCS Theia
  10. 7Summary
  11. 8References

CCS Theia

The final step in all this is going to be adding the post build step to generate our GUI. To enable the GUI support, go to Project Properties -> General -> Variables and add two variables called DLT_SUPPORT and GUI_SUPPORT. Set the values to 1.

 User Defined Variables Figure 6-14 User Defined Variables

This step is required to generate the GUI, please copy and paste the following post build steps.

if ${DLT_SUPPORT} == 1 ${NODE_TOOL} ${BuildDirectory}\syscfg\dlt\generate_assoc_table_v1.01.00.js "${CG_TOOL_ROOT}/bin/c29clang.exe -Xclang -ast-dump=json" "-c -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/driverlib" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/bitfields" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/examples/device_support/include" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/rtlibs/dcl" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/rtlibs/dsp/fpu/fpu32/fft" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/rtlibs/iqmath" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/kernel/freertos/Source/include" -I"${COM_TI_MCU_SDK_F29H85X_INSTALL_DIR}/source/kernel/freertos/Source/portable/CCS/C2000_C29x" -I"${PROJECT_ROOT}/" -I"${CG_TOOL_INCLUDE_PATH}" -I"${PROJECT_ROOT}/CPU1_RAM/syscfg" -I"${CG_TOOL_INCLUDE_PATH}" -DDEBUG -g"

if ${GUI_SUPPORT} == 1 ${BuildDirectory}\syscfg\gui_setup.bat

Note: This is for CPU1_RAM configuration, if using for FLASH, update CPU1_RAM to be the CPU1_FLASH folder in the first post build command.

After adding these post build steps, go ahead and build the project. Once the project finishes building to view the GUI, go to View -> Reload Window. Once the window finishes reloading, go to View -> Plug-Ins -> gui_app. The name that appears depends on the name provided in the Gui Project Name, under the MCU Mission Control module.

 CCS Theia Plugins Figure 6-15 CCS Theia Plugins

The GUI a tab called DLT, where all DLT content goes to. The table and graph shows case all tag markers and variables that were applied to the source code. If more intrinsics are added in the source code, the project needs to be rebuilt and the GUI needs to be reopened.

 Base GUI in CCS Theia Figure 6-16 Base GUI in CCS Theia

Select the correct COM Port by going to Options → Serial Port Settings....

 Serial Port Configuration Figure 6-17 Serial Port Configuration

The correct COM port must be selected for the GUI to function properly.

Connect to the device and load the program to the device and the graph fills with data.

 Final Output GUI Composer Figure 6-18 Final Output GUI Composer

The columns that are shown are the translated DLT package logs. Absolute time is the IPC timer value converted to milliseconds. Relative time is always relative to a previous code marker or DLTAG. The TAG column is the value that was passed into the __builtin_c29_datalog_tag compiler intrinsic. This serves as a way to trace the application code. The function column informs what function the variable being data log is sourced from. The datatype column refers to the data type of the variable from the source code. The variable column refers to the variable being data logged. The Reg column is the value of the variable at the time the log was reached in the application code. There are additional columns that are minimized as the columns are related to overflow and whether the log was a code marker or variable log.

Table 6-1 DLT GUI
Absolute Time Relative Time TAG Function Datatype Variable Reg Timer 1 OVF Timer 2 OVF Code marker or variable log?
Absolute time of IPC timer Relative time between code markers or DLTAGs TAG value used in __builtin_c29_datalog_tag Source file information and function name used in source code where DLT is used Data type of variable (i.e. float, int, uint etc) Variable name used in application code passed into __builtin_c29_datalog_write Register value of the variable being logged If OVF is 1, then an overflow occurred If OVF is 1, then an overflow occurred 0 - Variable Log 1- Code Marker