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.

[参考译文] MSP430FR5964:CCS 中支持 printf 的交错 UART 用法

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1120670/msp430fr5964-interleaving-uart-usage-with-printf-support-in-ccs

器件型号:MSP430FR5964

我一直在使用基于 printf 的跟踪来尝试解决一些 MSP430代码问题。 除非逻辑也恰好使用 UART、否则这是正常工作的、这对某些函数是如此。  

用于将 printf 等控制台写入返回到 CCS 控制台的机制有点不透明、但我们知道这是使用某种 UART 来生成通过 JTAG 传输的串行流。 我猜测 控制台写入和逻辑本身的 UART 使用在某种程度上存在冲突。

抱歉、如果这是一个愚蠢的问题、但我正在努力弄清楚这是如何工作的、可以在哪里/如何配置它(如果我甚至在正确的轨道上!)

 控制台写入命令是物理 UART、还是在软件中完成? 如果它确实使用物理 UART、则可以配置所使用的器件。 关于可能导致这些问题的任何其他想法。

感谢您的任何见解- Andrew (CCS 11.2.0、GNU 工具链)

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

    我应该补充 的是、printf 工作正常-它是来自逻辑其余部分的 UART 流量、实际上已损坏。

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

    尊敬的 Andrew:

    我必须研究 UART 和 printf()/console 之间的关系,但我们可以研究 UART 的一些损坏。

    1. 如何处理 UART、是通过 ISR 还是轮询来处理?
    2. UART 是否正确地发送和接收数据以及数据字节是否不正常?
    3. 您能否在单步执行过程中显示 UART 寄存器? 这也可用于检查 printf 是否正在使用 UART。

    此致、

    Luke

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

    您好、Luke、

    我在这里没有太多的事情要做,我最初的问题是基于一个随意的关联。 我越来越不相信它是真实的!

    我听从了您的建议、在打印完成之前和之后映射了我正在使用的器件的所有 USCI 寄存器、一切都是相同的。 这表示它们未连接。

    我开始仔细研究正在发生的情况、我怀疑这与时间有关。 由于最初的问题也与 ISR 代码有关、需要了解导致它的一些历史记录、因此我将基于 printf 的跟踪放入了其 ISR 逻辑中(我很清楚这不是理想的...)。 我怀疑所发生的情况是、这已经足够延迟了 USCI 的 ISR 以导致溢出(并且发现了一个明确的错误、其中 未正确捕获和报告此错误)。

    对此、我有更多的工作要做、首先要确保 USCI 的错误处理是可靠的。

    现在、我将关闭这个问题、因为我认为原始的问题是不相关的。 仍然想知道控制台打印魔术的工作原理、但我认为它没有连接!

    感谢 Andrew 的帮助