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.

[参考译文] CCS/TMS320F28335:SYS/BIOS v6_76_01_12:以前工作的 DSP/BIOS 项目在转换为 SYS/BIOS 后不工作、即任务未被定期调用。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/918142/ccs-tms320f28335-sys-bios-v6_76_01_12-previously-working-dsp-bios-project-not-working-after-conversion-to-sys-bios-i-e-tasks-not-being-called-periodically

器件型号:TMS320F28335

工具/软件:Code Composer Studio

您好!

将 DSP/BIOS v5.42.0.07项目转换为 SYS/BIOS v6.76.01.12项目(和 XDCTools v3.60.2.34)后、不再定期调用任务。  所有任务都被调用一次,但它们的 Task_sleep()函数永远不会返回。

下面是附加 SYS/BIOS 配置文件(app.cfg)和 BIOS 设置的屏幕截图。 我已更改任务函数名称以将其保留为私有。   

DSP/BIOS 项目不设置一个时钟来调用 Clock_tick ()。  对于 SYS/BIOS、我在设置时钟时尝试过它、但两者都具有相同的结果。

DSP/BIOS 不需要 Clock_tick()的任何时钟配置是否有原因?   

要使 SYS/BIOS 项目正常工作、我需要做什么?  

斯蒂芬

DSP/BIOS 配置文件:

e2e.ti.com/.../cfg.txt

SYS/BIOS 配置文件:

e2e.ti.com/.../4774.app.cfg

SYS/BIOS 配置屏幕:

   

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

    您好、Steve、

    我希望时钟工作不正常。 因此时钟节拍没有提前。 您能否查看 ROV->Clock->Module 以查看您是否看到刻度上升。 此外,您还可以执行 BIOS -> Scan for Errors (扫描错误),以查看是否有堆栈被损坏或其他损坏。

    Todd

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

    您好 Steven、

    当计时器周期计时过快或过慢导致 CPU 无法保持运行或计时器永远不会超时时时时、就会发生这种情况。

    也许您可以在.cfg 文件中使用 Boot.pllOSCLK 设置。

    此外、这可能是冗余的、但是否有理由将 BIOS.cpufreq.hi 设置为2288? lo 值看起来是正确的(在150MHz 时)、但.hi 应该为零。

    Kevin

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

    "此外、这可能是冗余的、但 BIOS.cpufreq.hi 设置为2288是否有原因? lo 值看起来是正确的(在150MHz 时)、但.hi 应该为零。"

    AF 首先、我认为 hi 为零是导致问题的原因、因此我改变了 hi 和 low。 150、000、000 =  0x8F0D180且0x08F0 = 2288、因此我将 HI 更改为2288。 我曾想过将低电平更改为 53632 (= 0xD180)、但它看起来没有变化。  在我发现这可能不是问题后、我尝试将其改回、但由于某种原因、GUI 不允许我更改它。 为什么 GUI 允许您更改高低值? 此外、BIOS.cpufreq 的用途是什么?

    "也许您可以在.cfg 文件中使用 Boot.pllOSCLK 设置。"

    我会尝试、但我很确定这些设置是正确的。  这些是代码中 PLL 配置中使用的设置。

    TMS320F28335中只有三个硬件计时器、为什么有0到7个计时器 ID?  此外、什么是时钟实例设置?

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

    cpufreq 是以 Hz 为单位的 CPU 频率、因此150、000、000看起来是正确的。

    cpufreq.hi 应用于超过4字节表示的 CPU 频率、因此在您的情况下、它应该是不相关的。

    不管怎样、计时器模块似乎忽略了.hi 值:

    从 Timer_setPeriodMicroSecs()中摘录:

       Timer_getFreq (obj、&freqHz);

       /* Timer_getFreq()返回 BIOS.cpuFrequency */

       freqKHz = freqHz.lo / 1000;

    您还应该尝试上面提到的 Todd。

    Kevin