Linux驱动程序开发步步高.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
老手经验:Linux 驱动程序开发学习 ... 1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学 会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印he o world, insmod后应该能够通 过dmesg看到输出。 5. 写一完整驱动, 加上read, write, ioctl, po ing 等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的 实现。 6. 写一block驱动, 加上read,write,ioctl,po 等各种函数实现。 7. 简单学习下内存管理, 这个是最难的,明白各种memory a oc的函数实现细节。 这是linux开发的基本功。 8. 学习锁机制的应用,这个不是最难的但是最容易 犯错的,涉及到很多同步和并发的问题。 9. 看内核中实际应用的驱动代码。 你 会发现最基本的你已经知道了, 大的框架都是一样的, 无非是read, write, ioctl等函数的实现, 但里面包含了很多很多细小的实现细节是之 ... by naiquan_hu 2009-10-21 回复 (0) ioctl 函数 本函数影响由fd 参数引用的一个打开的文件。 #includeunistd.h int ioctl( int fd, int request, .../* void *arg */ ); 返回0 :成功 -1 :出错 第三个参数总是一个指针,但指针的类型依赖于request 参数。 我们可以把和网络相关的请求划分为6 类: 套接口操作 文件操作 接口操作 ARP 高速缓存操作 路由表操作 流系统 下表列出了网络相关ioctl 请求的request 参数以及arg 地址必须指向的数据类型: 类别 Request 说明 数据类型 套 SIOCATMARK 是否位于带外标记 int 接 SIOCSPGRP 设置套接口的进程ID 或进程组ID int 口 SIOCGPGRP 获取套接口的进程ID 或进程组ID int FIONBIN 设置/ 清除非阻塞I/O 标志 int 文 FIOASYNC 设置/ 清除信号驱动异步I/O 标志 int FIONREAD 获取接收缓存区中的字节数 int 件 FIOSETOWN 设置文件的进程ID 或进程组ID int FIOGETOWN 获取文件的进程ID 或进程组ID int SIOCGIFCONF 获取所有接口的清单 struct ifconf SIOCSIFADDR 设置接口地址 struc

文档评论(0)

li455504605 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档