硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1306|回复: 4
收起左侧

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

[复制链接]

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2020-12-7 23:25:27 | 显示全部楼层 |阅读模式
最近有个低功耗需求,中断后处理完,想要直接转到Thread Mode的低功耗函数。
正常情况是更新状态,由main函数跳转,我想了下,试个新的方式:

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2020-12-8 01:30:05 | 显示全部楼层
也可以开个SVC软中断,直接在里执行,不知道满足你的需求不。
回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
 楼主| 发表于 2020-12-8 19:47:31 | 显示全部楼层
eric2013 发表于 2020-12-8 01:30
也可以开个SVC软中断,直接在里执行,不知道满足你的需求不。

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2020-12-9 14:08:58 | 显示全部楼层
emwin 发表于 2020-12-8 19:47
PendSV也是中断,我是想回到线程模式,不然没法响应唤醒中断

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

使用道具 举报

41

主题

215

回帖

338

积分

高级会员

积分
338
发表于 2020-12-30 17:18:22 | 显示全部楼层
请问为啥不能唤醒低功耗任务?告诉所有任务?我要进低功耗了,大家收到标志,进入暂停,然后低功耗任务开始执行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 18:20 , Processed in 0.296839 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表