第1章 Linux字符设备驱动程序.ppt

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

* 嵌入式操作系统 * 六、内核等待队列 * 嵌入式操作系统 * Irq_key_open函数,主要完成8个按键对应的8个外部中断的申请 六、内核等待队列 * 嵌入式操作系统 * 六、内核等待队列 * 嵌入式操作系统 * 六、内核等待队列 * 嵌入式操作系统 * 六、内核等待队列 * 嵌入式操作系统 * * 嵌入式操作系统 * 六、内核等待队列 * 嵌入式操作系统 * 六、内核等待队列 * 嵌入式操作系统 * * 嵌入式操作系统 * 本章贯穿字符设备驱动,再一次的学习字符设备驱动,让大家能够更加熟悉字符设备驱动的编写流程,并引出Linux操作系统下的终端系统,有兴趣的同学可以《Linux设备驱动第三版》第十章中断处理。 通过中断按键驱动实例让大家懂得如何编写带中断的字符设备驱动。要明白,应用程序与驱动程序之前的数据是怎么传输的。 谢谢大家 * * * 嵌入式操作系统 * 合理使用Printk 四、驱动调试技术 * 嵌入式操作系统 * 合理使用Printk 四、驱动调试技术 * 嵌入式操作系统 * 合理使用Printk 四、驱动调试技术 * 嵌入式操作系统 * 第2章 Linux字符设备驱动程序 一、驱动程序介绍 二、字符设备驱动程序 提纲 三、字符驱动实例分析 四、驱动调试技术 五、Linux内核中断 六、内核等待队列 * 嵌入式操作系统 * 1、查询方式的按键驱动程序 五、Linux内核中断 分析second_drv.c 和 second_drv_test.c 查询方式,即CPU不停地去读IO口的状态——非常占用CPU的资源! * 嵌入式操作系统 * 中断概念 五、Linux内核中断 * 嵌入式操作系统 * Linux有一套非常成熟的中断系统。Linux内核将所有的中断统一编号,使用一个irq_desc结构体数组来描述这些中断,每个数组项对应一个中断,里面记录中断的名字、中断的状态、中断flags、底层硬件访问函数,中断处理函数入口等,通过它可以调用用户注册的中断处理函数。 2、中断方式的按键驱动程序 五、Linux内核中断 * 嵌入式操作系统 * 五、Linux内核中断 * 嵌入式操作系统 * 中断处理流程如下: (1)发生中断时,CPU执行异常向量vector_irq的代码。 (2)在 vector_irq里面,最终会调用中断处理的总入口函数 asm_do_IRQ。 (3) asm_do_IRQ根据中断号调用irq_desc数组项中的handle_irq。 (4) handle_irq会使用chip成员中的函数来设置硬件,比如清除中断、禁止中断、重新使能中断等。 (5) handle_irq逐个调用用户在action链表中注册的处理函数。 中断体系结构的初始化就是构造这些数据结构,比如irq_desc数组项中的handle_irq、chip等成员;用户注册中断时就是构造action链表;用户卸载中断时就是从action链表中去除不需要的项。 五、Linux内核中断 * 嵌入式操作系统 * 中断实现 五、Linux内核中断 * 嵌入式操作系统 * 中断注册 驱动程序通过request_irq函数向内核注册中断处理函数, request_irq函数根据中断号找到irq_desc数组项,然后在它的action链表中添加一个表项。 五、Linux内核中断 * 嵌入式操作系统 * 中断注册(参数) 五、Linux内核中断 * 嵌入式操作系统 * 中断注册(中断标志) 在flags参数中,可以选择一些与中断管理有关的选项,(声明在内核源代码的include/linux/interrupt.h中)如: IRQF_DISABLED 如果设置该位,表示是一个“快速”中断处理过程;如果没有设置这位,那么是一个“慢速”中断处理过程。 IRQF_SHARED 该位表明中断可以在设备间共享 五、Linux内核中断 * 嵌入式操作系统 * 快速/慢速中断 五、Linux内核中断 * 嵌入式操作系统 * 共享中断 五、Linux内核中断 * 嵌入式操作系统 * 共享中断 五、Linux内核中断 * 嵌入式操作系统 * 共享中断 五、Linux内核中断 * 嵌入式操作系统 * 五、Linux内核中断 * 嵌入式操作系统 * 释放中断 五、Linux内核中断 * 嵌入式操作系统 * 分配一个irqaction 把这个结构放入irq_desc[irq]——action链表 设置引脚 使能中断 出链 禁止中断 五、Linux内核中断 * 嵌入式操作系统 * 中断处理程序 五、Linux内核中断 * 嵌入式操作系统 *

文档评论(0)

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

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

1亿VIP精品文档

相关文档