您的位置:首页 > 其它

职位分析:Sr. Embedded Software Engineer

2008-09-04 13:23 211 查看
-Driver development experience with programming language of C, C++ in Linux is
required
-At least one the following experiences of device driver: Ethernet
Switch chip, PON chipset.
-Knowledge in common used HW interface/components
such as Ethernet (MAC), UART, I2C,SPI,USB , HDLC , PCI and NAND flash is
required.
-Experience of Linux shell programming is a plus
-Experience of
Clearcase is required;
-Experience of software modeling tools such as
Rational Rose is a plus;
-System level knowledge in broadband access product
or transport product is a plus.
Driver development in Linux一般而言,固件工程师的要求要高于应用软件工程师的层次,而其中的Linux设备驱动编程又是Linux程序设计中比较复杂的部分,究其原因,主要包括如下几个方面:
  (1)设备驱动属于Linux内核的部分,编写Linux设备驱动需要有一定的Linux操作系统内核基础;
  (2)编写Linux设备驱动需要对硬件的原理有相当的了解,大多数情况下我们是针对一个特定的嵌入式硬件平台编写驱动的;
  (3)Linux设备驱动中广泛涉及到多进程并发的同步、互斥等控制,容易出现bug;
  (4)由于属于内核的一部分,Linux设备驱动的调试也相当复杂。
关于Linux驱动开发这部分内容专文讨论。Ethernet Switch chip, PON chipsetEhternet Switch chip, 以太网交换芯片Passive Optical Network(PON), 无源光网络Ethernet PON(EPON)一些关键词汇:DMA、三层、两层详见以太网交换相关内容的帖子Knowledge in common used HW interface/components such as Ethernet (MAC), UART, I2C,SPI,USB , HDLC , PCI and NAND flash
MAC: Media Access Control 媒体存取控制UART: 通用异步收发器(UART)是一种串行接口,许多微处理器和微控制器中都包含这种外设接口。异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。如果再加入一个合适的电平转换器,串口还能用在RS-232和RS-485网络中通信,或者与计算机的COM端口连接。串口只需两根信号线(Rx和Tx)即可实现,而且只要两端器件都采用同样的位格式和波特率,那么它们无需其它任何对方的信息就可以成功传输数据。
http://en.wikipedia.org/wiki/UART
I2C: Inter-Integrated Circuit总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。http://en.wikipedia.org/wiki/I²C
http://linux.chinaunix.net/techdoc/develop/2008/07/21/1018792.shtml
http://www.mcufan.com/xinshou/mcu-iic.htm

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如P89LPC900
http://www.eefocus.com/html/07-01/061002596858.shtml
USB: USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。目前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。HDLC: 高级数据链路控制(High Level Data Link Control protocol)高级数据链路控制(HDLC)协议是基于的一种数据链路层协议,促进传送到下一层的数据在传输过程中能够准确地被接收(也就是差错释放中没有任何损失并且序列正确)。HDLC 的另一个重要功能是流量控制,换句话说,一旦接收端收到数据,便能立即进行传输。HDLC 具有两种不同的实现方式:高级数据链路控制正常响应模式即 HDLC NRM(又称为SDLC)和 HDLC 链路访问过程平衡(LAPB)。其中第二种使用更为普遍。HDLC 是 X.25 栈的一部分。HDLC 是面向比特的同步通信协议,主要为全双工点对点操作提供完整的数据透明度。它支持对等链路,表现在每个链路终端都不具有永久性管理站的功能。另一方面,HDLC NRM 具有一个永久基站以及一个或多个次站。
http://www.networkdictionary.cn/protocols/hdlc.php
PCI: Peripheral Component InterconnectNAND: NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
  相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
  NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
  NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。
NAND和NOR的差别Linux shell programming
《UNIX Shells by example》System level knowledge in broadband access product or transport product
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: