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.

[参考译文] TDA4VL-Q1:更改裸机的 C71和 A72频率

Guru**** 2546020 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1337391/tda4vl-q1-change-c71-and-a72-frequency-on-bare-metal

器件型号:TDA4VL-Q1
主题中讨论的其他器件:TDA4VL

您好!

我们正在 TDA4VL 上为 A72和 C71内核开发算法。 主要部分将在 C71 DSP 代码上运行。 目前我们要处理的是  TDA4VL EVM、它的运行频率与我们将来要实现的硬件的运行频率不同。 目前、由于我们处于早期开发阶段、因此我们使用 Code Composer Studio 以最简单的方式加载 ELF 可执行文件(connect -> run launch.js script ->在一个内核上运行代码)。

我想更改内核频率(以及高速缓存和存储器等后续参数)、以匹配客户的电路板。 我想将 C71时钟从1GHz 降低到500MHz、将 A72时钟从2GHz 降低到1.2GHz。 我想在裸机上执行此 操作、而无需次级引导加载程序(加载 RTOS 或 Linux)。 我们只希望开发人员快速地在 DSP 上运行部分代码、验证它是否有效并测量运行时。    

我从未使用过 TI 的电路板或任何其他电路板。 一切都是全新的。 在过去的几周里、我查阅了技术文档和 PDK 文档。 我了解到、我 应该能够通过更改 PLL 分频器值实现所需的效果。 我确定需要更改

  • C7X 的 MAIN_PLL7_HSDIV0_DIV_VAL 将 C7X 从2更改成了5、以进入500MHz
  • MAIN_PLL8_HSDIV0_DIV_VAL 将 A72内核从0更改成了1、以实现1GHz (低于1.2GHz、但优于无矩阵)

现在、我在为如何做到这一点而苦恼。 我知道这可以在通常使用 SBL 或引导 RTOS/Linux 时完成。 但我暂时不想引入这种复杂性。 我希望从评估板转移到将来该方法会有所不同的客户板。 由于我们当前正在使用该 CCS+GEL+JS_script 方法、我知道 SBL 的角色(设置电路板)用 GEL+JS_script 代替。 我浏览了 GEL 脚本、发现它正像我想做的那样-将这些分频器值写入 MMR。 因此、我更改了提到的 C71的 PLL7分频器值。  我已通过添加一些附加打印件验证是否正在执行 GEL。 不幸的是、我通过 Sciclient 读取的时钟与通过 GTC0计时器测量的运行时没有区别。

Sciclient_pmGetModuleClkFreq(TISCI_DEV_COMPUTE_CLUSTER0_C71SS0_0,
	                         TISCI_DEV_COMPUTE_CLUSTER0_C71SS0_0_C7X_CLK,
	                         &c7xFreq,
	                         SCICLIENT_SERVICE_WAIT_FOREVER);
   

该方法仍然读取1GHz 时钟。 现在、我很难理解正在发生的事情、以及各个部分之间的关系。 我注意到 PDK 中的 JS 脚本 正在加载  sciclient_ccs_init_mcu1_0_release.xer5f 二进制文件。 我很快就去了文档,我不能说我完全理解它。 但是 sciclient_ccs_init 二进制是否会设置开发板并有效地覆盖 GEL 脚本中的值? 或者无论如何 GEL 脚本发挥什么作用? 我在示例中找到 sciclient_ccs_init 的源代码。 我应该将我的更改放在这里、构建一个二进制文件并在 JS 脚本中加载此二进制文件、而不是 PDK 提供的脚本吗? 如果需要、是否有人可以举例说明如何更改频率?

对于如何将这一庞大文件的各个地方的这些文件整理在一起,我希望能提供任何帮助和解释。 非常感谢    

米兰

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

    您好!

    、但 sciclient_ccs_init 二进制文件是否设置了电路板并有效地覆盖了 GEL 脚本中的值? [/报价]

    是的、如果核心频率相关的 PLL 被覆盖、此处发生了电路板配置

    Unknown 说:
    我应该将我的更改放在那里、构建二进制文件并在 JS 脚本中加载此二进制文件、而不是 PDK 提供的二进制文件吗? 如果是、是否有人可以通过一些示例来说明如何更改频率?

    此参考设计最终未经 TI 测试、可能会也可能不会起作用。 这也可能对其他地方产生影响。

    因此、快速更改时钟频率的建议方法是使用 SBL 执行相同的操作。

    此致、

    尼基尔  

    [/quote]