首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于μC/OS-II的中断下半部设计方案 02

基于μC/OS-II的中断下半部设计方案 02

若其值为SOFTIRQ_ENABLE则启用中断下半部。全局变量softirq_stat可能的值有3个:
  ①SOFTIRQ_READY,说明有就绪的softirq等待运行;
  ②SOFTIRQ_RUNNING,说明softirq正在被调度但其状态可能为被中断态;
  ③SOFTIRQ_NONE,说明没有softirq处于就绪状态。



  此判断语句条件为真时,函数OSIntCallSirq()将会保存被中断任务的上下文,初始化中断下半部堆栈指针,并执行下半部管理函数OSDo-Sirq()。若判断结果为假,则中断处理返回被中断的语句继续执行。而这条语句可能为中断下半部的代码,也可能为任务空间的代码。0S—IntCallSirq()是一段具有平台相关性的汇编代码,在不同的处理器平台上有不同的实现代码,其流程如图2所示。

  2.2 下半部管理函数OSDoSirq()的实现
  这是中断下半部实现的核心部分。其代码如下:



返回列表