Linux驱动程序开发老手谈学习经验步骤

由易到难编写Linux驱动程序

1. 学会写简单的makefile,Linux驱动程序开发起点,不象windows 的IDE基本都自动生成MakeFile

2. 编一Linux驱动程序应用程序代码,让它可以用makefile跑起来

3. 这样基本就学会写Linux驱动程序的makefile

4. 写一简单char驱动,让makefile编译通过,可以进行insmod, lsmod, rmmod. 在Linux驱动程序的init函数里打印hello world, insmod后应该能够通过dmesg看到输出信息。

5. 然后写一完整Linux驱动程序, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。

6. 再写一blockLinux驱动程序, 加上read,write,ioctl,poll等各种函数实现。

经过以上Linux驱动程序循环渐进的Linux驱动程序由易到难的实践,基本掌握Linux驱动程序的要点。

下面是Linux驱动程序的进阶学习。

7. 简单学习下内存管理, 这个是最难的,明白各种memory alloc的函数实现细节。这是linux开发的基本功。

8. 学习锁机制的应用,这个不是最难的但是最容易犯错的,涉及到很多同步和并发的问题。

9. 再看Linux内核中实际应用的驱动代码。 你会发现最基本的你已经知道了, 大的框架都是一样的, 无非是read, write, ioctl等函数的实现, 但里面包含了很多很多细小的Linux驱动实现细节是之前不知道的。 这时候就要考虑到很多别的问题而不仅仅是Linux驱动基本功能的实现。

 Linux驱动程序扩展阅读

推荐您看2.6.20中integrated的一个驱动 kvm, 记得是在driver/lguest下,很好玩的, 就是linux下的虚拟机驱动, 代码不长,但功能强大。有能力的可以自己写一操作系统按照要求做成磁盘镜像加载到虚拟机中, 然后客户机可以有自己的4G虚拟地址空间。

10. 看完这部分Linux驱动程序欢迎您进入Linux kernel学习中来。

最简单的方法,跟着ldd(linux device driver)做一遍。

Linux USB摄像头驱动体系结构

嵌入式Linux下USB驱动程序的设计

此条目发表在 Linux驱动开发 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。

发表评论