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.

[参考译文] TMS320F28388D:SYS/BIOS 使用的 CM 定时器中断

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1122355/tms320f28388d-cm-timer-interrupts-used-by-sys-bios

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

大家好、

我正在处理 CM 上的 SYS/BIOS 应用程序。 在该应用中、我想使用一些定时器中断(TIMER0/1/2或 SysTick)、但是 SYS/BIOS 内核或定时器/时钟模块(使用时)可能已经使用了一个或多个定时器中断。 我如何判断哪些在 SYS/BIOS 中使用、哪些在我的应用中可以自由使用? 每个特定平台的任何地方都记录了这一点吗?

谢谢、此致、
Arjan

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

    它是可配置的-如果你查看时钟和定时器模块设置、你将看到一个"Timer ID"字段、让你选择。

    如果您尚未看到它、 可在此处找到 SYS/BIOS 的 API 文档

    惠特尼

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

    尊敬的惠特尼:

    因此、"Timer id"字段值0/1/2直接指的是 CM 的 TIMER0/1/2外设及其中断?

    在 API 文档中、有一个指向"设计映射"的链接、其中描述了目标定时器实现: 支持的德州仪器器件及其代理

    对于 TMS320F2838X、时钟和计时器模块均参考 ti.sysbios.family.arm.m3/Timer 模块。 其中显示"Cortex M3定时器管理器利用 M3的内部 NVIC SysTick 定时器"。 这意味着 SysTick 计时器中断是唯一用于时钟和计时器功能的计时器外设。
    还是 SysTick 计时器仅用于周期系统计时(用于时钟功能)、Timer0/1/2用于计时器功能? 那么、在Timer_NUM_TIMER_DEVICES这种情况下、我应该设置为3?

    谢谢、
    Arjan

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

    这很奇怪。 我本来希望它将使用'ti.sysbios.family.arm.f2838x.Timer'作为计时器。 您仍可以通过将其直接放入 cfgScript 中来使用它。 类似如下:

    var TimerF2838x = xdc.useModule('ti.sysbios.family.arm.f2838x.Timer');
    
    var timer38xParams = new TimerF2838x.Params();
    var timer38x = TimerF2838x.create(2, "&testTimerFxn", timer38xParams);

    惠特尼

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

    我需要学习如何找到 API 文档,我完全忽略ti.sysbios.family.arm.f2838x了。 很明显,一些外设包含在ti.sysbios.family.arm.f2838x中,有些外设包含在更通用ti.sysbios.family.arm.m3的中。 可能需要更新"支持的德州仪器器件及其代理"页面?

    不管怎样、现在我不需要在我的应用中使用复杂的计时器函数、只需要一些超时检查、我只需使用时钟节拍计数器(Clock_getTicks())即可。 出现需要时,我将尝试您的建议。 ti.sysbios.family.arm.f2838x.Timer

    谢谢、
    Arjan