CC3200深度睡眠被系统任务切换中断唤醒,怎么解决?

2019-07-18 14:53发布

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

//*****************************************************************************
//
//! 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.
//!
//! eturn 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);

}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
广电总局
1楼-- · 2019-07-18 19:46
请参照一下例程idle_profile, 里面有指明如何调用middleware 去操作LPDS模式。

一周热门 更多>