网站大量收购闲置独家精品文档,联系QQ:2885784924

如何成为优秀嵌入式驱动开发工程师.doc

如何成为优秀嵌入式驱动开发工程师.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何成为优秀的嵌入式驱动开发工程师 从事嵌入式开发是当下比较热门的一个领域,做职业规划的时候,比较清晰的是有三条路可以走:C1、嵌入式软件开发工程师 C2、嵌入式硬件开发工程师 C3、嵌入式驱动开发工程师。其中C1是计算机相关专业的同学可以选择的,因为学习的课程相对偏软,平时在PC上编程比较多,做软件开发会相对轻松。C2是学习电子电路的同学可以考虑,对模拟电路比较熟悉,可以设计出质量好的电路板。C3的难度比较大,需要同时熟悉软件和硬件,真正的做到软、硬相结合,搭建软件和硬件互通的桥梁,当然了在业界的待遇也是相对来说比较高的。我们可以去一些招聘网站查看相关企业的岗位要求,这样学习的时候就有了一个比较明确的目标。今天看到一位前辈的博文,谈究竟应该如何成为优秀的驱动开发工程师,很受鼓舞,在此与大家分享共勉。 驱动开发职位要求 1、电子专业、计算机及其相关专业,本科及以上学历; 2、3年以上相关工作经历,其中至少有2年做过嵌入式驱动及系统移植开发工作的经验; 3、熟悉C或C51语言编程,熟悉ARM汇编,能够独立移植Bootloader程序,有过Uboot移植经验者优先 4、具有嵌入式操作系统下驱动程序设计经验,精通Linux,熟悉Linux驱动开发流程,可以独立完成硬件驱动开发工作; 5、根据硬件设计原理图和相关数据手册,能了解其原理以及软硬件接口和硬件调试方法;? 6、熟悉32位处理器(如ARM)硬件体系结构;? 7、熟悉多任务环境下的软件开发及调试; 8、熟悉IAR或KEIL编译环境; 9、良好的专业英语技能; 10、有良好的团队合作精神,工作主动性强,具有吃苦耐劳的精神。 何谓优秀的驱动开发工程师 ????首先要定义,我所认为的一个优秀的驱动开发工程师,应该具备什么样的能力,这里列一下按照从易到难的顺序,个人认为应该会有几个方面的要求吧: ? ? 能够独立完成驱动的功能开发任务 ? 能够分析和优化驱动的性能,针对特定硬件扬长避短 ? 能够充分了解模块相关软硬件能力、发展方向,辅助应用工程师最大化利用硬件能力 ? 能够辅助硬件工程师规划硬件设计,预防问题,谋求功能模块的最佳方案 ? 能够协助定义系统架构,合理规划软硬件,谋求产品实现的最佳方案 ? ????作为一个驱动工程师,很多时候不是完全从头开发一个完整的子系统,而是针对特定硬件和平台移植驱动,增加功能,解决Bug等等,如果从这方面外在的表现来看: ? 解决问题的境界,大概会有这么几个阶段: ? ? ????不知道哪里存在BUG ? ????不知道如何解决BUG ? ????知道如何解决BUG ? ????知道如何发现BUG ? ????知道如何规划BUG ? ????知道如何发现BUG(而不是撞上BUG)其实并不简单,需要你对系统有足够的了解,能够察觉可能出问题的地方。 而规划Bug更难,需要你能对问题的轻重缓急做出准确的判断。没有的完美的世界,只有适当的取舍,规避和预防。 ? 而从解决问题过程的角度来看,我认可以分为几个阶段: ? ? ????BUG发生 - 大量跟踪调试代码 - 终于发现并解决BUG ? ????BUG发生 - 理论推测可能原因 - 迅速定位并解决BUG ? ????阅读代码 - 预测可能出现的BUG - 证实并解决BUG ? 应该具备怎样的素质 那么要达到上诉最佳境界,需要具备和发展哪些素质和能力呢? ? 一、足够的硬件知识 能看简单的原理图,能够分析硬件异常的可能原因,能够使用常见的硬件调试工具,我想这是做为优秀的驱动工程师,区别与其它软件工程师,所不可避免、必须具备的专业素质。当然取决于你具体从事的工作,对这方面的要求不尽相同。 ? ?????? 对于驱动开发者来说,不了解所开发驱动外设的硬件原理和相关背景知识,也许很多时候,也能够完成一些移植,修补的工作任务,但这就好比无源之水,无根之木,我相信是很难走远的。 ? 二、多多益善的操作系统知识 做驱动开发,特别是纯粹的外设的驱动移植工作,刚开始的时候,也许你并不需要了解很多操作系统本身的知识(像内存管理,进程调度,锁,各种内核子系统的原理框架等等),也能顺利完成手头的一些工作。 但是,如果一但需要优化驱动,需要完善软件框架,或者是遇上疑难问题需要跟踪解决,对操作系统,内核本身的了解,就体现出它的价值了。 对于Linux内核驱动开发者,尤其如此,首先,代码是完全开源的,你有条件去了解背后的运行机制,其次,Linux内核和各个组成子系统总是在迅速的进化发展中,不进则退,你也有必要跟上时代发展的脚步。 ? 三、强烈的好奇心,持续的热情 如果驱动开发不仅仅是你的爱好,更是你养家糊口的途径,我想,很多时候,你大概不会有机会专注于一两个你最有经验的模块的开发和维护。随着能力的成长,势必会

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档