嵌入式工程师经验

上传人:E**** 文档编号:109426570 上传时间:2019-10-26 格式:PDF 页数:20 大小:337.51KB
返回 下载 相关 举报
嵌入式工程师经验_第1页
第1页 / 共20页
嵌入式工程师经验_第2页
第2页 / 共20页
嵌入式工程师经验_第3页
第3页 / 共20页
嵌入式工程师经验_第4页
第4页 / 共20页
嵌入式工程师经验_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《嵌入式工程师经验》由会员分享,可在线阅读,更多相关《嵌入式工程师经验(20页珍藏版)》请在金锄头文库上搜索。

1、不可不知的嵌入式工程师经验不可不知的嵌入式工程师经验 时间:2012-08-24 21:07:55 来源: 作者: 关键字:嵌入式工程师 经验 本文将从技术和就业经验等角度为即将进入嵌入式开发的工程师们, 详细讲述了 嵌入式的概念, 嵌入式开发之间的异同以及应该如何做出选择。以下都是前辈的 一些经验之谈,希望对大家有所帮助。 第一第一.工程师眼中的“嵌入式系统”.工程师眼中的“嵌入式系统” 在工程师看来:着重理解“嵌入”的概念,主要从三个方面上来理解。 1.从硬件上,将基于 CPU 的处围器件,整合到 CPU 芯片内部,比如早期基于 X86 体系结构下的计算机,CPU 只是有运算器和累加器的功

2、能,一切芯 片 要靠外部 桥路来扩展实现, 象串口之类的都是靠外部的 16C550/2 的串口控制器芯片实现。 目前的这种串口控制器芯片早已集成到 CPU 内部,还有 PC 机有 显卡,而多数嵌 入式处理器都带有 LCD 控制器,但其种意义上就相当于显卡。比较高端的 ARM 类 Intel Xscale 架构下的 IXP 网络处理器 CPU 内部集成 PCI 控制器(可配成支持 4 个 PCI 从设备或配成自身为 CPI 从设备);还集成 3 个 NPE 网络处理器 引擎, 其中两个对应于两个 MAC 地址, 可用于网关交换用,而另外一个 NPE 网络处理 器引擎支持 DSL,只要外面再加个

3、PHY 芯片即可以实现 DSL 上网功能。IXP 系列 最高主频可以达到 1.8G,支持 2G 内存,1G10 或 10G1 的以太网口或 Febre channel 的光通道。IXP 系列应该是目标基于 ARM 体系统结构下由 intel 进行整 合后成 Xscale 内核的最高的处理器了。 2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下 载到 ROM 中。而在定制操作系统内核时所选择的应用程序组 件就是完成了软件 的“嵌入”, 比如 WinCE 在内核定制时, 会有相应选择, 其中就是 wordpad, PDF, MediaPlay 等等选择,如果我们选择 了,在

4、CE 启动后,就可以在界面中找到这 些东西,如果是以前 PC 上将的 windows 操作系统,多半的东西都需要我们得新 再装。 3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的 ROM 中就实 现了一个真正的“嵌入”。 以上的定义是我在 6、7 年前给嵌入式系统下自话侧重于理解型的定义,书上的 定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包 括那些专家学者们,因为毕竟嵌入式系统是计算机范畴下的一门综合性学科。 二.二.嵌入式系统的分层及对口专业要求嵌入式系统的分层及对口专业要求 嵌入式系统分为 4 层,硬件层、驱动层、操作系统层和应用层。 1.1.硬件层:

5、硬件层:是整个嵌入式系统的根本。如果现在单片机及接口这块很熟悉,并且 能用 C 和汇编语言来编程的话,从嵌 入式系统的硬件层走起来相对容易,硬件 层也是驱动层的基础, 一个优秀的驱动工程师是要能够看懂硬件的电路图和自行 完成 CPLD 的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。 但 硬件平台是基础,增值还要靠软件。 硬件层比较适合于电子、通信、自动化、机电一体、信息工程类专业的人来搞。 需要掌握的专业基础知识,有:单片机原理及接口技术、微机原理及接口技术、 C 语言等。 2.2.驱动层驱动层:这部分相对而言比较难。驱动工程师不仅要能看懂电路图,还要能对 操作系统内核十分的精通

6、,以便其所 写的驱动程序在系统调用时,不会独占操 作系统时间片, 而导至其它任务不能动行。若不懂操作系统内核架构和实时调度 性、没有良好的驱动编写风格、按大多数书上所说添加的驱动的方式,这样可能 连个 初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同 windows 下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的 程 序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有 三、四年功底,操作系统内核不研究上几遍,不是太容易成功的,但其工资在嵌 入式系统 四层中可是最高的。 驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算 机偏体

7、系结构类专业的人来搞。 当然除硬件层所具备的基础学科外,还要对数据 结构与算法、操作系统原理、编译原理都要十分精通。 3.3.操作系统层操作系统层:对于操作系统层而言目前可能只能说是简单的移植, 而很少有人 来自已写操作系统,或者写出缺胳膊 少腿的操作系统来,这部分工作大都由驱 动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入 式系统的实时性十分重要。据说,XP 操作系统是微软投入 300 人用两年时间才 搞 定的,总时工时是 600 人/年;中科院软件所自己的女娲 Hopen 操作系统估计 也得花遇几百人/年才能搞定。因此这部分工作相对来讲没有太大意义。 4.4.应用层

8、:应用层: 相对来讲较为容易。 如果会在 windows 下如何进行编程接口函数调用, 到操作系统下只是编译和开 发环境有相应的变化而已。如果涉及 Jave 方面的 编程也是如此的。 嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结 到嵌入式系统范畴内。 但如果涉及嵌入式系统下面嵌入式数据库、 基于嵌入式 系 统的网络编程和基于某此应用层面的协议应用开发(比如基于 SIP、H.323、 Astrisk)方面又较为复杂,并且有难度了。 三.三.目标与定位目标与定位 先有目标,再去定位。 学 ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和 C 语言的板级编程。如果从软

9、件上讲,就是要学习基于 ARM 处理器的操作 系 统 层面的驱动和移植了。这些对于初学者来说必须明确,要么从硬件着手开始学, 要么从操作系统的熟悉到应用开始学,但不管学什么, 只要不是纯的操作系统级 以 上基于 API 的应用层的编程,硬件的寄存器类的东西还是要能看懂的、基于 板级的汇编和 C 编程还是要会的。 因此针对于嵌入式系统的硬件层和驱动层的人 来 说, ARM 的接口电路设计、ARM 的 C 语言和汇编语言编程及调试开发环境还是 需要掌握的。 对于初学者必然要把握住方向,自己的目标是什么,自己要在哪一层面上走。然 后再着手学习才比较好, 与 ARM 相关的嵌入式系统的较为实际的两个层

10、面硬件层 和驱动层,不管学好了那一层都会很有前途的。 如果想从嵌入式系统的应用层面的走的话,可能与 ARM 及其它体系相去较远,要 着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如 WinCe 操 作系 统下的 EVC 应用开发 (与 windows 下的 VC 相类似), 如果想再有突破就往某些音 视频类的协议上靠,比如 VOIP 领域的基于 SIP 或 H.323 协议的应用层开发,或 是基于 嵌入式网络数据库的开发等等。 对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结 合自身特点, 嵌入式系统四个层面上无论哪个层面上来讲都是有高人存在, 当 然 高人 也对

11、应的高工资。我是做硬件层的,以前每月工资中个人所得税要被扣上 近 3 千大元。当然我一方面充当工程师的角色,一方面充当主管人物的角色,两 个职位我一 个人干, 但上班时间就那些。 硬件这方面上可能与我 PK 的人很少了, 才让我拿到那么多的工资。 四.四.如何选择合适的开发系统如何选择合适的开发系统 很多 ARM 初学者都希望有一套自己能用的系统, 但他们住住会产生一种错误认识 就是认为处理器版本越高、 性能越高越好, 就象很多人认为 ARM9 与 ARM7 好,我 想对于初学者在此方面以此入门还应该理智, 开发系统的选择最终要看自己往嵌 入式系统的那个方向上走, 是做驱动开发还是应用,还是做

12、嵌入式系统硬件层设 计 与板级测试。 如果想从操作系统层面或应用层面上走,不管是驱动还是应用, 那当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月 或半年 或是一年二年能搞定的事。 在某种意义上请,ARM7 与 ARM9 的差别就是在某些功能指令集上丰富了些,主频 提高一些而已,就比如 286 和 386。对于用户来讲可能觉查不到什么,只能是感 觉速度有些快而已。 ARM7 比较适合于那些想从硬件层面上走的人,因为 ARM7 系列处理器内部带 MMU 的很少,而且比较好控制。就比如 S3C44B0 来讲,可以很容易 将 Cache 关了, 而且内部接口寄存器很容易看明白,

13、各种接口对于用硬件程序控制或 AXD 单步命 令行指令都可以控制起来。 基于 51 单片机的思想很容易能把他 搞懂,就当成个 32 位的单片机,从而消除很多 51 工程师想转为嵌入式系统硬件 ARM 开发工程师 的困惑, 从而不会被业界某此不是真正懂嵌入式烂公司带到操作 系统层面上去, 让他们望而失畏,让业界更加缺少这方面的人才。 而嵌入式系统不管硬件设计还是软件驱动方面都是十分注重接口这部分的, 选择 平台还要考察一个处理器的外部资源, 你接触外部资源越多, 越熟悉他们那你 以 后就业成功的机率就越高, 这就是招聘时所说的有无“相关技能”,因为一个人 不可能在短短几年内把所有的处理器都接触一

14、遍, 而招聘单位所用的处理器就可 能是 我们完全没有见过的,就拿台湾数十家小公司(市价几千万)的公司生产的 ARM 类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能 招有相 关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口 设计, 在软件上讲是操作系统方面相关接口驱动及应用开发经验。 我从业近十年, 2000 年 ARM 出现,我一开始做 ARM7,然后直接跑到了 Xscale(这个板本在 ARM10-11 之间),一做就是五年,招人面试都不下数百人,在这些方面还是 深 有体会的。 我个人认为三星的 S3C44b0 对初学者来说比较合适,为什么这么说哪?因为接口

15、 资源比较丰富,技术成熟,资料较多,应该十分适合于初学者。有问题 可 能很 容易找人帮且解决,因为大多数人都很熟悉,就如同 51 类的单片机,有 N 多位 专家级的人物可以给你帮忙, 相关问题得以很快解答, 所然业界认为这款 ARM 都 用得烂了,但对于初学者来,就却是件好事。 总的来说,开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资 源、还要看业界的通用性。 五.五.如何看待培训如何看待培训 首先说说我自己,我目前从业近十年,与国内嵌入式系统行业共同起步,一直站 在嵌入式系统行业前沿:设计过多款高端嵌入式系统平台产品并为众多公司提 供 过解决方案;离职前为从事 VOIP 的美资

16、公司设计 IP-PBX;历任项目经理、项 目主管、技术总监、部门经理;积累众多人脉,并集多年经验所得;考虑到学 生 就业与公司招人的不相匹配, 公司想招人招不到,而学生和刚毕业的工程师想找 份工作也不太容易,于此力创知天行科技有限公司,开展嵌入式系统教育培训。 因一线的科研人员和一线的教师不相接触,导致国内嵌入式人才缺乏。 国外高校 的技术超前于业界公司,而国内情况是业界公司方面的嵌入式系统技术要远远 领 先于高校。为架构业界与高校沟通的桥梁,把先进技能带给高校学子,为学 生在就业竞争中打造一张王牌, 并为业界工程师快速提升实现自我创造机遇,我 就这样辞 去了外企年薪 20 多万的职位,做嵌入式系统方面的培训了。 对于培训来讲,是花钱来买时间,很多工程师都喜欢自己学,认为培训不值,这 也是有可能的。 纯为赚钱的培训当然不会太有价值, 但对于实力型的培训他们 可 能就亏大了。有这样一笔帐不知他们算过没有,如果一个一周的培训,能带给他 们自学两年后才能掌握的知识, 在培训完后他们用三个月到半年时间消化培训内 容,这样他会省约至少一年半的时间来学其它的或重新站在另一个高度上工作, 那么

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号