freeros tickless STOP模式怎么实现低功耗

2019-07-14 15:33发布

我采用的是STM32F071这个芯片,采用FREERTOS,使用的电池供电,所以要求低功耗,我采用的tiCKLESS官方推荐的方式,配置  #define configUSE_TICKLESS_IDLE          1  ,然后编写函数 vPortMySuppressTicksAndSleep  在这里 进入STOP模式,采用RTC的闹钟中断唤醒,和 外部中断唤醒;   但是 经过测试,在外部中断中发送任务信号量(不是xSemaphoreTake创建的 而是任务自带的内部信号量),可以唤醒对应的任务,   然后测试 xSemaphoreTake 创建的独立信号量的方式,测试代码为 创建一个信号量,然后一个线程设置5秒等待这个信号量,然后输出调试信息,但是一旦唤醒,系统就死机了 然后不再进入SYSTICK中断了,,,,调试了 快一个月了,,,实在没办法了,,论坛里 希望有使用过 这种 低功耗方式的,可以指导一下,非常感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
60user58
1楼-- · 2019-07-14 18:04
真的需要RTOS吗,对于简单系统,RTOS引起的问题比解决掉的问题还要多
60user58
2楼-- · 2019-07-14 23:44
检查堆栈有没有溢出
sfafa
3楼-- · 2019-07-15 02:27
TOPCB 发表于 2018-12-3 14:06
没有用过这个系统,进入STOP以后,唤醒会继续工作,有时候为了防止出错,可以考虑复位一下系统。

复位肯定是不可以的!  复位的话 应用就乱了!
sfafa
4楼-- · 2019-07-15 05:11
 精彩回答 2  元偷偷看……
TOPCB
5楼-- · 2019-07-15 09:50
唤醒以后,有没有重新配置系统的时钟?
cheng8416
6楼-- · 2019-07-15 10:56
我做过这个 tickless stop 模式

一周热门 更多>