Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4611351
  • 博文数量: 385
  • 博客积分: 21208
  • 博客等级: 上将
  • 技术积分: 4393
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-30 13:40
文章分类

全部博文(385)

文章存档

2015年(1)

2014年(3)

2012年(16)

2011年(42)

2010年(1)

2009年(2)

2008年(34)

2007年(188)

2006年(110)

分类: LINUX

2007-01-13 12:37:15

 

摘自luofuchong大侠的总结

想向各位刚入门的朋友提点建议:
1、不要一味的找现在(最好是什么都不用修改)的驱动程序,世界上没有免费的午餐。好好的研究一下驱程并大胆的去修改驱程才会学到更多东西。我在找工的时候总被问到的一个问题是:你在移植哪一部分的时候收获最大,你都移植了些什么,为什么要这样移植?

2、在发贴之前先看一下论坛上的精华贴。我经常看到同一个问题有不少的人重重复复的去问题,其实问题的答案早在以前的精华贴里。

3、要学会提问的技巧,不要问“详细移植过程”之类的问题,这应该是最令人讨厌的问题,相信没有几个人愿意回答。问问题的时候把问题写清楚,把出错的提示信息也贴出来,不然的话人家想帮你都难。

4、不要什么问题都发贴问人,或者已经发贴问人但没人回复的话也不要再发无谓的贴了,自己有能力解决的问题最好留给自己来解决。不要指望别人像老师一样帮你,别人只能提点一下,其它的就要靠你自己了,这是我的切身体会。


5、饮水要思源,大家把问题解决后希望都写一下总结或把方法往论坛上贴一贴,这样可以帮到更多的人。应该有不少人从论坛上得到帮助的吧,但为何没几个人把解决方法给贴一贴呢,中国人应该互相帮助嘛^_^

Another projectBBS上的高手说:
我也无法区分上层和底层程序员谁的工资更高,谁更好找工作。在我接触的人中,驱动程序员倒是可以很方便地转向上层应用,而做上层应用的人一般系统观念更强,当领导的也多是他们。这些是对产品型的公司来说的,比如做机顶盒、数字电视等的公司,需要了解比较多的协议。这些是驱动人员日常工作中接触不到的。但是对于提供linux技术服务的公司,可能情况恰好相反。


 最近在研究设备驱动程序,但遇到很多不明的地方,上网找资料,都是只列出代码,没有注释的,很是郁闷。虽然反复的看的话可以明白一半左右,但很花时间,而且无法验证自己的理解是否正确,很是苦恼。
       难道学驱动程序就只能这样反复的看代码吗?我很是疑惑,比如,我想将2.4内核下的触摸屏驱程像声卡驱程那样移植到2.6内核下(这个声卡驱程已经有人移植好),但不知道2.4和2.6内核的区别,不知道该如何动手。
       虽然有linux设备驱动程序这本书可以参考,但我压根子认为这本书对初学者来说未免太难了。它就好比一个很有经验的开发者写的书,罗列了你应该注意的地方,但如果你没做过这方面东西的话是看不明的(就好比构建嵌入式linux系统这本书,起码我是这样认为的^_^)。
       请问大虾们是如何学习linux设备驱动程序的?有没有什么好的经验或者网站介绍一下?不用感激!


可能我这样说你还是觉得太空洞,比如你要搞USB驱动。首先得知道USB设备的工作原理啊,在linux下你得知道它是怎么工作,USB分三层:USB客户软件,USB核心层,USB主控层。你的USB设备驱动要工作,都需要干些什么。当然你由于工作关系,急需完成某个功能,你可以先找些资料,按照别人的笔记和步骤先搞定。把疑惑记下来,抽时间弄明白,慢慢积累。你也就变成高手了!~~~~~~~~
 

如果你不是想用ARM嵌入式来实践所学的数据结构啦,算法等纯软件的话,
那么做嵌入式必然是软硬件结合的。
你必须对什么是片选有概念,地址是如何来的,中断又是怎么回事,数据在SDRAM中是如何存储的这些基础有概念;
然 后就是实际动手实践一下如何操作一个CPU最基本的东东,例如IO输出高低电平啦、测试一个中断啦、读写一个外设芯片啦、读写SDRAM/FLASH啦、 串口收发数据啦、LCD显示一个矩形啦等等这些最最基础的东东。所有这些都涉及硬件,都要看CPU寄存器,基本的技巧就是“如何把全英文的 datasheet里面的描述转化为C code”
努力吧。。


阅读(2293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~