当前位置:首页 > 嵌入式底层开发
从事嵌入式软件底层开发所需掌握的知识
2009-09-21 11:06:58| 分类: 工作学习|字号 订阅
根据工作三年来的实践证明,如果需要从事嵌入式软件底层开发,需要掌握以下一些知识,在此列举出来主要是为想从事这方面
工作的朋友指明一些方向。
⑴因为你的工作主要涉及底层,所以需要要良好的硬件技术,也就是能很快看懂整个系统(或你负责的部分)的原理图,这就需要
扎实的电路、模拟电子、数字电子等多方面硬件技术知识,在这里,模拟电子技术用得的知识较多。
⑵至少要掌握一个嵌入式操作系统,如wince、linux、Vxworks,这就设计到需要学习嵌入式操作系统的内存管理、DMA处理、
电源管理、设备管理、中断处理机制等等知识点。
⑶掌握一种微处理器的机制和其应用,比如ARM9的S3C2440A,而我觉得做底层开发和移植的,如果想成为一个驱动牛人,就
需要培养自己可以独自开发整个系统的BSP包,对于wince下的开发来说,包括bootloader、驱动和OAL的开发,而这几部分的开发和微处理器的关系及其紧密,也就是说你需要熟悉掌握整个微处理器。这部分的知识和⑴的知识综合起来就是相对大范围的硬件知识,只有具备了这些,你才能根据不同的产品建立起相应的BSP包,才能生成相应的SDK让应用层开发人员开发应用程序。
⑷良好的C语言和C++编程能力,虽然主要是用C来编写,但很多驱动程序也用到C++,所以这两门语言都要掌握。我感觉做
底层开发的很少用到负责的算法,而常用的是操作系统提供给你的API的使用(这就需要你熟悉你产品用到的嵌入式操作系统)、对微处理器相关部分的控制(对相关控制部分的寄存器的进行读写,如如果要使不同的LCD屏可以显示,我们就需要根据不同的屏的相关时序图和参数来配置LCD控制器,这就涉及到对寄存器的读写)和相关外围器件的寄存器的读写,使用算法较多的是应用层开发人员。
⑸良好的英文读写能力,因为我们需要看的技术资料基本是英文资料,如果没有良好的专业英语能力,看这些英文资料将是痛苦
和煎熬的过程,而且影响你对项目的开发。做研发工作的,很注重细节,有时候就因为一些小细节用去你很多时间才能发现并解决,这很有可能和你不甚理解这些英文的技术资料有关。
⑹要掌握常用的调试工具,如ADS、万用表、示波器、图形分析仪等相关调试工具,这对于你发现问题和解决问题提高很大的帮
助,还需掌握代码阅读和编译工具(如SourceInsight)、画流程图的工具等等一些对你的工作有直接或间接的促进作用的工具。
⑺最好是具备良好的焊接技术,因为项目在开始的研发阶段,在把系统boot起来的时候或是稍后的写驱动的时候,很有可能是
硬件上存在问题而导致你的原本正确的程序没有呈现给我们正确的结果,而我们需要具备发现硬件上存在问题的能力并且更换坏掉的元器件。在研发的时候,因为这时候系统的主板往往还没有装上外壳,所以如果不小心就会造成短路,很有可能刚才系统还好好的,怎么突然就没有反应了呢?而导致这个结果的也可能就是一个二极管被烧了,或者是其他的原因。为了加快产品的开发进度,我们最后是可以发现存在的硬件问题,并且自己换上好的元器件,这就需要良好的焊接技术。
当然了,如果你要成为研发部经理或技术总监或老板,那你还需要更广的知识面和更强的能力,在这里就不列出来了,我相信有
追求的人总会尽自己的最大努力去实现它。
共分享92篇相关文档