ZHCAFG3 December   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2C28x、C29x 与 ARM 日志记录
  6. 3SysConfig
    1. 3.1 开始或停止记录
    2. 3.2 捕获模式
    3. 3.3 用于传输日志的触发器
  7. 4解读 DLT 日志
  8. 5编译器内在函数
  9. 6DLT 工具
    1. 6.1 可视化
    2. 6.2 工具操作说明
    3. 6.3 将日志添加到应用程序
    4. 6.4 导出 DLT 日志
    5. 6.5 CCS Theia
  10. 7总结
  11. 8参考资料

CCS Theia

所有这一切的最后一步是添加编译后处理步骤以生成我们的 GUI。要启用 GUI 支持,请转到“项目属性”->“通用”->“变量”,然后添加两个分别名为 DLT_SUPPORT 和 GUI_SUPPORT 的变量。将值设置为 1。

 用户定义的变量图 6-14 用户定义的变量

需要执行此步骤才能生成 GUI,请复制并粘贴以下编译后处理步骤。

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

注: 这适用于 CPU1_RAM 配置,如果将用于闪存,请在第一个编译后命令中将 CPU1_RAM 更新为 CPU1_FLASH 文件夹。

添加这些编译后处理步骤后,继续操作并编译项目。当项目构建完成,可以查看 GUI 后,转到“视图”->“重新加载窗口”。窗口完成重新加载后,转到“视图”->“插件”->“gui_app”。显示的名称取决于 MCU 任务控制模块下 GUI 项目名称 中提供的名称。

 CCS Theia 插件图 6-15 CCS Theia 插件

称为 DLT 的 GUI 选项卡,所有 DLT 内容都位于该选项卡中。此表和图表显示了应用于源代码的所有标签标记和变量。如果在源代码中添加了更多内在函数,则需要重构项目,并且需要重新打开 GUI。

 CCS Theia 中的基本 GUI图 6-16 CCS Theia 中的基本 GUI

转到 选项→串口设置... 来选择正确的 COM 端口。

 串行端口配置图 6-17 串行端口配置

必须选择正确的 COM 端口才能使 GUI 正常工作。

连接至器件并将程序加载到器件中,图形会填充数据。

 最终输出 GUI Composer图 6-18 最终输出 GUI Composer

显示的列是转换后的 DLT 包日志。绝对时间是转换为毫秒的 IPC 计时器值。相对时间始终相对于上一个代码标记或 DLTAG。标签 列是传递到 __builtin_c29_datalog_tag 编译器内在函数中的值。这是一种跟踪应用程序代码的方法。函数列告知作为数据日志的变量来自哪个函数。数据类型 列是指源代码中变量的数据类型。变量 列是指所记录数据的变量。寄存器 列是在应用程序代码中到达日志时变量的值。其他列会被最小化,因为这些列与溢出以及日志是代码标记还是变量日志有关。

表 6-1 DLT GUI
绝对时间 相对时间 TAG 功能 数据类型 变量 寄存器 计时器 1 OVF 计时器 2 OVF 代码标记还是变量日志?
IPC 计时器的绝对时间 代码标记或 DLTAG 之间的相对时间 在 _builtin_c29_datalog_tag 中使用的标签值 源代码中使用 DLT 的源文件信息和函数名称 变量的数据类型(即 float、int、uint 等) 在传入 __builtin_c29_datalog_write 的应用程序代码中使用的变量名 所记录的变量的寄存器值 如果 OVF 为 1,则发生了溢出 如果 OVF 为 1,则发生了溢出 0 - 变量日志 1 - 代码标记