嵌入式学院第期Linux字符设备驱动讲解材料.ppt

嵌入式学院第期Linux字符设备驱动讲解材料.ppt

字符设备驱动(1);*; ;设备驱动程序基础;系统调用和设备I/O;驱动程序的两大任务;设备驱动健壮性和安全性;驱动程序与内核版本号;Linux下构建和运行模块;Linux驱动程序模块加载;Linux驱动程序模块加载;模块的版本依赖;模块初始化和关闭;一个简单的Linux内核模块 ;Linux内核模块的程序结构 ;模块参数 ;导出符号 ;模块的使用计数 ;Linux内核与模块中的并发;产生并发的三种情况;产生并发的三种情况;解决并发的途径;模块的编译和装载; ;Linux字符设备驱动基础;设备名与主次设备号;动态分配主设备号;file_opration结构分析; ;三种重要数据结构及关系;三种重要数据结构及关系;三种重要数据结构及关系;file_opration结构分析;file_operations;file_operations;file_operations;file_operations;怎样使用ioctl;Ioctl权能和受限操作;用ioctl控制驱动程序实例分析;用ioctl控制驱动程序实例分析; ;用户空间与内核空间数据传输;驱动程序使用的内存;典型的嵌入式设备存储器映射; ;模块加载与卸载函数模板;读、写、I/O控制函数模板;字符设备驱动(2);; ;字符设备访问控制;全局标志的竞争问题;限制每次只有一个用户访问;用阻塞open代替EBUSY; ;竟态产生的原因;原子操作;原子变量的使用实例;自旋锁;自旋锁使用举例;信号量;信号量相关操作;信号量使用实例;自旋锁vs信号量;阻塞与非阻塞I/O;阻塞地读取串口一个字符;非阻塞地读取串口一个字符;等待队列;等待队列的操作(1);等待队列的操作(2);等待队列的操作(3); ;poll和select操作;应用程序中的轮询编程;poll()函数典型模板; ;异步通知的概念与作用;Linux信号 ;信号的接收;signal()捕获信号范例 ;异步通知的应用程序 ;异步通知的内核程序;实现图例;阻塞I/O,poll()非阻塞I/O、异步通知 ;字符设备驱动高级开发;; ;Linux内核中断子系统;中断处理;Linux中断处理子系统;全局中断控制; ;中断处理程序编写;申请IRQ ;释放IRQ ;使能和屏蔽中断 ;中断共享 ;中断共享处理;Linux中断处理子系统原理;中断处理程序的实现; ;驱动程序延缓执行机制;上半部和下半部 ;tasklet和下半部处理;Tasklet的实现;工作队列和下半部处理;工作队列的实现; ;内核定时器与延迟机制;内核中的时间流;获取当前时间;延迟执行;内核定时器;内核定时器的实现; ;内核地址空间与内存使用;内存空间与I/O空间;Arm处理器内存管理支持:MMU;内核空间与用户空间;Linux内核地址空间 ;用户空间分配;内核空间分配;内存分配参数;Kmalloc函数size参数;按页分配;vmalloc和相关函数;后备高速缓存;内核引导时的内存分配;mmap设备操作;应用层mmap调用;mmap操作实现; ;设备驱动模型与sysfs文件系统;Kobject;Kobject;Kobj_type;Kset与subsystem ;kset与kobject的关系图 ; bus;device ; driver;class结构体 ;设备、总线和类之间的关系 ; ;devfs设备文件系统 ;udev设备文件系统 ;udev的用途 ;udev规则文件 ;常用udev工具;利用udev和sys动态创建设备结点;ARM硬件接口驱动开发; ;S3C2410 芯片接口资源;FS2410实验平台主要资源介绍(1);FS2410实验平台主要资源介绍(2); ;物理内存到虚拟内存的映射(ioremap); ;S3C2410 GPIO接口简介; ;S3C2410中断相关的寄存器;按键中断接口驱动;键盘扫描驱动; ;看门狗概念;看门狗工作原理;S3C2410看门狗实现过程;S3C2410看门狗相关寄存器; ;PWM Timer;PWM原理图;相关寄存器; ;S3C2410 A/D转换器;S3C2410 A/D转换器相关的寄存器;写AD驱动需要注意的问题?; ; I2C概述;I2C总线硬件协议介绍;I2C总线的限制;I2C总线结构框图;S3C2410 I2C 总线控制器读写;S3C2410 I2C 总线控制器数据传输;S3C2410 I2C 总线控制器相关寄存器;写I2C驱动需要注意的问题?

文档评论(0)

1亿VIP精品文档

相关文档