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.

[参考译文] PROCESSOR-SDK-AM335X:在尝试24、0、68次尝试时始终无法唤醒。

Guru**** 2455560 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1483830/processor-sdk-am335x-always-failed-to-wake-up-on-the-24-068th-attempt

器件型号:PROCESSOR-SDK-AM335X

工具与软件:

工具与软件:

Linux SDK6.0 内核 3.2.0

我们对 AM335x、进行了三轮睡眠唤醒压力测试、24,068次睡眠唤醒始终无法唤醒

通过 JTAG、  当唤醒失败时、CPU 卡在 CPU_IDLE 函数内的循环中

它会卡在行9和行21之间的环路中

void cpu_idle(void)
{
    local_fiq_enable();

    /* endless idle loop with no priority at all */
    while (1) {
        tick_nohz_stop_sched_tick(1);
        leds_event(led_idle_start);
        while (!need_resched()) {
#ifdef CONFIG_HOTPLUG_CPU
            if (cpu_is_offline(smp_processor_id()))
                cpu_die();
#endif

            local_irq_disable();
#ifdef CONFIG_PL310_ERRATA_769419
            wmb();
#endif
            if (hlt_counter) {
                local_irq_enable();
                cpu_relax();
                } else {
                stop_critical_timings();
                if (cpuidle_idle_call())
                    pm_idle();
                start_critical_timings();
                /*
                 * This will eventually be removed - pm_idle
                 * functions should always return with IRQs
                 * enabled.
                 */
                WARN_ON(irqs_disabled());
                local_irq_enable();
            }
        }