微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > 怎么解决在freertos下deepsleep总是被系统任务切换中断唤醒的问题

怎么解决在freertos下deepsleep总是被系统任务切换中断唤醒的问题

时间:10-02 整理:3721RD 点击:

TI工程师,大家好,

          想问一下,怎么解决在freertos下deepsleep总是被系统任务切换中断唤醒的问题。

//*****************************************************************************
//
//! Puts the system into Deep Sleep power mode.
//!
//! This function puts the system into Deep Sleep power mode. System exits the
//! power state on any one of the available interrupt. On exit from deep
//! sleep the function returns to the calling function with all the processor
//! core registers retained.
//!
//! \return None.
//
//*****************************************************************************
void
PRCMDeepSleepEnter()
{
//
// Set bandgap duty cycle to 1
//
HWREG(HIB1P2_BASE + HIB1P2_O_BGAP_DUTY_CYCLING_EXIT_CFG) = 0x1;

//
// Enable DSLP in cortex
//
HWREG(0xE000ED10)|=1<<2;

//
// Request Deep Sleep
//
CPUwfi();

//
// Disable DSLP in cortex before
// returning to the caller
//
HWREG(0xE000ED10) &= ~(1<<2);

}

这个休眠函数,会被所有的中断唤醒,我把它放在freertos下,发现总是不能保持睡眠。猜测是因为不断被系统任务切换中断唤醒。我看数据表deepsleep也是可以设置唤醒源的,但是API貌似并没有提供这样的设置函数。这种问题有什么解决办法吗?

请参照一下例程idle_profile, 里面有指明如何调用middleware 去操作LPDS模式。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top