网站大量收购独家精品文档,联系QQ:2885784924

嵌入式应用程序设计-设备驱动.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

嵌入式应用程序设计

第八章嵌入式Linux设备驱动编程知识点回顾TCP/IP模型套接字TCP套接字编程UDP套接字编程设备驱动的基本概念Linux内核与驱动的关系Linux内核模块结构内核模块命令本次课内容?对设备进行管理,包括实时参数设置,以及提供对设备的操作接口;设备驱动概念?对设备初始化和释放;是处理和操作硬件控制器的软件。驱动程序是内核的一部分,是操作系统内核与硬件设备的直接接口,驱动程序屏蔽了硬件的细节,完成以下功能:?检测和处理设备出现的错误。?读取应用程序传送给设备文件的数据或者回送应用程序请求的数据;设备驱动编程基础—设备驱动字符设备通常指以字节为单位顺序读写的设备,如并口设备、虚拟控制台等。块设备通常指以块为单位随机读写的设备,如IDE硬盘、SCSI硬盘、光驱等。网络设备通常是指通过网络能够与其他主机进行数据通信的设备,如网卡等。Linux系统的设备分类设备驱动编程基础—设备驱动在linux中任何设备都是文件。所有设备的设备文件节点都在/dev目录下。#:ls–al/dev内核代码内核接口内核机制和服务动态性可设置可装载设备驱动程序的特点设备驱动编程基础—设备驱动设备驱动编程基础—设备驱动设备驱动程序与整个软硬件系统的关系1.Linux的内核模块Linux内核采用可加载内核模块化设计(LoadableKernelModule,LKM)内核模块:是一些可以让操作系统内核在需要时载入和执行的代码。是一种目标对象文件,通常由一组函数和数据结构组成。内核的一个模块可以以两种方式被编译和加载。直接编译进Linux内核,随同Linux启动时加载;编译成一个可加载和删除的模块。8.1设备驱动编程基础—内核模块编程C语言程序Linux内核模块运行用户空间内核空间入口main()module_init()指定;出口main() module_exit()指定;编译gcc–cMakefile连接ldinsmod运行直接运行insmod调试gdbkdbug,kdb,kgdb等2.Linux内核模块与应用程序的区别3.内核模块相关命令insmodmodule.oLoadthemodule注意,只有超级用户才能使用这个命令rmmodmoduleUnloadthemodulelsmodListallmodulesloadedintothekernel这个命令和cat/proc/modules等价modprobe[-r]modulename–Loadthemodulespecifiedandmodulesitdependslsmodinsmodhello.ormmodhellomodprobe?/lib/modules/linux版本号/modules.dep?/etc/modprobe.confmodeproble–rhello#includelinux/module.h#includelinux/init.h#includelinux/kernelMODULE_LICENSE(GPL);staticint__inithello_init(void){ printk(“Hellokernel….\n); return0;}staticvoid__exithello_exit(void){ printk(“byebye….\n);}module_init(hello_init);module_exit(hello_exit);生成makefile文件010203make-C/usr/src/linux-2.4.20/M=$(shellpwd)modulesall:obj-m:=hello.oMakefile文件make-C/usr/src/linux-2.4.20/M=$(shellpwd)modulescleanclean:$ls

hello.c?Makefile

$make

make-CM=/wu/char_8modules

$ls

hello.c??h

文档评论(0)

SYWL2019 + 关注
官方认证
文档贡献者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档