学习Linux的困惑

内核编译和嵌入式产品的设计与开发
回复
louther2930
帖子: 7
注册时间: 2009-10-12 13:23

学习Linux的困惑

#1

帖子 louther2930 » 2009-10-12 13:31

各位达人:
小弟我想研究Linux驱动开发,请问你们有什么好的学习路线吗?我不知道驱动开发大概要学些什么东西,内核,和硬件都要学吗?希望高手们能给我个提示,非常感谢
月光林地的猫
帖子: 37
注册时间: 2009-06-27 23:33

Re: 学习Linux的困惑

#2

帖子 月光林地的猫 » 2009-10-12 20:30

我觉得,可以从嵌入式的驱动入手。相对简单,而且比较具体。毕竟PC上的驱动基本都很完善,而且PC的系统太过复杂和庞大。
硬件肯定要懂的。首先硬件data sheet你的看的懂,控制寄存器,状态寄存器各个位的意义,工作原理和操作方法都要知道,其次要知道怎么通过读/写这些寄存器来控制硬件和查询状态。
内核基本的概念要知道,特别是和驱动联系较紧密的内存分配,中断处理,定/计时间,I/O端口控制什么要熟悉。
toddbmg
帖子: 62
注册时间: 2007-08-09 0:23
来自: 广东
联系:

Re: 学习Linux的困惑

#3

帖子 toddbmg » 2009-10-13 10:02

论坛那么同类的文章为什么不先搜索搜索再问呢?
懒惰与不富于主动思考。。。
louther2930
帖子: 7
注册时间: 2009-10-12 13:23

Re: 学习Linux的困惑

#4

帖子 louther2930 » 2009-10-13 10:12

月光林地的猫 写了:我觉得,可以从嵌入式的驱动入手。相对简单,而且比较具体。毕竟PC上的驱动基本都很完善,而且PC的系统太过复杂和庞大。
硬件肯定要懂的。首先硬件data sheet你的看的懂,控制寄存器,状态寄存器各个位的意义,工作原理和操作方法都要知道,其次要知道怎么通过读/写这些寄存器来控制硬件和查询状态。
内核基本的概念要知道,特别是和驱动联系较紧密的内存分配,中断处理,定/计时间,I/O端口控制什么要熟悉。
我大致明白了。。。。非常感谢
louther2930
帖子: 7
注册时间: 2009-10-12 13:23

Re: 学习Linux的困惑

#5

帖子 louther2930 » 2009-10-13 10:14

toddbmg 写了:论坛那么同类的文章为什么不先搜索搜索再问呢?
懒惰与不富于主动思考。。。
你说的很对,我赞同你!
toddbmg
帖子: 62
注册时间: 2007-08-09 0:23
来自: 广东
联系:

Re: 学习Linux的困惑

#6

帖子 toddbmg » 2009-10-13 10:56

我的经历是:

学习是一个实践与看书互相反馈的过程,不要忽视实践练习,
如果你想学驱动,必须按步走
1。学好C
2。学习<LINUX程序设计>第三版,你首先必须是一个实实在在的程序员。不要连信号量是什么和怎么用都不了解就去学驱动,那真是笑大口。
3。<LINUX设备驱动程序>第三版,通过驱动程序才有机会在代码层次上找到内核的入门。学驱动与内核当然你必须学过单片机或微机原理。
4。<Linux内核设计与实现>(第二版) ,至此,看完这本书,已经对内核有了一个深刻的认识。
5。因为前面两本书已经联系实际地让你接触了一部分的内核代码。给你搭起了内核的架构,如果你更深入学习内核,那么可以专心学习一个体系结构的汇编如ARM,然后删除所有不相关的体系架构及其包括其include下的头文件,删除相当部分不关心的硬件驱动程序,删除大多数不感兴趣的文件系统,这样看内核代码并不恐怖!
回复