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.

[参考译文] TMS320F2.8069万M:printf()使用CCS调试器打印换行符需要20毫秒

Guru**** 2540720 points
Other Parts Discussed in Thread: DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/620616/tms320f28069m-printf-takes-20ms-to-print-a-newline-character-with-ccs-debugger

部件号:TMS320F2.8069万M
主题中讨论的其他部件:DRV8301

您好,

我正在将DRV8301套件与Piccolo MCU一起使用,并且正在测试将数据发送到CCS中的控制台视图的“printf()”功能。

我已经做了几次测试,看看打印信件需要多少钱。 printf()从主循环每秒执行一次,并使用CPU_TIME模块获取传递的周期数。

我注意到打印换行符("/n")大约需要200万个tick,在90 MHz CPU频率下大约相当于20毫秒! 这是不可接受的时间。 相比之下,回车符("\r\n")字符仅需400刻度。

我已通过循环打印f ("\n")50次并在之后切换LED来确认结果-实际上,LED每秒闪烁一次。

有趣的是,调试器完成后,计时似乎正常。

因此,问题是-这是否正常,是否有办法绕过这一问题? 我曾考虑使用"\r\n"代替,但在代码中仍需要至少一个"\n"(否则,该函数将不会打印)。

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

    你好,Jakub,

    请参阅以下主题。  正如Richard提到的那样,改用SCI/UART是一种相对常见的替代方法。
    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/601591</s>60.1591万

    请注意,如果您的目标只是在代码运行时实时查看变量的值,则可以在CCS中使用实时模式和表达式(或监视)窗口。
    http://processors.wiki.ti.com/index.php/Real-Time_Mode
    https://www.youtube.com/watch?v=gVDRo9 m -4ng (特别是8:30左右的区域)

    希望这能有所帮助!


    谢谢!
    Brett

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

    谢谢,这是一大帮上忙的信息。

    我知道我可以在CCS中查看变量,但我需要一些人机界面来在程序运行时显示信息(最好是在没有CCS的情况下)。 我无法使用其他UART端口,因为我在设计中使用了所有这些端口...

    如果我使用"printf"在某些外部终端上显示信息(例如, Tera-Term)是否未连接CCS调试器? 我想的是 :http://processors.wiki.ti.com/index.php/Using_the_serial_adapter_of_XDS100 

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

    你好,Jakub,

    我对Tera-Term的各种选项了解不够,但我认为您无法利用它来利用JTAG接口。 大多数终端程序使用UART连接。  即使您这样做了,我的理解是使用printf总是会导致问题。

    我强烈建议您使用一些未使用的外设来实现所需的人与人之间的联系。  如果您没有在F2.8069万M设备上使用本机USB外设,这可能是一个不错的选择。  另一个选择是CAN。


    谢谢!
    Brett

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

    您好,

    通过使用XDS100,我想到了可用作UART的适配器端口B。 尽管现在我担心它可能只是简单地重定向两个SCI端口中的一个(我还没有离开)...


    也许我会将i2c总线与一些i2c到USB转换器一起使用。 是否存在我会发现类似问题(或其他延迟)的风险?

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

    你好,Jakub,

    您关于FTDI芯片的端口B将使用SCI端口的结论是正确的。

    I2C是一个相对较慢的接口,因此我建议根据您对人机接口所需的数据速率来测量它。  但是,利用任何外围设备都不会停止C28x (如printf)。  对于I2C和许多外设,您的驱动器可能相对较轻-这意味着您可以节省用于控制电机或您正在控制的任何设备的周期。


    谢谢!
    Brett