问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

如何成为优秀的linux驱动工程师69

提问网友 发布时间:2024-03-07 10:32
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
4个回答
热心网友 回答时间:2024-03-31 13:49
首先要定义,我所认为的一个优秀的驱动开发工程师,应该具备什么样的能力,这里列一下按照从易到难的顺序,个人认为应该会有几个方面的要求吧:

能够独立完成驱动的功能开发任务
能够分析和优化驱动的性能,针对特定硬件扬长避短
能够充分了解模块相关软硬件能力、发展方向,辅助应用工程师最大化利用硬件能力
能够辅助硬件工程师规划硬件设计,预防问题,谋求功能模块的最佳方案
能够协助定义系统架构,合理规划软硬件,谋求产品实现的最佳方案

作为一个驱动工程师,很多时候不是完全从头开发一个完整的子系统,而是针对特定硬件和平台移植驱动,增加功能,解决Bug等等,如果从这方面外在的表现来看:

解决问题的境界,大概会有这么几个阶段:
不知道哪里存在BUG
不知道如何解决BUG
知道如何解决BUG
知道如何发现BUG
知道如何规划BUG

知道如何发现BUG(而不是撞上BUG)其实并不简单,需要你对系统有足够的了解,能够察觉可能出问题的地方。而规划Bug更难,需要你能对问题的轻重缓急做出准确的判断。没有的完美的世界,只有适当的取舍,规避和预防。

而从解决问题过程的角度来看,我认可以分为几个阶段:
BUG发生 -> 大量跟踪调试代码 -> 终于发现并解决BUG
BUG发生 -> 理论推测可能原因 -> 迅速定位并解决BUG
阅读代码 -> 预测可能出现的BUG -> 证实并解决BUG

号称能光凭瞄一遍代码就找到问题的高手,我想我是没希望了。

应该具备怎样的素质
那么要达到上诉最佳境界,需要具备和发展哪些素质和能力呢?

足够的硬件知识
能看简单的原理图,能够分析硬件异常的可能原因,能够使用常见的硬件调试工具,我想这是做为优秀的驱动工程师,区别与其它软件工程师,所不可避免、必须具备的专业素质。当然取决于你具体从事的工作,对这方面的要求不尽相同。

对于驱动开发者来说,不了解所开发驱动外设的硬件原理和相关背景知识,也许很多时候,也能够完成一些移植,修补的工作任务,但这就好比无源之水,无根之木,我相信是很难走远的。

多多益善的操作系统知识
做驱动开发,特别是纯粹的外设的驱动移植工作,刚开始的时候,也许你并不需要了解很多操作系统本身的知识(像内存管理,进程调度,锁,各种内核子系统的原理框架等等),也能顺利完成手头的一些工作。

但是,如果一但需要优化驱动,需要完善软件框架,或者是遇上疑难问题需要跟踪解决,对操作系统,内核本身的了解,就体现出它的价值了。

对于Linux内核驱动开发者,尤其如此,首先,代码是完全开源的,你有条件去了解背后的运行机制,其次,Linux内核和各个组成子系统总是在迅速的进化发展中,不进则退,你也有必要跟上时代发展的脚步。

强烈的好奇心,持续的热情
如果驱动开发不仅仅是你的爱好,更是你养家糊口的途径,我想,很多时候,你大概不会有机会专注于一两个你最有经验的模块的开发和维护。随着能力的成长,势必会要求你接触和掌握越来越多的各式各样的驱动模块的开发。

对于这件事,包括我自己,有时候大概都会有如下几种反应:

哇,原来的工作做太久了,太乏味了,很高兴能做不同的工作。
啊?又要做别的模块啊?我手头的工作已经太多了!
这个模块没意思,我不想做。

相信多数有志青年们都是第一种表现了 8 )不过,有些时候,我发觉,很多人的这种热情其实并不持久,一个新的模块没做多久,就再次厌倦了,是已经炉火纯青了么,未必,或许只是修改了几个BUG以后不甚其烦。很多时候,我面试前来求职的工程师时,发现简历上这个也做过,那个也做过,但是一但问到解决了什么问题,所做过的驱动,框架、流程、原理之类的问题的时候,就一问三不知了。

我觉得如果自己的目标是优秀,那么最起码的标准应该是对具体驱动模块相关的子系统的整体工作流程,框架,具备足够的好奇心,乐于去了解和学习,而不仅仅是为了完成任务而工作,否则的话,很难积累下扎实的经验和技术。

清晰的逻辑思维能力
这一点,也许是个软件开发人员都应该具备吧,不过,做为驱动开发工程师来说,有时候,大多数情况下,工作的硬件环境并不是完美的,遇到问题需要分析判断错误的原因是硬件问题还是驱动Bug,这时候,清晰的逻辑思维能力尤其重要。

良好的工作习惯
大多数人都不是天才,要成为优秀的开发工程师,一需要持续努力,二需要时间积累经验,而这过程中,很重要的一点,就是要有良好的工作习惯。譬如,注意设计文档的维护,对工作中遇到的问题的记录,过往经验的及时记录,适当的软件开发流程等等。文档工作,可能很多人很不愿意去做,它的确很花费时间。不过,唉。。。老啦,好记性不如烂笔头啊 8 )。当然,其实设计文档更多的是为你提供思考的机会,而过往经验的总结,也可以起到和大家交流技术,共同进步的目的。

英语
这个也是必须的啦,没有办法,邮件列表,技术文档,社区,精通英语肯定是很大的优势,做开源项目尤其如此。阅读各种Spec标准文档之类的速度还是很重要的。阅读无障碍是一回事,能和母语一样一目十行,那才爽呀,唉,人生苦短,效率啊!光读文档,就不知道要比老外多花多少时间。。。。

了解更多开源相关,去LUPA社区看看吧
热心网友 回答时间:2024-03-31 13:50
1.如果能能掌握C语言高级编程。
2. 要了解嵌入式Linux操作系统。
3.了解Linux或者wince下的编程。
4.具有单机片或者ARM或者MIPS等相关基础。
5.其他知识的扩充。我们还可以通过阅读一些优秀的代码,了解UBOOT的源代码,或者是学习下linux的源代码等等。
如果有不错的基础,想要更深入的学习去星创客进步会比较快。
热心网友 回答时间:2024-03-31 13:52
你好首先我要说明的是我是ARM嵌入式开发工程师 偏驱动方面的
虽然两个架构不同,但是原理是一样的
C语言不说你也知道重要性,注重linuxC编程,重点是字符串处理还有
linux 驱动的相关书籍你必须看 而且要熟!
多看IC DATASHEET你不会看DATASHEET证明你已经不行了!!!!!
数字电路你必须懂 而且知道的越多越好,我写PWM驱动项目的时候吃过数字电路的亏
还有你要多写驱动,从最简单的驱动开始写,例如单个按钮驱动,只要你会写一个类型的驱动这就说明了所有类似的驱动你都行
还有一个方面的是内核!内核很重要,不要你能编写内核,但是你一定要适应内核懂内核,内核的工作模式,因为你写的驱动分分钟内核都不鸟你(就是不兼容)!
驱动工程师 路漫漫其修远兮!
热心网友 回答时间:2024-03-31 13:51

首先我要说明的是我是ARM嵌入式开发工程师 偏驱动方面的,虽然两个架构不同,但是原理是一样的,C语言不说你也知道重要性,注重linuxC编程,重点是字符串处理还有linux 驱动的相关书籍你必须看 而且要熟!多看IC DATASHEET如果不会看DATASHEET证明你的能力了!数字电路你必须懂  而且知道的越多越好,我写PWM驱动项目的时候吃过数字电路的亏,还有你要多写驱动,从最简单的驱动开始写,例如单个按钮驱动,只要你会写一个类型的驱动这就说明了所有类似的驱动你都行,还有一个方面的是内核!内核很重要,不要你能编写内核,但是你一定要适应内核懂内核,内核的工作模式,因为你写的驱动分分钟内核都不鸟你(就是不兼容)!

Linux诞生于1991年10月,至今已有二十多年历史。Linux是一套免费且功能完整的UNIX软件。且它有32位和64位的操作系统,运作稳定且有效率,被广泛用作服务器操作系统。Linux承袭的是开放式原始码(Open Source)的精神,所有Linux Source Code(源代码)均可免费取得,这使得它相对其它的操作系统(尤其是昂贵的WindowsNT)而言价格极其便宜。同时,因为它的源代码是开放的,因此,可以方便地被全球数以万计的程序员应用并不断改进,使得它在技术上的进展突飞猛进—目前Linux内核已经升级到4.0版。这种进步使得Linux成为市场倍加青睐的操作系统,1999年,Linux超过了Novell公司的Netware,成为仅次于微软WindowsServer的排名第二的服务器操作系统。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

如何才算是一个拥有两三年经验的Linux工程师 绿茶的茶渍 许多年前凯特曾经是一名护士,但现在不是了,英文怎么说 手机格式化后,手机里面的短信还会在吗 擦除是哪两个字 我是湖北松滋人现在在广东东莞到香港要怎么办通行证 我是湖北松滋市的,办港澳通行证具体要哪些手续什么证件???赴港澳个 ... 户籍证明可不可以在湖北省松滋市办理结婚证 芜湖市海哲航道工程有限公司怎么样? 卡夫特胶天冷会失效吗 第一届世界杯在哪举行的?10 第一届世界杯在哪举行?9 第一届世界杯在哪一年,在哪举办?117 第一届世界杯在哪举行27 第一届世界杯什么时候在哪举行的啊?2 咖啡兰怎么养咖啡兰如何养 新疆阿克苏到巴楚下午有什么车能到! 阿克苏机场有没有到巴楚的班车 2009年小学什么时候毕业 燃烧的蔬菜3恐龙来了的兑换码 苹果手表44mm,请问是长度还是对角线?怎么网上就没有一个明确的... 号称我国“三大火炉”的城市分别是重庆、武汉、长沙.___. (判断对错... ...有“三大火炉”之称的三个城市是( )A.重庆、武汉、南京B.吐鲁番... 新买了个美的华凌电热水器,自己安装,农村楼顶水罐,水压不够,接泄压... 从范湖到额头湾红星美凯龙地铁怎么坐 乐于助人的体现是什么? 深圳海雅百货的关于海雅百货 请高人介绍一下深圳南山海雅百货情况,这个百货属什么档次,消费高不高... 深圳布吉吉政路天虹商场距深圳南山海雅百货多远? 汽车空调压缩机一直工作不停什么原因,怎么办140 我的车子开了空调就会嗒嗒响,为什么会这样97 汽车的空调压缩机坏了能修吗67 怎么区分汽车空调压缩机,是电磁阀的还是变频的。谢谢50 ...能咬嚼东西,嚼的力度稍微大点,就会疼痛,怎么回事?补充一下,由于我长... ...吃饭也不能用力嚼,有半个月了,是怎么回事??? WINDOWS 7无法打开“添加打印机”,本地后台打印程序服...2 想问下月牙型空转的锁孔和圆形的锁孔哪个更防盗 谁有中国名校在地图上的分布图? 用力鼓掌会不会对欧米茄手表造成损伤 求《倾听村上春树》电子书!!!!
Top