下载此文档

嵌入式Linux驱动高级开发及内核原理.ppt


文档分类:IT计算机 | 页数:约95页 举报非法文档有奖
1/95
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/95 下载此文档
文档列表 文档介绍
嵌入式Linux驱动高级开发及内核原理
日程安排
设备驱动简介
建立和运行模块
字符驱动
调试技术
并发和竞争
高级字符驱动操作
时间,延时和延后工作
分配内存
与硬件通讯
中断处理
块设备驱动
日程安排
设备驱动简介
设备驱动简介
驱动是什么
Driver is a software layer that lies between the applications and the actual device
驱动程序的角色
提供机制, 而不是策略
隐藏在UNIX中的哲学
mechanism: What capabilities are provided.
policy: How these capabilities can be used.
Kernel的作用
Kernel可划分为下列功能单元
进程管理: 进程调度, 资源分配, 进程间通信.
内存管理: 其实也算是资源分配的一部分
文件系统: 管理, 组织物理媒介上数据的方法
设备控制: 设备驱动(ldd3所关注的)
网络: 实质上是进程间通信. 但它不局限于一个特定的进程. 它关注收/发packets, 路由, 地址解析...
Kernel的结构
模块
可加载模块(lodable modules)
module: 可实时加载到内核中的代码, 它可动态连接到内核(insmod, rmmod)
设备驱动就是module的代表, 但module还包括文件系统等等.
设备和模块的分类
模块分为这些类型,每种类型的模块驱动对应类型的设备
character module,
block module,
network interface
other module
字符设备和块设备
字符设备: 以字节流的形式被访问的设备。: /dev/console : 文本控制台. /dev/ttyS0 : 串口
它通过文件系统节点被访问. : /dev/tty1, /dev/lp0
字符设备与一般文件(regular file)的区别
可以在一般文件中前后移动(lseek), 但只能顺序访问字符设备.
当然, 也有特例: frame grabbers.
块设备: 能支持文件系统的设备
传统的UNIX: 只能以block(512B)为单位访问块设备
Linux: 能以访问字符设备的方式访问块设备, 即以字节文单位访问块设备.
Linux中字符设备与块设备的区别
内核内部对数据的组织和管理不同, 对驱动开发者来说透明
接口不同: 使用两套不同的interface
网络设备
网络接口: 能与其他主机通信的设备
它可以是硬件设备, 也可以是软件设备, 比如lo. (参考TCP/IP详解p26)
网络接口只管收发数据包, 而不管这些数据包被什么协议所使用
不同于字符设备和块设备, 网络接口没有对应的文件系统节点. 虽然可以通过类似eth0这样的"文件名"来访问网络接口, 但文件系统节点中却没有针对网络接口的节点
内核与网络接口之间的通信也不同于内核与字符/块设备之间的通信(read, write), 它们之间使用特定的传输数据包的函数调用

嵌入式Linux驱动高级开发及内核原理 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数95
  • 收藏数0 收藏
  • 顶次数0
  • 上传人allap
  • 文件大小165 KB
  • 时间2018-11-13