打印

如何学习LINUX驱动开发?

[复制链接]
106|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
很多朋友认为Linux驱动开发学起来很难,如何学习linux驱动开发?下面笔者就说说我的学习经验吧。



    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等函数的实现,但里面包含了很多很多细小的实现细节是之前不知道的。这时候就要考虑到很多别的问题而不仅仅是基本功能的实现。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

376

主题

377

帖子

0

粉丝