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.

[参考译文] TMS320F28374S:时间戳零延迟中断

Guru**** 2538930 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1043173/tms320f28374s-timestamping-zero-latency-interrupts

器件型号:TMS320F28374S
Thread 中讨论的其他器件:SYSBIOS

我的团队正在研究在高速零延迟中断之间使用增量时间、以帮助确定系统运行状况、因为这些状态应以定义的速率发生。 我们尝试将系统时钟频率设置为大约1/10000。 我们系统中的其他线程可以使用 SYSBIOS 时间戳模块。 根据我的理解、不建议进行 SYSBIOS API 调用。 考虑到这一点、是否有时间戳零延迟中断的推荐方法? 我们当前的 SYSBIOS 实现利用时钟和 TimestampProvider、因此使用了所有计时器。

计时器0和1 = SYSBIOS 时钟( 具有1ms 节拍周期的 ti.sysbios.KNL.Clock)和 SYSBIOS 时间戳提供器(具有默认设置的 ti.sysbios.family.c28.TimestampProvider)

计时器2 = SYSBIOS

在这种情况下、如何在不导致不稳定的情况下获得系统节拍数? 在零延迟中断中、TimestampProvider API 的使用是否安全? 如果不是、我能否使用与我只希望读取的时间戳提供程序所使用的相同寄存器?  是否有更好/更好的选择?  

也许我们可以考虑使用 driverlib cputimer 而不是 SYSBIOS 时间戳模块。 如果是、如果我们沿着这条路走、我是否需要警惕任何事情?

对 ECAPS 进行评估是否可行?

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

    我认为不调用 SYS/BIOS 函数的注意事项主要适用于可能对调度程序产生影响的函数。 它可能取决于您计划调用的函数,但例如 TimestampProvider_get32(),如果时间戳提供器不共享时钟计时器,则时钟计时器似乎归结为对几个 CPU 计时器寄存器的读取,因此调用时应该非常无害。

    我确实同意用使用 driverlib 驱动程序直接访问 CPU 计时器来替换 TimerstampProvider 也是一个选项。 我希望您也可以找到一种方法来使用 ECAP 计数器或备用 PWM 作为通用计时器。

    惠特尼

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

    谢谢 Whitney。 时间戳在零延迟下工作正常。 我确实发布了一个后续问题。