Linux 驱动开发学习基本步骤

首次发表于:http://www.top-e.org/jiaoshi/html/?125.html

 

1.首先需要对C语言编程非常熟悉,这是在Linux下编程的基本条件。
2.会写简单的Makefile,编写一个简单的应用程序,再写一个Makefile,让它能正常编译。Makefile主要目的就是用来管理编译庞大的代码文件。
3.了解Linux内核的目录结构,尤其要熟悉kernel目录下的driver目录组织结构,这里一般存放内核中的驱动程序。
4.学会配置、编译Linux内核。
5.写一简单char驱动,Makefile编译通过,可以insmod, lsmod, rmmod。在驱动程序的init函数里加打印字符串, insmod后应该能够通过dmesg看到输出。
6.写一完整char驱动, 加上read, write, ioctl等各种操作函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。
7.写一block驱动,如磁盘驱动。加上read,write,ioctl,poll等各种函数实现。
8.学习Linux系统中interrupt机制的实现,这是编写驱动中常用到的技术。
9.学习内存管理,明白各种memory alloc的函数实现细节,这是Linux开发的基本功之一。
10.学习锁机制的应用,如信号量、自旋锁等。锁主要用来解决很多同步和并发的问题。
11.以上知识你都认为掌握了,接下来就看内核中实际应用的驱动代码。你会发现最基本的你已经知道了,大的框架都是一样的,无非是read,write,ioctl等函数的实现,但里面包含了很多很多细小的实现细节是之前不知道的,比如程序的设计逻辑,算法等。这时候就要考虑到很多实际的问题而不仅仅是基本功能的实现。
12.最后就是坚持不断地学习与总结。
总之,根据以上的步骤学习你会有实际的提高,但还有一点是最重要的,就是要有持之以恒的学习精神,并且要有解决任何问题的信心。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值