S3C2440系统中断 1
1 S3C2440系统中断 CPU 和外设构成了计算机系统,CPU 和外设之间通过总线进行连接,用于数据通信和控制,CPU 管理监视计算机系统中所有硬件,通常以两种方式来对硬件进行管理监视: 查询方式:CPU 不停的去查询每一个硬件的当前状态,根据硬件的状态决定处理与否
好比是工厂里的检查员,不停的检查各个岗位工作状态,发现情况及时处理
这种方式实现起来简单,通常用在只有少量外设硬件的系统中,如果一个计算机系统中有很多硬件,这种方式无疑是耗时,低效的,同时还大量占用CPU 资源,并且对多任务系统反应迟钝
中断方式:当某个硬件产生需要CPU 处理的事件时,主动通过一根信号线“告知”CPU,同时设置某个寄存器里对应的位,CPU 一旦发现这根信号线上的电平有变化,就会中断当前程序,然后去处理发出该中断请求
这就像是医院重危病房,病房每张病床床头有一个应急按钮,该按钮连接到病房监控室里控制台一盏指示灯,只要该张病床出现紧急情况病人按下按钮,病房监控室里电铃会响起,通知医护人员有紧急情况,医护人员这时查看控制台上的指示灯,找出具体病房,病床号,直接过去处理紧急情况
中断处理方式相对查询方式要复杂的多,并且需要硬件的支持,但是它处理的实时性更高,嵌入式系统里基本上都使用这种方式来处理
系统中断是嵌入式硬件实时地处理内部或外部事件的一种机制
对于不同CPU 而言,中断的处理只是细节不同,大体处理流程都一样,S3C2440A的中断控制器结构如下图所示: 图3-3 S3C2440中断控制器 中断请求由硬件产生,根据中断源类型分别将中断信号送到 SUBSRCPND(Su bSou rcePending)和SRCPND(Sou rcePending)寄存器,SUBSRCPND 是子中断源暂存寄存器,用来保存子中断源信号,SRCPND 是中断源暂存寄存器,用