主题中讨论的其他器件: AM4372
工具/软件:Linux
实际上是否可以使用 DM计时 器上的溢出中断将处理器从待机状态唤醒?
我正在尝试编写一个内核模块、以将 AM4378从待机状态唤醒。 我使用的是 Linux 内核版本4.1.18。 我会使用 DMTimer0、它似乎一直处于打开状态并支持唤醒、但我无法确定如何使用现有的驱动程序访问它。 因此、我决定使用 DMTimer3、因为它可用。
当我没有将处理器置为待机状态时、定时器会正确中断、但一旦处理器进入待机状态、中断就会被忽略。 我将`PRCM_CM_PER_TIMER3_CLKCTRL MODULEMODE`值设置为`2h`、以确保始终启用时钟。 如果我在计时器经过之前手动唤醒电路板、它会在适当的时间中断、因此我很确定中断实际上是在处理器处于待机状态时发生的、但不会唤醒任何内容。
有关此主题的文档有点少、并且存在一些冲突信息。 在 AM335x (1)和 AM437x (2) TRMS 中、DMTimer (DMTimer0除外)没有唤醒功能、但在 AM335x 电源管理待机用户指南(3)中、它提供了使用 DMTimer7唤醒 AM335x 的示例代码。
那么事实是什么?
(1):AM335x TRM,第4437页,表20-3"闲置/唤醒信号|智能闲置(无唤醒功能)" [http://www.ti.com/lit/ug/spruh73p/spruh73p.pdf]
(2):AM437x TRM,第2752页,表19-3“Idle/Wakeup Signals | Smart Idle (No WAKEUP Capabilities)” [http://www.ti.com/lit/ug/spruhl7g/spruhl7g.pdf]
(3): AM335x 电源管理待机用户指南[ http://processors.wiki.ti.com/index.php/AM335x_Power_Management_Standby_User%27s_Guide#DM_Timer_wakeup]
