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.

[参考译文] RTOS/MSP432P401R:计时器周期问题

Guru**** 2609285 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/643722/rtos-msp432p401r-timer-period-issue

部件号:MSP432P401R

工具/软件:TI-RTOS

您好,

定期回调模式下的计时器的执行速度不会超过9-10 us周期。 这是一个RTOS问题,涉及庞大的代码还是线程问题? MCU在48 MHz MCLK,24 MHz SMCLK (功率曲线3)下工作。  

问题通过简单链接SDK ( 用于MSP432P401R演示板的简单链接)中的计时器闪烁LED演示轻松演示,为WFP 3.0 重新配置LED GPIO引脚,直接端口写入加速(P3OUT = 0x01,P3OUT = 0x00),计时器周期为1 (US)。

计时器由SMCLK计时为24 MHz,SMCLK通过将WFP 7.0 转接至范围进行验证。 我应该能够在1 MHz时轻松地生成回调,但不管计时器(32位,A)的回调速度如何,都不会超过9-10 us。 我是否必须放弃RTOS才能获得足够的执行速度?还是其他问题? 回调用于对预期应用中的多路复用采样电路进行计时,但目前仅使用一个WFP 3.0 直接端口开/关写入进行测试。

感谢您的帮助,

乔纳森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    乔纳森
    我认为这一定是RTOS中某个位置的默认设置的限制。 我能够验证您在那个时间错误的示例上的结果。 我将与我们的RTOS支持人员联系,了解可以更改哪些其他设置以获得比您观察到的更频繁的回拨。
    此致,
    Bob L.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    乔纳森
    另一件事。 假设MCLK以48MHz运行,则中断/回调之间只剩下很少的周期。 对于您尝试做的事情,您是否根据所涉及的指令的周期计数验证了您没有遇到限制? 您是否能够在没有RTOS的情况下运行类似的示例来验证您是否不受CPU限制?
    此致,
    Bob
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob,您好!  

    我能够运行非RTOS,并获得高达10 MHz的周期。 根据我所能得到的信息,要么是RTOS中的明显延迟导致100 kHz计时,要么是RTOS中的计时器设置被设为默认值。 由于RTOS中GPIO写入的延迟似乎约为2 Us,我猜这两者的组合。 我认为RTOS不能用于使用外围设备的任何中等性能操作。 如果单次操作的最大执行率为100 kHz,则使用引脚写入时,您将以30 kHz的操作速率或约为系统时钟速率的1/4800的速率进行查看。 我本来真的希望利用RTOS的便携性,但它似乎浪费了太多性能,这是不可行的。 我绝对不需要GHz执行速率处理器来运行1 MS/s系统。

    最佳,

    乔纳森

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

    乔纳森

     来自RTOS团队的反馈与您的假设相符。 也就是说,对于48MHz的部件,寄存器保存并发送到ISR,加上ISR的返回,可能需要执行足够的指令,将GPIO切换的最大执行率降低到10us。 我们运行的计时基准显示调度器在进入时需要122个周期,在退出时需要223个周期。  在48MHz的频率下进行计算(345个周期)可以得出~7.2uS的硬地板。 所以,您的10个用户处于预期范围内。

    我们在每个内核发行版中都提供了基准性能测试,您可以通过单击 SimpleLink MSP432P4内核发行说明中的“Timing and Size benchmarks”(计时和大小基准性能测试)来找到这些基准性能测试。  在该基准文件中,查找MSP432P401器件并单击"times"(时间),将显示 此基准文件。

    表中要查看的相关行包括:

    基准 周期
    HWI调度程序提示 122.
    HWI调度器脱毛提示 223.

    添加这两个值将使我们达到上述345个周期。 基于这些基准,您似乎已经看到TI-RTOS中的最高性能。 如果您想以更高的速率切换,则必须使用非RTOS方法。

    另一个选项(带RTOS)

    有一种“零延迟”方法,您可以将ISR优先级设置为最高优先级,ISR将采取不需要操作系统干预的短路径。

    ISR无法进行任何操作系统调用。  但是,它可以触发可以使用操作系统的辅助中断(可能是频率较低或特殊情况)。

    您可以在 此处的BIOS文档中找到"Zero Latency Interrupts"(零延迟中断)的说明。

    此致,

     Bob L.