This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP-CC1352P7:如何使用 ITM 驱动程序进行日志记录? (到 ITM 后端的直接读取/写入访问)

Guru**** 1818760 points
Other Parts Discussed in Thread: SEGGER, SYSCONFIG, CC1352P7
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1420692/lp-cc1352p7-how-to-use-the-itm-driver-for-logging-direct-read-write-access-to-the-itm-backend

器件型号:LP-CC1352P7
主题中讨论的其他器件:SEGGERSysConfigCC1352P7

工具与软件:

我正在尝试检查 ITM 后端以进行日志记录。 我在 TI-RTOS 示例路径中构建了以下应用程序、它是 empty.c 的修改版本。

//========================================================
#include <unistd.h>
#include <stdint.h>
#include <stddef.h>
#include <ti/drivers/GPIO.h>
#include "ti_drivers_config.h"
#include <ti/drivers/ITM.h>
//========================================================
bool _itm_cfg_err;
#define RESET_FRAME_PORT (0)
#define DUMMYMSG_TO_SEND      (0xBBBBBBBB)
//========================================================
void *mainThread(void *arg0)
{
    // Initializing the GPIO driver:
    GPIO_init();

    // Configuring an LED GPIO pin:
    GPIO_setConfig(CONFIG_GPIO_LED_0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);

    // Configuring the ITM port:
    _itm_cfg_err = ITM_open();
    if (_itm_cfg_err){
        GPIO_write(CONFIG_GPIO_LED_0, CONFIG_GPIO_LED_ON);
    }

    while(1){

        ITM_send32Atomic(RESET_FRAME_PORT, DUMMYMSG_TO_SEND);
        GPIO_toggle(CONFIG_GPIO_LED_0);
        sleep(1);

    }

    return 0;
}


使用 Launchpad 上的 SWO 跳线并重新进入电路板后、我打开终端并在 Launchpad 的调试端口(通过 xds110连接的串行 USB 端口)上创建筛选会话。 然而,我看不到任何东西被打印在筛查会话。

我尝试了 SEGGER SWO 查看器、但出于某种原因、它无法使用波特率和时钟设置来配置查看器。

我想知道您是否能告诉我我还需要做些什么才能使这个简单的应用程序正常工作。

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Omid:

    我认为 ITM 输出默认情况下可能会使用 UART 帧格式(如 SysConfig 中所示):

    如果您改为"曼彻斯特"、我认为 SEGGER SWO 查看器可能会起作用。

    否则、您也可以降低波特率(可选)、并在标准串行终端中打开 ITM 格式的消息。 在这种情况下、请务必使用 XDS110类辅助数据端口。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的答复、但您能否给我一个简短的分步说明、说明我要做的确切操作。

    我 在使用 DAP 和非 UART 支持的调试和日志记录方面几乎没有任何经验。  


    另外、我还找到了此文档  https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_swo_trace_ccsv9.html
    但在调试的角度看、CSS 中找不到"Code Analysis"菜单。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Omid:

    然后,如果你真的想得到一个真正的日志记录框架,工作在 ITM 上,我建议你看看我们的日志框架: https://dev.ti.com/tirex/explore/node?node=A__AAhvXDhU3Cf1AuGXo5LyOw__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST

    上面的链接是一个示例的链接。 如果您需要更多的分步说明、还可以在 SDK 中的以下位置找到分步说明:\tools\log\tiutils

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢亚瑟的建议,但我已经知道这个选择。 问题在于、此日志记录框架需要与我感兴趣的应用程序(例如 Wireshark 和 python 脚本)过于依赖。 我想直接访问后端并直接查看日志。 我正在寻找一种直接查看日志的方式。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我明白了、

    在这种情况下、我将找到一种使其与您现有的 J-Link 工具配合使用的方法。 我今天会再次向您介绍这方面的内容。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Omid:

    似乎比我想象的要困难、当不使用 UART 格式或我们的工具时。 请给我更多的时间来解决这个问题。

    至少、我已经确认 SWO 不能与 Segger J-Link 配合使用(需要通过 SWD 接口调试)。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Omid:

    我最终找到了一种使用 CCS 实现它的方法。 它主要是,如果完全,基于以下指令: https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_swo_trace.html#cc26xx-and-cc13xx

    1. 加载" itmwrite "示例。 双击打开 SysConfig itmwrite.syscfg .
    2. 在 SysConfig 中、单击" ITM "、在" TI 驱动程序 "。 按如下方式编辑"TPIU Serial Format"和"SWO Pin"字段、以便将 ITM 消息路由到 TDO 头:

      1. "TPIU 串行格式":曼彻斯特
      2. "SWO 引脚":DIO16/32 (之前可能已将其设置为 DIO18)

    3. 现在、在 targetConfigs/CC1352P7.ccxml 下、检查 XDS-110是否设置为"TDO"、用于辅助 COM 端口连接。
    4. 启动调试会话。
    5. 当器件暂停(由于主断点)时、导航至"Tools"->"Code Analysis"->"Event Analysis":
    6. 如下所示配置事件分析(XDS110引脚设置为 TDO、通道设置为程序中配置的值)


      按"OK"。
    7. 您现在应该有希望看到您的消息出现。

    如果您需要其他信息、请告诉我。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Arthur、  

    对不起,我还没有试过这个。 这就是为什么我还没有接受这个答案。  
    我将在本周某个时间检查该主题、并更新该主题。
    谢谢。