嵌入式软件工程师嵌入式软件工程师就是编写嵌入式系统的工程师,一般来说软件工程师的人员流动性要比硬件流动性要大。首先,我们都知道,产品是企业生存的命脉,如果产品的设计资料泄露,那么该企业的生存优势就不存在了。所以,企业会千方百计的留住产品设计的核心人员,尤其是硬件设计人员。另外,培养一个硬件工程师比较难,而且时间也比较长。所以企业一般不会主动去培养一个硬件工程师,并且也不会轻易放弃一个硬件工程师。由于前软件工程师居多,企业可供选择的机会也多,所以软件工程师的流动性要高。不过相对来说,软件工程师的起薪比硬件工程师要高的多,而经验丰富的软件工程师也是非常受到企业欢迎的。嵌入式技术大体上可以分为以下几个部分,编程语言,内核技术,操作系统,总线接口,系统集成。嵌入式软件工程师的技术范围分成下面几个等级:1、初级:8051或其他单片机,UCOS,I2C,SPI,UART。汇编和C能力一般,系统集成能力弱。2、中级:在初级的基础上,ARM/MIPS,其他一些RTOS并了解Linux,SDIO,USB。汇编和C能力不错,有一定系统集成能力。3、高级:主要是对中级的进阶,这一个层面已经不在于掌握具体的技术,而是掌握当前流行技术中的基本思想和构成方式,所以任何流行的技术,对于这一阶段来说,都是手到擒来的。ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)(2)必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。嵌入式软件工程师需要具有4个能力:能力1:对C语言的深入掌握,不犯低级语法错误。能力2:对嵌入式芯片平台熟悉,包括芯片各类外设的原理和使用方法,以及相应的嵌入式操作系统。还包括芯片外围电路的设计能力,包括AD采样、IO电平变换,PWM输出,电源电路等。能力3:对算法的精通,包括常规的平均值、有效值计算法,低通、带阻滤波器,PI、PR控制器,以及产品需要的专用控制算法等。能力4:软件架构设计能力,能做到程序执行时间短(时间复杂度低),占用数据空间少(空间复杂度低),以减少对中断时间和芯片内存的过分要求。能满足程序封装、继承、健壮的要求