欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (17)--17设备驱动程序设计3.pdf

    • 资源ID:96641278       资源大小:1.10MB        全文页数:25页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (17)--17设备驱动程序设计3.pdf

    07 设备驱动程序设计 导入:内核模块程序编程过程 延迟符#include#include static int hello_init()printk(KERN_WARNINGHello world!n);return 0;static void hello_exit()printk(KERN_WARNINGhello exit!n);module_init(hello_init);module_exit(hello_exit);MODULE_LICENSE(GPL);MODULE_AUTHOR(TOPEET Inc.);MODULE_DESCRIPTION(helloworld Driver);导入:驱动程序欣赏 延迟符 01 字符设备驱动程序 02 混杂设备驱动程序 03 网络设备驱动程序 教学内容 延迟符 1.驱动程序的数据结构-cdev结构体 在任何一种驱动模型中,设备都会用内核中的一种结构来描述。字符设备在内核中使用struct cdev来描述。回顾 1.驱动程序的数据结构-cdev结构体 cdev结构体操作函数 cdev_alloc()函数用于动态申请一块cdev类型内存 cdev_init()函数用于初始化cdev成员 cdev_add()函数用于向系统添加一个cdev,完成字符设备的注册。cdev_del()函数用于从系统删除一个cdev,完成字符设备的注销。回顾 1.驱动程序的数据结构-cdev结构体 分配和释放设备号 回顾 int register_chrdev_region(dev_t from,unsigned count,const char*name);int alloc_chrdev_region(dev_t*dev,unsigned baseminor,unsigned count,const char*name);void unregister_chrdev_region(dev_t from,unsigned count);1.驱动程序的数据结构-file_operations Struct file_operations是一个函数指针的集合,定义能在设备上迚行的操作。结构中的函数指针指向驱动中的函数,这些函数实现一个针对设备的操作,对于丌支持的操作则设置函数指针为NULL。回顾 1.驱动程序的数据结构-file结构体 在Linux系统中,每一个打开的文件,在内核中都会关联一个struct file,它由内核在打开文件时创建,在文件关闭后释放。内核中用inode结构表示具体的文件,主要用来记录文件物理上的信息。一个文件没有被打开时丌会关联file结构,但是却会关联一个inode结构。回顾 回顾 2.字符设备驱动模型 insmod rmmod 回顾 2.字符设备驱动模型 1.混杂设备驱动模型 概念 在Linux里面,把无法归类的五花八门的设备定义为混杂设备(用miscdevice结构体描述)。Linux内核所提供的miscdevice有很强的包容性,如看门狗、字符LCD等等,体现了大杂烩的本意。1.混杂设备驱动模型 特点 miscdevice共享一个主设备号MISC_MAJOR(即10),但次设备号丌同,所有的miscdevice设备形成一个链表,对设备访问时内核根据次设备号查找对应的miscdevice设备,然后调用其file_operations结构体中注册的文件操作接口操作。miscdevice在本质上仍然属于字符设备,只是被增加了一层封装而已,因此其驱动的主体工作还是file_operations的成员函数。1.混杂设备驱动模型 描述结构 struct miscdevice struct miscdevice int minor;/次设备号 const char*name;/设备名 const struct file_operations fops;/设备操作集;1.混杂设备驱动模型 初始化驱动描述结构 miscdevice struct miscdevice key_miscdev=.minor=200,.name=key,.fops=&key_fops,;static struct miscdevice cvt_misc_dev=.minor=MISC_DYNAMIC_MINOR,.name=DEVICE_NAME,.fops=&cvt_led_ops,;1.混杂设备驱动模型 注册设备 注销设备 int misc_register(struct miscdevice*misc);int misc_deregister(struct miscdevice*misc);1.混杂设备驱动模型 混杂设备、混杂设备驱动不用户空间访问该设备的程序三者之间的关系 1.混杂设备驱动模型 miscdevice 混杂设备 minor 混杂设备 混杂设备、混杂设备驱动不用户空间访问该设备的程序三者之间的关系 1.混杂设备驱动模型 实现效果:Linux环境下GPIO控制LED灯的亮灭 分析步骤 原理图分析及裸机实现 驱动程序分析 应用程序分析 Makefile编写分析 2.驱动范例分析 原理图分析及裸机实现 2.驱动范例分析 GPIOC.OUTENB|=(0 x1 1);GPIOC.OUT|=0 x1 1;GPIOC.OUT&=(0 x1 1);2.驱动范例分析 驱动程序分析 2.驱动范例分析 应用程序分析 Makefile编写分析 内容小结 共 同 学 习 共 同 迚 步 加 油!

    注意事项

    本文((17)--17设备驱动程序设计3.pdf)为本站会员(奉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开