中断服务函数能不能带形参和返回值

发布者:bln898最新更新时间:2018-11-29 来源: eefocus关键字:中断服务函数  形参  返回值 手机看文章 扫描二维码
随时随地手机看文章

从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。


(1) 硬中断 


由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。


(2) 软中断 


为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。


(3) 中断嵌套 


Linux下硬中断是可以嵌套的,但是没有优先级的概念,也就是说任何一个新的中断都可以打断正在执行的中断,但同种中断除外。软中断不能嵌套,但相同类型的软中断可以在不同CPU上并行执行。


(4) 软中断指令 


int是软中断指令。 


中断向量表是中断号和中断处理函数地址的对应表。 


int n - 触发软中断n。相应的中断处理函数的地址为:中断向量表地址 + 4 * n。


(5)硬中断和软中断的区别 


软中断是执行中断指令产生的,而硬中断是由外设引发的。 


硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。 


硬中断是可屏蔽的,软中断不可屏蔽。 


硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。 


软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。


当比如单片机这种没有操作系统的,中断处理函数不能有输入参数也不能有函数返回。因为中断都是些硬件自动调用,没有程序去给他传递参数,也没有硬件去接收参数。 那其它函数怎么传参数给它呢?一般都是通过全局变量方式。不过为了避免中断函数重入,我们可以在进入中断服务函数之后将中断关闭,处理完后再开中断。



关键字:中断服务函数  形参  返回值 引用地址:中断服务函数能不能带形参和返回值

上一篇:中断服务函数的编写要求
下一篇:进程上下文与中断上下文的理解

推荐阅读最新更新时间:2024-03-16 16:18

ARM汇编语言学习笔记(五)给c语言传递参数和获取返回值
一、目的 如何给c函数传参 如何获取c函数的返回值 二、如何传参 我们通过给寄存器值来传递参数 在代码中体现为: 先给寄存器r0一个值,然后bl调用函数led_on mov r0, #4 bl led_on 这是led_on int led_on(int which) { return 0; } 三、如何获取返回值 同样我们直接看r0的值就可以啦。
[单片机]
ARM汇编语言学习笔记(五)给c语言传递参数和获取<font color='red'>返回值</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved