emwin 发表于 2020-12-7 23:25:27

分享如何在中断结束后跳转至线程态的函数呢?

最近有个低功耗需求,中断后处理完,想要直接转到Thread Mode的低功耗函数。
正常情况是更新状态,由main函数跳转,我想了下,试个新的方式:

由于临时数据不需要了,我“篡改”中断时的Stack里的上下文,改为目标函数地址。
具体压栈顺序记不清,我就参考RT-Thread的rt_hw_stack_init()创建个新的上下文数据,其中栈地址和父函数就不改了。
这样,返回时,就到我的另一个函数。

eric2013 发表于 2020-12-8 01:30:05

也可以开个SVC软中断,直接在里执行,不知道满足你的需求不。

emwin 发表于 2020-12-8 19:47:31

eric2013 发表于 2020-12-8 01:30
也可以开个SVC软中断,直接在里执行,不知道满足你的需求不。

PendSV也是中断,我是想回到线程模式,不然没法响应唤醒中断

eric2013 发表于 2020-12-9 14:08:58

emwin 发表于 2020-12-8 19:47
PendSV也是中断,我是想回到线程模式,不然没法响应唤醒中断

SVC的优先级可以设置低些即可。

snakeemail 发表于 2020-12-30 17:18:22

请问为啥不能唤醒低功耗任务?告诉所有任务?我要进低功耗了,大家收到标志,进入暂停,然后低功耗任务开始执行
页: [1]
查看完整版本: 分享如何在中断结束后跳转至线程态的函数呢?