中断开关实现方式的区别

He_new 2025-02-28 22:46:36

想请问一下大家,我在很多操作系统中看到中断总开关的实现方式都不一样,一般是下面两种方法中的一种,或者两种都同时提供,

请问一下,这两种方法有什么本质上的区别么,或者大家知道这两种中断锁实现方法的学术名称是什么

 

方法一

static unsigned int Nesting = 0;

void enableInterrupt (void)
{
    Nesting--;
    if(Nesting == 0)
        开中断;

}
void disableInterrupt (void)
{
    Nesting++;
    关中断();
}

方法二:

unsigned int disableInterrupt (void)
{
    unsigned int flag;

    flag = 当前中断状态;
    关中断();

    return flag;
}

void enableInterrupt (unsigned int flag)
{
    当前中断状态 = flag;
}

 

...全文
成就一亿技术人!
拼手气红包 15.00元
2322 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
forever74 03-02
  • 打赏
  • 举报
回复

中国说法是殊途同归
西方说法是条条大路通罗马

假设你吃3600颗茴香豆会饱,少一颗都不行。
那么要么你数着豆吃,数够了就停下;
要么你吃到饱,停下。
其实都是一样的。

  • 打赏
  • 举报
回复 2

不是定时,是支持嵌套中断,高优先级中断可以再入低优先级的中断~

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧