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.

[参考译文] 编译器/TMS320C6678:DEVSPEED 寄存器和 CPU 时钟速度问题

Guru**** 2614265 points
Other Parts Discussed in Thread: TMS320C6678

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/658292/compiler-tms320c6678-devspeed-register-and-cpu-clock-speed-issue

器件型号:TMS320C6678

工具/软件:TI C/C++编译器

"多核定点和浮点数字信号处理器
TMS320C6678
3.3.21器件速度寄存器(DEVSPEED)
器件速度寄存器描述了器件速度等级。 下面显示了器件速度寄存器。"

大家好、

第一个快速问题。 上述 DEVSPEED 寄存器代表什么? 我可以将其假设为 CPU 时钟速度吗?

 如果是、按 cfg 文件更改 CPU 速率应会对其产生影响。 此假设是否正确?

似乎、更改 BIOS.cpufreq.lo = xx00000000并不真正影响速度速率。  

在 EVM 上以不同的速率运行相同的代码并通过 GPIO/示波 器进行测量、始终需要相同的时间。 这听起来很奇怪。

我想这是由于 EVM 时钟造成的、但我不确定。 此外、我在最终 COTS 板上也有类似的行为:即使我更改速率、我也没有检测到任何时间变化。

 有什么建议?

提前感谢您。

BR、

Giorgio

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    DEVSPEED 寄存器显示了器件的速度等级。 换句话说、它表示器件能够以所示的速度运行。
    要修改器件的速度、必须重新配置其 PLL。 进行此类重新配置的例程可能会读取 DEVSPEED 寄存器、以确保计划的配置不会超过器件功能。
    您可以在 PDK 示例中引用 platform_init(),但请注意代码中包含许多硬编码值,因此无法将频率设置为1GHz 以上。 我们必须遍历源代码并允许修改所有必需的乘法器和除法器、以使我们的器件达到1.2GHz。
    您可能需要在 e2e.ti.com/.../424517上查看速度设置线程。 这是用于您的器件同级的 C6670、因此我几乎确定所有问题都是一样的。 顺便说一下、该线程直到现在才被解析。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,拉吉克

    首先、感谢您回复我。 我对此仍有一些疑问。 我想了解实际 CPU 速度是否与托管 C6678的电路板相关。 在许多论坛中、我发现最高速度已确认为1.4GHz。 因此、我的目的是将速度提高到这个上限、并验证我的运行频率是否确实为1.4GHz。 我使用.cfg 文件来配置器件、此外、我还通过 BIOS API (BIOS_setCpuFreq)设置速度速率。 即使我将其设置为1.4 (并且 Get 函数返回到 ME 1.4)、DEVSPEED 仍为1.25 GHz。

    还有其他建议吗?

    BR、

    Giorgio   

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

    BIOS_setCpuFreq()不会影响与 CPU 频率相关的硬件寄存器。 它告诉内核 CPU 频率是多少。 该调用实际上不会更改频率。 同样,BIOS_getCpuFreq()返回内核认为 CPU 运行频率(通过配置或 BIOS_setCpuFreq)。
    您可以在以下位置找到有关更改 CPU 运行时频率应执行的操作的说明:
    e2e.ti.com/.../419359
    此外、下面链接的系统时钟管理器指南也将对您有用:
    software-dl.ti.com/.../Clock.html

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

    Giorgio、

    您必须清楚地了解、DEVSPEED 是只读寄存器、它仅告知特定器件的最大额定值。 此外、告诉您的 C6678还不够、有3种类型:1GHz、1.25GHz 和1.4GHz。 同样、通过查看 DEVSPEED 寄存器、您可以通过编程方式检测特定的器件速度等级。 当您报告 DEVSPEED 读数为1.25GHz 时、这意味着您的特定器件无法达到1.4GHz。

    TI 支持者已经指出 BIOS_setCpuFreq()并不能真正修改器件的实际频率。 确保 Clock_tickreconfig()也不会。 如果您想更改 DSP 频率、必须重新配置其 PLL。 您可以以 TI\pdk_C6678_1_2_6\packages/ti\platform\evmc6678l\platform_lib\src\platform.c 中的 platform_init ()函数为例。 如果您在 EVM 上执行此操作、则可以在探测点确认与示波器合成的频率。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    感谢您的澄清、但我仍然有点困惑。 根据 TI 的数据、所有 c6678在1.4GHz 时都应"可运行"(例如请参阅此> e2e.ti.com/.../656311)。
    那么、我的问题是:实际的 CPU 速度速率是否是 DEVSPEED 的值? 我可以信任它吗?
    谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很难相信你提到的说法得到了正确的解释,而这种说法似乎是不正确的。
    不知为何器件数据手册不那么清晰、您仍然可以查看数据手册的第9.2条"封装信息"、并在"器件标识"列中找到一个字符串、如1.25GHz、1.4GHz 或无任何内容。 就是这样。 例如、TMS320C6678ACYP 是1GHz 器件、TMS320C6678ACYP25是1.25GHz 器件、而 TMS320C6678ACYP4是1.4GHz 器件、这三种器件属于同一系列、但速度等级不同。 在某种程度上、TI 网站上未清楚显示此信息。
    我想、您应该像我所解释的那样理解 DEVSPEED、即您手中的器件的最大额定值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、我在 e2e.ti.com/.../2410835上找到了您要引用的一个线程。 我仍然认为支持者的想法是另一种。 很明显、C6678有3种速度等级、您可以在 DEVSPEED 寄存器中找到自己的速度等级。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢。 通过这种方式、我报告有关1.4GHz 的链接
    一个示例