做嵌入式驱动的前途何在

问:

做嵌入式linux驱动的前途何在?
或者说,怎么才能做好这一行?

我做嵌入式驱动开发已经一年多了,感觉没学到多少东西。
从网络驱动到CAN驱动、从dataflash驱动到NAND/NOR FLASH驱动、从CF/IDE驱动到各种嵌入式文件系统、从LCD/VGA驱动到音频驱动、从IAR到ADS再到GCC、Ucos到linux、从I2C总线到SPI再到SSC以及TCP/IP协议,感觉一个字:累!

做了这么多事,很少有驱动是自己动手写的,基本都是找来相近的代码改过来的。
感觉自己现在做什么都是半桶水,对自己超级没信心了现在。对linux也是一知半解,对启动脚本,系统配制,shell、makefile以及应用程序编程,都了解一点点但没有一样精通的;工作主要使用C语言,可是有时候写个测试程序也是一堆错误;英语自我感觉还不错,但是有时候看datasheet也会发懵,唉!

最近驱动一块wm8731花了两个多月了,那东西死活不出一点声音,烦燥死了!

现在好迷惘,不知道大家有没有类似的经历,欢迎各位老大指教!

 

答:

看得出来,你还是做了不少东西的。

我可以给你一些建议:
1) 为了今后的发展,你除了考虑广度以外,更重要的是注意知识的深度。
譬如,做过网络驱动,那么是不是只停留在会写驱动的表层上,有没有对Linux内核的网络结构,TCP/IP协议作过深入的了解。

2) 在Linux下开发很多时候都要利用现成的东西,没必要reinvent the wheel from scratch。关键是变成自己的驱动后是否了解原作者编写时背后的一些东西。 我觉

得不止是简单的让它工作。写驱动的时候就要考虑它的性能问题,并给出测试的方法(当然可以利用现成的许多工具,譬如测试网络性能的netperf等)。
你写过Flash驱动,可能会知道Flash的性能有时候有多重要。

3) C程序的自我修炼,是否考虑到软件工程方面的一些东西,程序的可维护性和扩展性,譬如LCD驱动,是不是从Sharp到NEC的只需要集中修改很少的几个地方?
对于不同品牌的Flash,如果使得Flash的驱动做的更具有灵活性。

4) 如果有时间结余,可以关注Linux内核的发展。譬如LCD的驱动有没有考虑到V4L2通用架构,譬如网络驱动用到了NAPI了吗?当然在此之前,假设已经对LDD3, ULK2理解

的比较熟了。

5) 现在所作的这些驱动还算不得非常核心的东西。如果你想有更好的发展,可以考虑往audio,video,net方面发展(当然你已经在开始看audio了),如果你稍微留意,

会注意到非常多地方都需要这样的人才,主要是因为上述每一项都需要很厚的底蕴,譬如video,需要了解MPEG4, H.264等,怎么也要个1到2年才能算个入行阿,所以我建

议不要只顾闷头做东西,要适当关注目前的一些应用(尽管现在一些名堂很多,什么PMP,V2IP,说到底都与这些有关的,人的世界不就是看和听嘛)。还有一个,这些技能

对以后跳槽也很有利。

6) 对硬件知识的补给,做嵌入式Linux这一行不可能不读硬件的Spec,如果你对硬件的工作机制理解的比较透,会有助你写出性能好的驱动程序。
顺便提一点,适时的提高你的英语水平,对你的职业生涯绝对有帮助(不要等需要的时候再补,来不及)。

7) 如果有时间,平时注意对Linux应用程序编写的了解/积累,也将有助于你写出很好功能很好的驱动程序。

 永远不能以为自己做了很多东西,就驱动而言,像TVIN/TVOUT, USB, SDIO等等,好多未知领域呢。

来源:http://bbs.chinaunix.net/thread-2161454-1-109.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值