第9章--中断与时钟机制.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章--中断与时钟机制

第9章 中断与时钟机制 中断和时钟机制是Linux驱动重要的两项技术。使用这些技术,可以帮助驱动程序更高效的完成任务。在写设备驱动程序的过程中,为了使系统知道硬件在做什么,必须使用中断。如果没有中断,设备几乎什么都不能做。本章将详细讲解中断与时钟机制。 9.1 中断简述 本节对中断相关概念进行了简要的分析,并对中断进行了分类。根据不同的中断类型,写中断驱动程序的方法也不一样。下面将主要介绍中断的基本概念和常见分类。 9.1.1 中断的概念 中断是计算机中的一个十分重要的概念。如果没有中断,那么设备和程序就无法高效利用计算机的CPU资源。 1.什么是中断 2.中断在Linux中的实现 9.1.2 中断的宏观分类 在Linux操作系统中,中断的分类是非常复杂的。根据不同的角度,可以将中断分为不同的类型。各种类型之间的关系并非相互独立,往往是相互交叉的。从宏观上可以分为两类,分别是硬中断和软中断。 9.1.3 中断产生的位置分类 从中断产生的位置,可以将中断分为外部中断和内部中断。 1.外部中断 外部中断一般是指由计算机外设发出的中断请求,键盘中断、打印机中断、定时器中断等。外部中断是可以通过编程方式给予屏蔽的。 2.内部中断 内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。通常情况下,大多数内部中断都由Linux内核进行了处理,所以驱动程序员往往不需要关心这些问题。 9.1.4 同步和异步中断 从指令执行的角度,中断又可以分为同步中断和异步中断。 1.同步中断 同步中断是指令执行的过程中由CPU控制的,CPU在执行完一条指令后才发出中断。 2.异步中断 异步中断是由硬件设备随机产生的,产生中断时并不考虑与处理器的时钟同步问题,及该类型的中断是可以随时产生的。 9.1.5 中断小结 以上三小节从不同的角度对Linux中的中断进行了分类,但这不是严格的分类。例如,硬件中断可以是外部中断也可以是异步中断,同时软件中断可以是内部中断也可以是同步中断,如图所示。 9.2 中断的实现过程 中断的实现过程一个比较复杂的过程。其中涉及中断信号线、中断控制器等概念。首先介绍中断信号线的概念。 9.2.1 中断信号线(IRQ) 中断信号线是对中断输入线和中断输出线的统称。中断输入线是指接收中断信号的引脚。中断输出线是指发送中断信号的引脚。每一个能够产生中断的外设都有一条或者多条中断输出线(Interrput ReQquest,简称IRQ)。其用来通知处理器产生中断。相应地,处理器也有一组中断输入线,用来接收连接到它上的外部设备发出的中断信号。 9.2.2 中断控制器 中断控制器位于ARM处理器核心和中断源之间。外部中断源将中断发到中断控制器。中断控制器根据优先级进行判断,然后通过引脚将中断请求发送给ARM处理器核心。 9.2.3 中断处理过程 Linux处理中断的整个过程如图所示。 9.2.4 中断的安装与释放 当设备需要中断功能时,应该安装中断。如果驱动程序员没有通过安装中断的方式通知Linux内核需要使用中断,那么内核只会简单的应答并且忽略该中断。 9.3 按键中断实例 掌握了足够多的关于中断的知识后,下面将介绍一个按键驱动程序。该按键驱动程序当按键被按下时,打印按键按下的提示信息。 作为一个驱动程序开发人员,要做的第一件事情,就是要读懂电路图。在实际的项目开发过程中,硬件设计有时非常复杂。这时驱动开发人员应该多和硬件开发人员沟通,掌握足够多的硬件知识,以避免写出错误的驱动程序。 9.3.1 按键设备原理图 首先应该仔细看懂按键设备的原理图。作为一名驱动开发人员这是最基本的素质。按键设备在实际项目中是一种非常简单的设备,硬件原理图也非常简单。本实例的原理图可以从mini2440开发板的官方网站免费下载(/)。 9.3.2 有寄存器设备和无寄存器设备 从设备的角度来看,设备可以分为有寄存器的设备和无寄存器的设备。按键设备就是一种没有寄存器的设备。按键设备内部没有寄存器并不能代表其没有相应的外部寄存器。为了节约成本,外部寄存器常常被集成到了处理器芯片内部。这样,处理器可以通过内部寄存器来控制外部设备的功能。所以目前的处理器已经不在像是以前纯粹的处理器了,其更像一台简易的计算机。 9.3.3 按键设备相关端口寄存器 与按键K1相关的寄存器是端口G控制寄存器,如图所示。按键K1连接到EINT8引脚,该引脚对应GPG0端口的第0位。 端口G有三个控制寄存器,分别为GPGCON,GPGDAT和GPGUP。 9.4 按键中断实例程序分析 现在开始对按键设备程序进行分析。按键驱动程序由初始化函数,退出函数,中断处理函

文档评论(0)

a888118a + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档