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

Linux设备驱动程序知识讲稿.ppt

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

Linux设备驱动程序;;用户态程序 vs 内核态程序;地址映射与物理地址访问;直接访问内核内存(/dev/kmem);直接访问物理地址(/dev/mem);直接访问IO端口(/dev/port);outb()/outw()/inb()/inw()函数;设备驱动程序内访问设备地址;直接访问IO端口 vs 设备驱动程序;设备分类;字符设备 vs 块设备;可装卸的设备驱动程序和 静态连接到内核的设备驱动程序;Linux对硬件设备的抽象;驱动程序与设备文件;驱动程序代码结构;LED设备驱动程序的例子;struct file_operations LED_fops = { read: LED_read, write: LED_write, open: LED_open, release: LED_release, }; int LED_init_module(void) { SET_MODULE_OWNER(LED_fops); LED_major = register_chrdev(0, LED, LED_fops); LED_off(); LED_status=0; return 0; } void LED_cleanup_module(void) { unregister_chrdev(LED_major, LED); } module_init(LED_init_module); module_exit(LED_cleanup_module);;程序列表 (2??;程序列表 (3);#ifndef __KERNEL__ #define __KERNEL__ #endif #ifndef MODULE #define MODULE #endif #include linux/config.h #include linux/module.h #include linux/sched.h #include linux/kernel.h #include linux/malloc.h #include linux/errno.h #include linux/types.h #include linux/interrupt.h #include linux/in.h #include linux/netdevice.h #include linux/etherdevice.h #include linux/ip.h #include linux/tcp.h #include linux/skbuff.h #include sysdep.h #include linux/ioctl.h #include linux/in6.h #include asm/checksum.h MODULE_AUTHOR(Rendong Ying); int LED_major, LED_status;;程序编译 (Makefile);设备装载和设备文件建立;设备的测试和使用;设备卸载;复杂的设备驱动程序;复杂设备驱动程序的例子 (USB Device);中断服务程序;数据接收中断服务程序;数据发送中断服务程序;设备文件接口函数(read);设备文件接口函数 (read, blocking mode);设备文件接口函数(write);内存申请;禁止设备打开多次;同一设备驱动管理几个接口;同一设备驱动管理几个接口

文档评论(0)

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

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

1亿VIP精品文档

相关文档