工具/软件:Linux
在 Processor-SDK 1.03中、是否存在与 timer2系统计时器中断相关的任何已知问题、这些问题会导致挂起故障?
一位客户报告说,在深度睡眠0 (DS0)暂停/恢复测试周期期间,他们偶尔会看到“内核挂起故障”消息。
进一步的研究似乎指向/arc/arm/mach-omap2/timer.c _suspend()和_resume()函数中的 DMtimer2中断
这有道理吗?
请参阅下面的详细调试步骤:
在 CPU_SUSPEND ()的非零返回后,我能够在[硬件]上重现一个“内核挂起失败”实例,并设置调试代码以读取 INTC_SIR_IRQ 寄存器。 值为0x44、即十进制的68。 ‘,我查看/proc/interrupts,发现 INTC 68是“gp_timer”。 该‘在…/arch/arm/mach-omap2/timer.c 中设置,是硬件 timer2中断,即“时钟事件”系统计时器。
之前的调试代码读取四个 INTC_PEND_BUDK_IRQn 寄存器中的每一个、但它们都为0。 TRM 似乎意味着它们不会显示屏蔽的中断。 这就是我切换到读取 INTC_SIR_IRQ 的原因。
timer.c 确实具有_suspend()和_resume()函数。 OMAP-clkevt_SUSPEND ()仅执行模块空闲操作、我已验证 AM33XX_CM_PER_TIMER2_CLKCTRL 寄存器为0x00030000、这是禁用状态。 但_SUSPEND 不会禁用中断。
因此,我想问,在 Processor-SDK 1.03中,是否存在与 timer2系统计时器中断相关的任何已知问题,这些问题会导致挂起失败?