求助,使用RT-Thread线程中进低功耗后再唤醒系统就重启了
RT,我是这样做的,检测到要进低功耗后,创建一个线程,线程中等待系统确实可以被关闭了,就使芯片进入低功耗(低速CR时钟运行)线程流程大概是这样的
线程开始
rt_enter_critical(); //使用调度锁停止调度
level = rt_hw_interrupt_disable(); //关中断
关闭一些外设();
设置系统时钟为低速CR();
while(1)
{
一些I/O检测();
if(要开机)
{
break;
}
}
设置为正常的运行时钟();
初始化外设();
rt_hw_interrupt_enable(level); //使能中断
rt_exit_critical(); //解锁调度器
线程结束退出
这个线程退出后系统就从头开始运行了,像是复位了,我想要他这里结束后就继续调度其他线程,而且有时会这样,有时不会,让人想不明白了,
芯片用的是cortex-M3核的富士通单片机。
第一次使用rt-thread,如果这样做有什么不合理的地方请各位指出谢谢!
楼主问题解决了没有?现在我也在找RT-Thread低功耗的办法。 这跟RT-Thread 没大关系,主要看cpu低功耗是怎么实现的。很多cpu退出低功耗就直接复位的,而不是回复低功耗前的现场继续执行语句 li.wen 发表于 2015-1-26 14:22
楼主问题解决了没有?现在我也在找RT-Thread低功耗的办法。
后面我发现了问题,是因为进低功耗的时候要操作时钟,使用的芯片有时钟监测功能,是一个时钟异常导致,芯片复位的 acmilannast 发表于 2015-1-26 16:23
这跟RT-Thread 没大关系,主要看cpu低功耗是怎么实现的。很多cpu退出低功耗就直接复位的,而不是回复低功耗 ...
后面发现是我操作时钟不恰当导致的时钟异常发生的复位
页:
[1]