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/TMS320C6748:启用安全功能的 TMS320C6748可以#39;t 根据函数 BIOS_getCpuFreq 更改 CPU 频率。

Guru**** 2589265 points
Other Parts Discussed in Thread: SYSBIOS, TMS320C6748, OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/583396/rtos-tms320c6748-secure-enabled-tms320c6748-could-t-change-cpu-frequency-according-to-the-function-bios_getcpufreq

器件型号:TMS320C6748
Thread 中讨论的其他部件:SYSBIOSOMAP-L138

工具/软件:TI-RTOS

 大家好、我正在使用启用安全功能的 TMS320C6748。 SYSBIOS 为 6_42_01_20。

似乎启用安全功能的 TMS320C6748无法 根据函数 BIOS_getCpuFreq 更改 CPU 频率。

这是我的配置。

主函数如下所示。

这是有关设置 CPU 频率的 API。

我尝试添加 这些行

Hwi_disable()
BIOS_setCpuFreq (&freq);
Clock_tickStop ();
Clock_tickReconfig();
Clock_tickStart ();
Hwi_restore () 

它仍然不起作用。事实上,配置是在 main 函数中完成的,无需这样做。

此外、我在这里发现了一个奇怪的东西。

我无法根据上述步骤更改 CPU 频率、我们都知道、如果启用安全功能的 C6748想要解锁 JTAG、
 通过 UART 需要一个小型程序。 然后,我发现当前程序继承了使用的小型程序的 CPU 频率
解锁 JTAG。 当我更改小型程序(不是基于 SYSBIOS)中的频率时、当前程序会同时更改。

现在、我不想通过函数更改频率
DEVICE_PLL0Init (uint8 clk_src、uint8 pllm、uint8 prediv、uint8 postdiv、uint8 div1、uint8 Div3、uint8 div7)

那么、我应该怎么做来更改 CPU 频率呢?


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

    BIOS_setCpuFreq (&freq);



    Clock_tickReconfig();

    这些故障是否再次发生?

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

    是的,我尝试了几次。

     Clock_tickreconfig()的返回值 为 true (1)。  

    函数 BIOS_setCpuFreq (&freq)的返回值 为 void、因此 它没有返回值。

    现在、我根据一个小型程序 led.bin 解锁 JTAG、并且 led 程序的 CPU 频率为24M、我尝试将 CPU 频率更改为300m、但失败了。

    在调试窗口中,当程序通过 Clock_tickReconfig()进行切换时,PLLM 寄存器没有改变;  

    那么、您能否确认已启用安全功能的 C6748支持 BIOS_setCpuFreq 和 Clock_recickreconfig()更改 CPU 频率?

    顺便说一下、我能否通过 OMAP-L138_generic_secure.ini?更改 CPU 频率

    现在,在.ini 文件中,我将 PLLM 设置为1(24M),如果我想将 CPU 更改为300m,只需更改 PLL0参数而不更改其他参数,UART 启动将导致失败,可能是 因为波特率为't 115200。

    这是我 的 OMAP-L138_generic_secure.ini、我应该怎么做?

    e2e.ti.com/.../6740.OMAP_2D00_L138_5F00_generic_5F00_secure.ini

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

    [引用]函数 BIOS_setCpuFreq (&freq)的返回值 为 void,因此 它没有返回值。

    确实是这样。

    我根据您之前的帖子写下的内容:

    [引用]这是有关设置 CPU 频率的 API。[/引用]

    我想您发布了不同 API 的屏幕截图。

    您能否将应用程序改回使用 BIOS API 调用(在 main()中)来更改频率? (BIOS_setCpuFreq ()、Clock_tickReconfig()等)?


    然后构建/重新加载您的应用程序并运行至 main()。  [请确保在调用以更改 main 中的频率之前暂停应用程序]。

    一旦你到达上面的断点、打开 ROV tcols (CCS 工具菜单-> ROV)。  您能否检查 BIOS 模块的频率值?

     

    你看到什么?

    现在、单步执行、直到您通过更改频率的所有代码。  ROV 中的值是否发生变化?


    最后、短暂运行该应用程序、然后将其停止。  再次检查 ROV。  频率显示什么?

     

    Steve

     

     

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