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.

[参考译文] CCS/CC1312R:在 UART 模式下使用 LoggerIdle 且 UART 波特率更高的 RTOS 分析器无法正常工作(CCS 10.0.0)

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/897550/ccs-cc1312r-rtos-analyzer-using-loggeridle-in-uart-mode-and-higher-uart-baud-rates-are-not-working-ccs-10-0-0

器件型号:CC1312R

工具/软件:Code Composer Studio

您好!

对于一个项目、我目前正在尝试使 RTOS 分析器正常工作。 我在 UART 模式下使用 LoggerIdle 从嵌入式系统中获取数据。
我使用的是 Code Composer 10.0.0

只要我对与 LoggerIdle 一起使用的 UART 实例使用115200的波特率、一切似乎都正常。 我将数据放入 RTOS 分析器。

当使用执行分析(仅启用任务)并且代码在短时间内在不同任务之间多次跳跃时、LoggerIdle 似乎无法足够快地将记录的数据发送到 UART。 我会得到数据损失。

因此、我想将 UART 的波特率提高到1兆波特。 通过在固件端进行更改以及在 RTOS 分析器配置窗口中更改波特率、我将无法再在 RTOS 分析器中接收有效数据。
当使用1Mbaud 连接串行终端应用时、我可以看到与使用115200波特完全相同的数据流。 固件方面似乎可以正常工作。

当我启动 RTOS 分析器时、会出现配置窗口。

在这方面,我面临两个问题:

  1. 按下"Configure Port"(配置端口)按钮时、不会发生任何情况。 没有对话框打开。
  2. 我在一些很旧的用户指南中看到端口名称的语法应该是 : /8N1、其中8N1表示8个数据位、无半字节、1个停止位。
    但是、如果我使用端口名称"COM8:1000000/8N1"、仍然没有有效数据

如果我现在运行该应用程序、我将不会获得有效数据。

我的问题:

  1. 为什么“配置端口”对话框不打开?
  2. Port Name 语法是否正确?  : /8N1、其中8N1表示8个数据位、无半字节、1个停止位。
  3. 如果语法正确、为什么不使用更高的波特率?

提前感谢您、

Stefan

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

    您好 Stefan、

    我们尚未在更高的速度下测试此项、但我将对此进行尝试。 另一个选项是减少发送的日志记录数量。 您是否在.cfg 文件中启用了 Hwi 和 Swi 日志记录? 这些会生成大量可能会淹没系统的记录。

    您使用的是什么器件和软件?

    Todd

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

    Stefan、

    是否可以附加.cfg 和 UARTUtil 文件?  

    您是否按照我的建议尝试减少日志记录的数量? 此外、在标题中、我看到您正在使用 CC1312R (我之前没看过)。 您使用的是哪个 SDK 版本?

    Todd

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

    您好 Todd、

    我们在 LoggingSetup 中禁用了 HWI 和 SWI。 我附加了 CFG 文件。
    我们使用的是 SDK 版本3.40.0-02、XDC 版本3.61.0.16_CORE。

    我们使用 UART 库进行 UART 通信(而不是 UART2)、并且我们使用了 UART2的 UART 轮询函数(并在需要时进行修改)、以便在空闲任务中通过 UART 发送时无需任何上下文切换即可发送到 UART。 我还附加了 UART 库文件。
    但是如前所述、当我们使用串行终端时、如果我们使用115200或更高的波特率、UART 输出会明显相同。

    谢谢、此致、

    Stefan

    e2e.ti.com/.../ExternalCCU.cfg

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

    您好 Stefan、

    我曾与 CCS 人员交谈过、115200是支持的最大值。

    我看了.cfg 并看到增加了 LoggerIdlear.buffersize 值。 遗憾的是,您也要设置 LoggingSetup 缓冲区大小,以便对 LoggerIdle 值进行超规则。 当设置了任何 LoggingSetup 缓冲区大小时,LoggerIdle 将使用最大大小/(sizeof (int))。 因此、我只需删除 LoggingSetup 大小、甚至可能会将 LoggerIdley.buffersize 增加一位。

    是否禁用了电源策略? 启用时、通过空闲循环的次数会大大减少。  

    您看到的是什么类型的 CPU 负载。 我看到您启用了 Hwi 和 Swi 加载。 虽然这会产生更准确的 CPU 加载值、但由于在每个上下文切换上都进行了获取当前时间戳的调用、因此会产生一些开销。 如果不需要、则可以在运行高 CPU 负载时删除这些日志(从而最大程度地缩短空闲时间、从而减少发送日志记录的机会)。  

    此外、感谢您确认所做的 UART 轮询更改。 我知道你必须改变一些东西才能使它正常工作!

    Todd

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

    您好 Todd、

    感谢您观看本演示。

    关于115200的最大值:这是否在将来的版本中可以更改?

    最好知道 LoggingSetup 缓冲区大小超过了 LoggerIdle 值的规则(我们已经看到无法在 xconf GUI 中设置 LoggerIdle 值,但我们不知道原因)。 我们将尝试删除 LoggingSetup 缓冲区大小并设置 LoggerIdle 值、但对于当前值、我们已经非常接近限制(使用的 RAM 为97%)。 因此、我假设我们没有机会增加这么多。

    是的、我们禁用了电源策略。

    对于 CPU 负载、我们不会看到超过10%的负载。 我们有大约10到12个任务在运行。 没有大量任务使用 CPU、但大多数任务以10Hz 至1Hz 的频率睡眠和唤醒。

    另一个选项可以是:
    如上所述、我们可以通过使用串行终端应用程序以更高的波特率进行记录。 我们还知道、CCS RTOS 分析器提供了打开二进制文件进行分析的选项。 我们尝试打开原始文件、但这不起作用。 是否有办法做到这一点?
    我们将原始文件与 在使用打开的 RTOS 分析器进行调试时创建的 systemAnalyzerData.bin 文件进行了比较、并看到大部分内容是相同的、但 RTOS 分析器似乎会向 它创建的 systemAnalyzerData.bin 文件添加一个标头和一些附加信息。
    如果这种方式能够发挥作用,它将解决我们的全部情况。

    谢谢、此致、
    Stefan

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

    Stefan、

    [引用 user="Stefan Schwarzbach"]关于最大115200的问题:这是不是可以在将来的发行版中更改的内容?

    我不知道目前的计划。 不过、我已经 Ping 了 CCS 团队、让他们知道这个线程。

    请访问 https://processors.wiki.ti.com/index.php/Debugging_Exceptions_With_TI-RTOS。 它展示了如何将日志记录写入闪存、这些记录稍后可以提取为二进制文件并由 CCS 进行处理。 您可能需要动态启用/禁用日志记录。 这将减少记录的数量。 该报告也谈到了这一点。

    Todd

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

    您好 Todd、

    我将尝试看看这是否有用。

    我将在提供反馈后立即报告。

    此致、
    Stefan