main 发表于 2023-3-22 15:50:21

os_delete_task能在中断中使用吗?

本帖最后由 stcaimcu 于 2023-3-22 16:02 编辑

问题1:RTX51-Tiny系统中,在中断中要使用 isr_xxx 前缀的系统函数,os_delete_task没有对应的isr_delete_task, os_delete_task能在中断中使用吗?

问题2:如果os_delete_task能在中断中使用,那么,如果中断是在执行被中止的任务时发生的,中断退出后,是返回到被中止的任务中,继续执行后续语句还是被系统调度到其他任务?

想要确定以上问题是因为,在低功耗处理上遇到了问题:

if(要求低功耗条件)
{
    //配置中断
    ...
    ... <--如果这时候进入中断,而又不想继续进入掉电模式,怎么办!!!
    ...
    //进入掉电模式
    PCON | = 2;
    NOP(4);
    ...
}

在满足了 要单片机进入低功耗的条件 后,单片机必须允许(!!!)中断,再进入掉电模式,否则就没法用外部引脚触发唤醒了。
但,此时出现了中断,然后立刻会进入中断处理程序,处理结果是不希望单片机进入掉电模式。
似乎,这时已经无法阻止上述程序的执行了。

如果,把上述程序放在任务当中。中断后执行os_delete_task。中断返回后,不是返回被中断的地方,而是被系统重新调度到其他任务,那么,也许能解决这个问题。
上面的想法能实现吗?

梁工 发表于 2023-3-22 17:02:25

不要在中断中创建、切换、删除任务,除非你对OS的底层非常了解。

神农鼎 发表于 2023-3-22 17:08:37

楼主,请将在 本坛的网民 stcaimcu 修改下,否则我们以为是自己的客服人员
如:STC永远的爱好者

乘风飞扬 发表于 2023-3-22 17:54:19

个人资料,设置界面已经可以修改用户名了

main 发表于 2023-3-22 18:35:54

乘风飞扬 发表于 2023-3-22 17:54
个人资料,设置界面已经可以修改用户名了

呵呵,已改。

main 发表于 2023-3-22 18:46:18

梁工 发表于 2023-3-22 17:02
不要在中断中创建、切换、删除任务,除非你对OS的底层非常了解。

怎样避免上述情况呢:
打开中断后,在进入掉电模式之前,
因中断的出现,需要放弃下一步的进入掉电模式。
单纯靠常规方法似乎没法实现啊----即使在PCON=2跟前加条件判断,也没法避免这种小概率但必然会出现的问题。
页: [1]
查看完整版本: os_delete_task能在中断中使用吗?