您的位置:首页 > 运维架构 > Linux

Linux 字符驱动设备的测试案例

2014-12-22 10:00 281 查看
linux驱动学习路线:http://blog.csdn.net/yangjin_unique/article/details/8683935

1、编写hello模块,学会基本的流程,能看到输出;

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

3、 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。

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

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

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

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

7、看完驱动欢迎您进入Linux kernel学习中来。

最简单的方法,跟着ldd(Linux devive driver)做一遍

详细解读字符驱动各函数:http://blog.csdn.net/yangjin_unique/article/details/8222465

内核中的三大结构:file,file_operations,inode : http://blog.sina.com.cn/s/blog_4a70d5d9010129ux.html
gcc命令详细剖析:/article/6111352.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: