Linux 异常处理体系结构


前言

本文基于S3C2440开发板。

一、Linux 异常的作用

打断cpu的正常运行流程,做一些其他事情,比如中断,未定义指令,之前说的用户程序使用open.read,write等等函数打开字符设备,最终是引起swi异常,也就是软件中断指令,进入内核态,调用我们的驱动程序。

二、异常结构体系

在这里插入图片描述
①异常发生的时候,就会停止当前的正常流程,自动跳转到异常向量表。
②异常向量就是一些被安放在固定位置的代码,发生异常时就会自动执行这些固定位置上的指令。
③以中断为例,发生中断后就会跳转到中断向量,执行那些放在固定位置的代码,最后那个位置的代码会调用中断处理的总入口函数asm_do_IRQ
asm_do_IRQ会根据发生的是什么中断,根据他的中断号调用结构体组中的一个结构体,这个结构体组叫做irq_desc,使用结构体内的中断处理函数入口handl_irq
handl_irq使用chip结构中的函数来清除,屏蔽或者重新使能中断,清除中断,还逐个调用用户在action注册的中断处理函数,这个chip和action也是irq_desc结构体里面的一个属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值