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.

[参考译文] TMDS64EVM:CPU 频率的动态变化

Guru**** 2485235 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1443557/tmds64evm-dynamic-change-of-cpu-frequency

器件型号:TMDS64EVM

工具与软件:

你(们)好

我非常喜欢为 DCC0外设编写代码、并想通过更改 SYSCLK 频率来对其进行测试。 如果我正确理解了更改频率后、应该触发 ESM 中断。 我曾尝试通过 /sys/devices/system/cpu/cpufreq 尝试尝试使用该方法、但很遗憾、此目录为空。 另外、我通过键入 command 尝试使用 k3conf 工具来执行此操作   k3conf 设置时钟16 6 25000000  但频率与之前相同。 根据文档、选择时钟源  DEV_DCC0_DCC_CLKSRC6_CLK  表示 Main Sysclk0。  如果我理解正确、这个 SYSCLK0是 Linux OS 运行时的 CPU 频率。

root@puma:~#  k3conf 设置时钟16 6 25000000
||---------------------------------------------------------- |
| VERSION INFO |
||---------------------------------------------------------- |
| K3CONF |(版本 v0.1-88-g982f5c2已构建、周一11月4日上午11:02:54 UTC 2024)|
| SoC | AM64x SR2.0 |
| SYSFW | ABI:3.1 (固件版本0x0008 '8.6.4--v08.06.04 (Chill Capybar)')|
||---------------------------------------------------------- |

||----------------------------------------------------------- |
|器件 ID |时钟 ID |时钟名称|状态|时钟频率|
||----------------------------------------------------------- |
| 16 | 0 | DEV_DCC0_DCC_CLKSRC0_CLK | CLK_STATE_READY | 200000000 |
| 16 | 1 | DEV_DCC0_DCC_CLKSRC1_CLK | CLK_STATE_READY | 80000000 |
| 16 | 2 | DEV_DCC0_DCC_CLKSRC2_CLK | CLK_STATE_READY | 133333333 |
| 16 | 3 | DEV_DCC0_DCC_CLKSRC3_CLK | CLK_STATE_READY | 250000000 |
| 16 | 4 | DEV_DCC0_DCC_CLKSRC4_CLK | CLK_STATE_READY | 25000000 |
| 16 | 5 | DEV_DCC0_DCC_CLKSRC5_CLK | CLK_STATE_READY | 0 |
| 16 | 6 | DEV_DCC0_DCC_CLKSRC6_CLK | CLK_STATE_READY | 500000000 |
| 16 | 7 | DEV_DCC0_DCC_CLKSRC7_CLK | CLK_STATE_READY | 60000000 |
| 16 | 8 | DEV_DCC0_DCC_INPUT00_CLK | CLK_STATE_READY | 25000000 |
| 16 | 9 | DEV_DCC0_DCC_INPUT01_CLK | CLK_STATE_READY | 0 |
| 16 | 10 | DEV_DCC0_DCC_INPUT02_CLK | CLK_STATE_READY | 12500000 |
| 16 | 11 | DEV_DCC0_DCC_INPUT10_CLK | CLK_STATE_READY | 250000000 |
| 16 | 12 | DEV_DCC0_VBUS_CLK | CLK_STATE_READY | 125000000 |
||----------------------------------------------------------- |

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

    你好、Jakub、

    您使用什么内核来控制 DCC? 您是否正在使用 TI 驱动程序来实现它?

    如果您使用的是 TI 驱动程序、我们可以联系开发团队了解他们如何测试 DCC 的驱动程序功能。我 怀疑使用 k3conf 工具修改时钟频率不会导致您需要的错误状态。

    此致、

    Nick

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

    您好、Nick

    我使用的是 R5内核0。 是的、我将使用 TI 驱动程序来控制 R5侧的 DCC: API
    为什么在此场景中使用 k3conf 不会导致错误状态? 如果根据特定的时钟频率对 DCC 计数器进行编程、那么从外部更改时钟频率(通过 k3conf)应该会触发错误。

    此致、

    雅库布

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

    你好、Jakub、

    我懂了。 我将您的线程发送给我们 MCU+团队的一位成员、以便他们可以查看如何验证 DCC 驱动程序。 如果您在几个工作日内未收到回复、请随意 ping 该主题。

    我不熟悉 k3conf 的工作原理、但我要假设它会"正确"地更改内核频率(即、它会更改所有正确的寄存器、以便处理器在更改内核频率时不会抛出错误)。

    此致、

    Nick