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.

[参考译文] OMAP5912:OMAP5912上的空闲 DSP

Guru**** 2589280 points
Other Parts Discussed in Thread: OMAP5912

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590067/omap5912-idle-dsp-on-omap5912

器件型号:OMAP5912

根据 OMAP5912 TRM、我可以在 C55x 端执行 IDLE 指令、程序在那里停止、但 ARM_SYSST 寄存器中的 IDLE_DSP 位从未有效。 希望像我一样仍有人支持 OMAP5912、我们可以进行详细讨论。

TRM 第193页:

4.3.2 DSP 空闲控制

DSP 空闲指令必须在仅主机模式(HOM)下执行才能启动 DSP 空闲模式。 根据 DSP 空闲控制寄存器(DSP_IDLECT1和 DSP_IDLECT2)的设置、DSP 子系统的不同部分在 IDLE 指令被执行时进入空闲模式。

以下过程描述了 DSP 如何进入空闲模式:

1) 1)禁用看门狗计时器。

当定时器/安全装置定时器被配置为一个安全装置时、它的时钟(CK_REF/14)永远不会被关闭。

2) 2)通过将 DSP_IDLECT2寄存器中的相应位设置为0来禁用以下 DSP 外设时钟。

_ DSP 外部外设时钟

_外部基准外设时钟

无论是否启用 DSP 时钟、这都会立即禁用时钟。 或将 DSP_IDLECT1对应的位设置为1、这仅在禁用 DSP 时钟时禁用 DSP 外设时钟。

3) 3)将 DSP TIPB 和 MPUI 切换到共享访问模式(SAM)。

4) 4)对 DSP 空闲控制寄存器进行编程、以将所有 DSP 子系统域置于空闲模式。

5) 5)将 DSP TIPB 和 MPUI 切换到仅主机模式。

6) 6)执行 IDLE 指令。

7) 7)当 ARM_SYSST 寄存器中的 IDLE_DSP = 1时、DSP_CK 停止。

 

TRM 第616页:

2) 2) DSP 激活至非激活状态转换

 a) DSP 电源域处于活动状态。

b) MPU 通过邮箱或共享存储器请求 DSP 进入闲置模式以进入闲置状态、或者 DSP OS 进入空闲进程。

c) DSP 对 DSP 的 ICR 寄存器进行编程、以关闭所有兆单元子域时钟。

d) DSP 对 OMAP3.2 CLKRST 模块的 DSP_IDLECT1和/或 DSP_IDLECT2进行编程、以设置 OMAP3.2 DSP 时钟子域(CLKM2)的状态(这些子域属于 MPU 电源域、必须由 MPU 请求)。

e) DSP 屏蔽/解除屏蔽 DSP 中断处理程序中的中断以确保一个唤醒路径。

f) DSP 执行 IDLE 指令。

g) DSP 输入时钟(DSP_CK)由 OMAP CLKRST 模块自动关闭。

h) DSP 电源域处于非活动状态。 MPU 可以通过监控 OMAP3.2 CLKRST 模块的 ARM_SYSST 寄存器中的 IDLE_DSP 位来检测转换何时完成。

 


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

    我已通知团队。 反馈将直接发布在此处。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,Tony
    支持 C55x 论坛的团队中没有任何人拥有 OMAP5912实践经验、因此我们可能无法提供太多帮助。 我希望来自领域或社区的人能够提供一些指导。

    我唯一能想到的是,如果你想看看在空闲指令之后添加一组 nops 是否会对你有所帮助