君曜驱动训练课程(中文版)ppt课件.ppt

君曜驱动训练课程(中文版)ppt课件.ppt

ID:58815185

大小:6.41 MB

页数:64页

时间:2020-10-01

君曜驱动训练课程(中文版)ppt课件.ppt_第1页
君曜驱动训练课程(中文版)ppt课件.ppt_第2页
君曜驱动训练课程(中文版)ppt课件.ppt_第3页
君曜驱动训练课程(中文版)ppt课件.ppt_第4页
君曜驱动训练课程(中文版)ppt课件.ppt_第5页
资源描述:

《君曜驱动训练课程(中文版)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、君曜科技驱动训练庄志良2013.06.01摘要Linux驱动程序概念介绍侦错技巧ZET62xx驱动功能1.Linux驱动概念介绍什么是Linux驱动?是Linux驱动是一个黑盒子(Black-Box):操作硬件装置封装硬件细节标准的呼叫接口(SystemCall)机制与操作策略驱动应着重在机制(Mechanism)而非操作策略(OperationStrategy)例:机制:读,写硬盘数据操作策略:权限设定(priority),挂载(mount)等驱动是要提供一个机制来使用硬设备,并避免加诸不必要的限制驱动层(Drive

2、rLayer)驱动层在Linux中是位于硬件层(PhysicalHWLayer)之上,并在软件层(SoftwareLayer)。提供软件层来存取硬件资源驱动层实作的关键在精简(Simple)及有效(Functional)并且不要加诸任何的限制(Policy-free)2.模块(Module)Linux核心(Kernel)操作示意图模块(Module)核心Kernel支持一个可以支持在线更新(live-updated)的原始码(source-code)模块“Module”模块是一个组件码(objectcode)核心加载

3、模块使用的指令“insmod”核心移除模块使用的指令“rmmod”lsmod在ADBShell中,可以输入lsmod来确认是否驱动有被正确地加载模块类别(ModuleTypes)字符模块(Charmodule)区块模块(Blockmodule)网络模块(Networkingmodule)其它模块(Othermodule)字符模块字符装置(Chardevice)以字节串流(streamofbytes)的方式来存取在文件系统中被视为一个节点(node)例:/dev/ttyS0,/dev/console,/dev/inp

4、ut/ts字符模块需实作以下程序:Read:读Write:写Open:开Close:关区块模块(BlockModule)*区块模块:区块模块(Blockdevice)是一个放置文件系统(file-system)的装置区块模块也可同时被视为一个文件系统的节点(node)UNIX支持档案的存取的长度为512B,但Linux的长度为4KB.Linux在区块(block)与字符装置(chardevices)使用同一种呼叫方式与字符型装置需要挂载(mount)一个文件系统(file-system)网络装置(NetworkingD

5、evice)*网络装置(NetworkingDevice)网络装置是一个软,硬件接口网络装置是以封包(packet)为基础因此无法被视为一个字符装置或是一个文件系统的节点(node)也因此无法使用传统的read()及write()功能新增了一系列的封包功能(packetsfunction)及数据结构(Datastructure)其它模块(OtherDeviceTypes)*USB字符模块(USBmouse)区块模块(USBmemcard)网络模块(USBnetworkingcard)SCSI特殊的SCSI指令(kern

6、elSCSIsubset)特殊的SCSI界面模块链接至核心核心模块v.s.应用程序应用程序拥有自己特定的任务行程(task)连结到外部的库(libraries),例如:printf()位于LIBC模块是在加载在核心之后,并等后被呼叫启始(INIT):module_init(*funcPtr)离开(EXIT):module_exit(*funcPtr)仅可以被kernel连结(link)模块指令:insmod,modprobe,rmmod模块指令:insmod:加载模块modprob:侦测加载模块,系统自动加载相关的模块

7、rmmod:卸除模块模块启始(init)与离开(exit)的宏:mod_init(my_init)mod_exit(my_init)3.字符模块(CharModule)驱动主编号(Major)及副编号(Minor)驱动主编号:驱动类别驱动副编号:装置编号产生装置节点(Node)从脚本中产生装置节点:必须有Root权限指令格式:mknod/dev/$namec#major#minor例:mknod/dev/smbusc1240从驱动程序中产生装置节点:驱动主/副编号API取得主编号归还主编号现正运行装置(Runtimed

8、evices)开启/proc/devices:开机加载驱动在开机的启始脚本上加入insmod:/etc/init.d,etc/rc.d/init.dor/sbin/init.d,etc档案操作指针函数(file_operations)例:档案操作指针函数开启(Open)/离开(Release)函数Open()增加使用次数(usec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。