linux下pcie驱动开发大概可以分为4个阶段,水平从低到高:
从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码
系统编程推荐《高级unix环境编程》;
还有《unix网络编程》;
内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发
参考书如下:
1《linux device drivers》
2《linux kernel development》
3《understading the linux kernel》
4《linux源码情景分析》
然后还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好。
《深入Linux设备驱动程序内核机制》百度网盘pdf最新全集下载:
a5ap
简介:本书不仅适合那些在Linux系统下从事设备驱动程序开发的专业技术人员阅读,也同样适合有志于从事Linux设备驱动程序开发 name="_GoBack">或对Linux设备驱动程序及Linux内核感兴趣的在校学生等阅读。对于没有任何Linux设备驱动程序开发经验的初学者,建议先阅读那些讨论“如何”在Linux系统下编写设备驱动程序的入门书籍,然后再阅读本书来理解“为什么”要以这样或者那样的方式来编写设备驱动程序。
在Linux kernel源码目录中baidriver/usb/usb-skeletonc为我们提供了一个最基础的USB驱动程序。我们称为USB骨架。通过它我du们仅需要修改极少的zhi部分,就可以完成一个USB设备的驱dao动。我们的USB驱动开发也是从她开始的。
1 学会写简单的makefile
2 编一应用程序,可以用makefile跑起来
3 学会写驱动的makefile
4 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。
5 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。
6 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。
7 简单学习下内存管理, 这个是最难的,明白各种memory alloc的函数实现细节。这是Linux开发的基本功。
8 学习锁机制的应用,这个不是最难的但是最容易犯错的,涉及到很多同步和并发的问题。
9 看内核中实际应用的驱动代码。 你会发现最基本的你已经知道了, 大的框架都是一样的, 无非是read, write, ioctl等函数的实现, 但里面包含了很多很多细小的实现细节是之前不知道的。 这时候就要考虑到很多别的问题而不仅仅是基本功能的实现。 推荐您看2620中integrated的一个驱动 kvm, 记得是在driver/lguest下,很好玩的, 就是Linux下的虚拟机驱动, 代码不长,但功能强大。有能力的可以自己写一 *** 作系统按照要求做成磁盘镜像加载到虚拟机中, 然后客户机可以有自己的4G虚拟地址空间。
10 看完驱动欢迎您进入Linux kernel学习中来。 最简单的方法,跟着ldd(Linux devive driver)做一遍。
以上就是关于linux下pcie驱动开发,该看些什么资料全部的内容,包括:linux下pcie驱动开发,该看些什么资料、求《深入Linux设备驱动程序内核机制》全文免费下载百度网盘资源,谢谢~、linux下usb驱动程序开发有哪些背景及其意义等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)