TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335X在RTOS下进入standby模式的问题

        目前关于standby模式有些问题,
        在进入standby的模式,会依次
        -> 保存peripherals context
        -> 配置CM3
        -> 使能唤醒源
        -> 禁用模块时钟
        -> 配置最小的OPP
        -> 禁用IRQ

        -> 保存A8 context
        -> 等待唤醒
        -> 恢复A8 context

        -> 使能IRQ
        -> 使能模块时钟
        ……

        目前遇见一个问题,
        在RTOS下进入standby模式,唤醒之后使能IRQ,程序会跑飞;
        在没有RTOS的工程下,唤醒之后可以正常使能IRQ。

        请问打开中断跑飞可能是什么原因?在RTOS下唤醒后开中断是否有什么要求?

        开关中断使用的是CPUirqd()与CPUirqe()
        /*
        **
        ** Wrapper function for the IRQ disable function
        **
        */
        void CPUirqd(void)
        {
            /* Disable IRQ in CPSR */
            asm("    dsb    \n\t"
                "    mrs     r0, CPSR\n\t"
                "    orr     r0, #0x80\n\t"
                "    msr     CPSR, r0");
        }

        /*
        **
        ** Wrapper function for the IRQ enable function
        **
        */
        void CPUirqe(void)
        {
            /* Enable IRQ in CPSR */
            asm("    dsb    \n\t"
                "    mrs     r0, CPSR\n\t"
                "    bic     r0, #0x80\n\t"
                "    msr     CPSR, r0");
        }

Jian Zhou:

请问是在TI-RTOS下测试的么?

dongxiao lin:

回复 Jian Zhou:

是的。是否有TI-RTOS下关于standby模式的历程呢?

赞(0)
未经允许不得转载:TI中文支持网 » AM335X在RTOS下进入standby模式的问题
分享到: 更多 (0)