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/TMS320C5534:在 C55x 上使用 PRD

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/673169/rtos-tms320c5534-using-prd-on-c55x

器件型号:TMS320C5534

工具/软件:TI-RTOS

您好!

我尝试使用 PRD 功能来触发我的设计上的周期性事件(心跳 LED)。

虽然我很确定我做的一切都好、但 PRD 未触发、我的处理程序也未被调用。

我还注意到、如果我让我的应用程序运行10秒、似乎没有与默认1ms 速率匹配的内核节拍数。

但是,我了解到,DSP/BIOS 系统时钟默认启用,每1ms 触发一次...

是否有一个工作示例(比重排更复杂)

谢谢、

Jacques

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

    我已通知软件团队。 他们将直接在此处发布反馈。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    经过多次试验、我成功地解决了这个问题。
    首先、由于某种原因、时钟节拍似乎未正确定义、因此我添加了
    BIOS.clk.microseconds = 1000;
    在.tcf 中。 之前、我还调整了平台定义(.TCI)、将频率更改为我正在使用的频率(稍微低一点)、以便 DSP/BIOS 正确设置 Timer0分频器。

    然后、我声明了我的 PRD、所以他会直接调用 SEM_POST 来执行正确的任务、而不是使用执行相同操作的中间 PRD Swi。 出于某种原因,后者只能工作一次.

    prdClock0 = BIOS.PRD.create ("prdClock");
    prdClock0.period = 1000;// 1000US * 1000 = 1s
    prdClock0.mode ="连续";
    prdClock0["fxn"]= prog.extern ("SEM_POST");
    prdClock0.arg0 = prog.extern ("HK_Sema");

    我有一项香港(客房服务)的工作有待完成 它工作得非常完美。
    此外,我不得不提高这项客房服务任务的优先级(我首先将其设置为一个非常低的优先级),否则,它从未被安排过..

    Jacques