打印
[嵌入式linux]

对linux驱动的初学者的建议

[复制链接]
3101|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qiyei2009|  楼主 | 2015-5-11 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍下自己,目前是嵌入式硬件工程师,但是想搞嵌入式底层软件开发。工作有两年了,硬件基础能设计多层的电路板,6层,8层等,熟悉各种硬件协议,熟悉ARM平台。

这一部分是我三个月学习驱动的经验及教训。主要是ARM平台的,在此,写出来供大家参考。

1 开发平台:不管你是用什么开发板,一定要有一个开发板,选定了开发板之后,一定要选一个内核版本。建议内核版本2.6及其以后的,不要太新了。比如,我选的是TQ210,内核版本是linux3.0.8
        注意:一定要选择一个纯净版的内核,不要用开发板供应商提供的内核,别人的内核的驱动是现成的,你还写个毛啊。但是,你写驱动的时候,可以看看别人是怎么写的。

2 书籍:书的话,推荐LINUX设备驱动程序(第3版) ,但是这本书有两个缺点,第一就是内核版本有点老,假设你想学新的内核,比如linux3.10。那么,内核的各种接口变化很大。这本书的参考意义就不是很大。第二个缺点就是,这本书读起来比较恼火,有一点难懂。但是当你慢慢品味时,你会发现,这本书真的写的很好,内容很多。(另外一本书,Linux设备驱动开发详解(第2版) 电子版的错误太多,纸质的没读过,也可以看看,但是要学会辨别那么是错误。挺期待第三版的,据说改动很大)

3 这里特别推荐一下韦东山的视频,如果你想快速的入门驱动,那么韦东山的视频是必看的。当然,也不是每一个视频都看。比如,你想学I2C驱动,那么你就直接看I2C那部分(当然,之前的字符设备,总线平台设备这些是I2C的基础,这些要看)。讲讲我看韦老师的视频的感受。讲的很不错,思路很清晰。手把手写代码这个很好。初学者,应该跟着这个来,看这个视频的时候,一定要找个笔记本,做笔记。这样,方便自己以后总结。

4 这一点就是,要熟悉内核,比如,你要会内核的移植(其实很简单的)。知道怎么配置和裁剪内核。

5 一定要搭建一个高效的开发环境:比如,在板子上搭建NFS开发环境。这样方便程序的编写和运行。我是搭建了一个虚拟机,在TQ210 板子上实现了NFS挂载根文件系统。另外,我是在虚拟机上用eclipse集成开发环境的。

6 遇到问题怎么办?
        我觉得遇到问题,有两点要注意,第一,不要放弃,要是实在解决不了,可以先跳过。后面再来解决,比如,我写LCD驱动的时候,遇到的时钟频率老是获取不了,后来解决了。第二,多上网去搜别人的答案。还有一点,韦老师,经常在视频里面说的一句话让我印象很深刻,多参照linux官方的驱动,看看别人是怎么写的。有时,同一个驱动程序的运行还依赖与内核的配置项,你运行时,要确认把该编译进去的模块和选项编译进去了。

总结:linux驱动学习起来没有想象的那么难,也没有那么简单。最重要的一个思想是:linux内核相当于给我们提供了一个驱动的编程接口(框架),我们要做的事是,熟悉这个框架,然后明白那些地方是我们自己编写的部分,那么是我们直接可以用的。还有一点,多看看linux内核的已经编写好的驱动。

相关帖子

沙发
feiting94| | 2015-5-11 15:41 | 只看该作者
说的很好,谢谢楼主的经验之谈

使用特权

评论回复
板凳
gmm2015| | 2015-5-11 16:41 | 只看该作者
加油

使用特权

评论回复
地板
ddllxxrr| | 2015-5-11 20:51 | 只看该作者
顶楼主一下

使用特权

评论回复
5
hang150| | 2015-5-12 15:46 | 只看该作者
以前用Linux,本来打算读下内核代码的。太大了没**下来。

使用特权

评论回复
6
白色滴丶| | 2015-5-12 17:27 | 只看该作者
菜鸟学习了  谢谢指教

使用特权

评论回复
7
18241108933| | 2015-5-13 12:24 | 只看该作者
赞一个

使用特权

评论回复
8
cooldog123pp| | 2015-5-13 21:49 | 只看该作者
最近也在学 一起进步

使用特权

评论回复
9
csc2| | 2015-5-14 21:38 | 只看该作者
顶一个,赞楼主

使用特权

评论回复
10
天意无罪| | 2015-5-15 11:40 | 只看该作者
我也是主要做嵌入式硬件,平时也写应用软件,最近也在开始学Linux底层驱动开发,一般的公司硬件工程师不仅要做硬件开发,也要做底层驱动开发,系统移植等,当然大公司人员充足就另当别论了;希望遇到问题可以多多交流。

使用特权

评论回复
11
落林花开| | 2015-5-15 15:25 | 只看该作者
楼主,我也是搞硬件开发的,两年了,想向楼主学习搞Linux,以后多多交流。

使用特权

评论回复
12
aichixiaobaicai| | 2015-5-15 17:44 | 只看该作者

使用特权

评论回复
13
Izhang| | 2015-5-15 19:24 | 只看该作者
一家之言——国内驱动的工作需要很少。

使用特权

评论回复
14
XIVN1987| | 2015-5-17 09:19 | 只看该作者
总结的很好,感谢楼主:handshake

使用特权

评论回复
15
hbchf| | 2015-5-18 13:45 | 只看该作者
谢谢 分享

使用特权

评论回复
16
黑小子mxx| | 2015-5-18 22:59 | 只看该作者
最近也想入手TQ210,敢问楼主这款开发版怎么样啊?看了下,好多东西不开源,对学习有影响么?

使用特权

评论回复
17
lqc754| | 2015-5-22 13:13 | 只看该作者

使用特权

评论回复
18
So_Cracy| | 2015-5-29 16:05 | 只看该作者
刚准备学嵌入式系统,虽然对楼主现在说的不是很清楚,但以后应该会用到的

使用特权

评论回复
19
学海无涯苦作舟| | 2015-7-22 15:29 | 只看该作者
6666

使用特权

评论回复
20
HORSE7812| | 2015-8-11 12:38 | 只看该作者

使用特权

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

本版积分规则

1

主题

6

帖子

1

粉丝