PDA,英文全称Personal Digital Assistant,即个人数码助理,一般是指掌上电脑。相对于传统电脑,PDA的优点是轻便、小巧、可移动性强,同时又不失功能的强大,缺点是屏幕过小,且电池续航能力有限。PDA通常采用手写笔作为输入设备,而存储卡作为外部存储介质。在无线传输方面,大多数PDA具有红外和蓝牙接口,以保证无线传输的便利性。许多PDA还能够具备Wi-Fi连接以及GPS全球卫星定位系统。
便携性介于传统PC和PDA之间的个人电脑产品有笔记本电脑及平板电脑。
第一款PDA是1992年由苹果电脑出品的Newton。但这一款产品在商业上很不成功。后来出现了专门为了手写输入的Graffiti输入法,一家利用此方法作为输入法的PDA公司推出了Palm这一个系列的产品,并获得了巨大的成功。在20世纪末,微软进入这一个领域,并首先推出了Windows CE 1.0操作系统,但该系统在各方面表现并不尽如人意,但后来微软推出的Windows Pocket Edition 2002一举奠定了PPC操作系统领先的地位。
目前最受欢迎的掌上电脑操作系统平台分别有Palm OS及微软Windows Mobile系列。
· [编辑本段]初识PDA PDA具备了一台电脑主机的基本结构,因此它也拥有电源开关、屏幕开关、硬启动和软启动按钮。由于PDA将很多资料保存在RAM中,因此它时时刻刻需要电力。一般情况下,我们总是将电源开关始终处于打开状态,此时将只对RAM供电,对电能的消耗并不是很大。而当我们真正需要使用的时候,屏幕开关是必须打开的。事实上,屏幕开关也具有系统激活功能。一旦打开它,我们的PDA就可以从待机状态回复到工作状态。
至于软启动(Reset)按钮,它主要用于对付死机现象。软启动并不会造成ROM以及RAM资料丢失,只不过未保存的应用程序可能会丢失信息,这与台式机中的Reset按钮是基本类似的。为了防止用户误碰Reset按钮,它往往被设计在比较隐蔽的地方,而且需要细小的物体才能伸进去触及。相对而言,我们对于硬启动要更加慎重一些。使用硬启动之后,保存在RAM中的信息都将被无条件清空,只保留ROM中的操作系统。如果没有特殊的需要,一般情况下不要经常使用该按钮。
PDA一般都不配备键盘,而用手写输入或语音输入。PDA所使用操作系统主要有Palm OS,Windows CE和EPOC。PDA的发展可以追溯到Apple公司于1993年推出的Newton Message Pad。之后不久,就有产商推出类似产品。目前,PDA的价格还偏高,但专家们相信,它将最终走进“寻常百姓家”,成为真正的“个人数字助理”。以上所说的是广义的PDA。
在第一次使用PDA之前,我们必须对输入笔进行调整,不然PDA屏幕可能会无法正确感应,造成操作失误。
跟随着调整向导,我们可以十分方便地做好这一步。需要明确的是,在PDA操作系统中,点击相当于鼠标左键,长时间点击不放相当于鼠标右键。
系统设置与软件安装
任何一款操作系统都不可能适合每个用户的需求,因此我们必须对PDA进行相应的调整。PDA的操作系统将各项设置功能集中在一起,无论是Palm还是Pocket PC都是如此。首先我们要注意的是PDA上的多个快捷键,以Pocket PC为例,在“设置”→“按键”这一位置,我们可以针对不同的按钮选定相对应的应用程序,这与大家所熟悉的多媒体键盘有些类似。当然,我们还可以在这里设定滚动条的速度。至于时钟设定、区域设定、电源节能设定、机主设定等,都与台式机十分类似,在此我们就不逐一说明了。
PDA为了保证运行速度而将所有的应用程序植入RAM,因此它不存在硬盘的概念。但是这也随之带来一些问题,因为系统运行所需要的内存与应用程序占用的内存是公用。如今主流PDA的RAM容量为16~64MB,很可能不够用。对此,需要我们自己权衡利弊,在“设置”→“内存”中进行调整。当然,我们也可以让操作系统自动调整,不过效果似乎不如手动调整好。
与台式机同步
由于软件架构上的巨大区别,PDA上的应用程序与传统台式机差异较大,即便是相同的Word文档,在PDA上的格式与台式机上的格式还是略有不同。显然,凭借PDA现今的硬件水准,它还无法做到完全独立工作,因此借助台式机的帮助是十分必要的,这也就是我们为何要将PDA与台式机进行同步的原因。
做到PDA与台式机同步并不困难,我们需要的仅仅是同步软件和传输线。以Windows CE阵营为例,微软推出的ActiveSync几乎是唯一的选择,我们推荐大家使用最新的3.5中文版。
首先在不连接PDA数据线的情况下直接安装ActiveSync 3.5,随后我们可以看到桌面右下角的小图标。对于采用USB接口的PDA,我们可以直接将数据线连上台式机的USB端口,此时系统会自动识别,并且ActiveSync 3.5也会自动激活,成为绿色图标。之所以要求大家先安装ActiveSync 3.5后连接数据线是因为ActiveSync 3.5包含了PDA的驱动,只有在安装后才能让Windows识别出PDA。如果我们采用串口或者红外线端口进行连接,那么必须在ActiveSync 3.5中手工启动,同时不要忘记打开台式机或者笔记本的红外线端口。
同步完成之后,我们可以用ActiveSync 3.5对IE收藏夹、Outlook文档等进行同步。如果有其它同步需求的话,也可以在此一一设定。还可以对其他公司的PIM产品如Lotus Organizer、Symantec ACT!、Sidekick、ECCO、Day-Timer Organizer Maximizer以及GoldMine等等进行信息同步。不过,如果仅仅是简单地拷贝一些文件至PDA,那么我们完全可以利用资源管理器,这样操作起来更为方便。在Windows资源管理器中,我们可以看到“移动设备”,这就是我们的PDA啦。通过复制粘贴或者简单的拖曳,我们就能完成数据交换。智能化的ActiveSync 3.5会在复制文件时为我们自动转换格式,这点无需担心。
至于采用Palm OS的PDA,我们所选择的自然是大名鼎鼎的Palm Desktop。
与ActiveSync 3.5相比,Palm Desktop的功能要强大得多,它可以将Palm的许多功能扩展到计算机上。用USB数据线连接Palm与台式机后,Palm Desktop会自动识别并作出同步处理,在Palm上或Palm Desktop上所做的修改会同时出现在Palm和台式机上。Palm Desktop最大的特色是可以让用户在台式机上使用Palm应用程序,而且将日程表、通讯录、任务列表和便笺等应用程序同步。
软件安装与卸载
操作系统所提供的几个简单的应用程序是无法满足我们需求的,安装第三方应用程序才是非常必要的。这些第三方应用程序会被安装在RAM内存中,需要注意的是,使用硬启动之后,这些第三方应用程序都将会被删除。
Palm与Pocket PC应用程序的安装方法略有区别。Palm应用程序要通过Palm Desktop来安装,先将所要安装的应用程序拷贝到Palm Desktop目录下的“Add-on”子目录中,运行Palm Desktop之后,单击安装按钮,打开Palm安装工具对话框,我们可以从中选择需要安装的内容,然后就是大家所熟悉的Next。相对而言,PocketPC应用程序的安装更为简单一些,在保证同步连接的前提下,我们可以在台式机硬盘上的任一目录直接执行安装程序,此时该程序会自动安装到PDA中。
当某个应用程序己不再需要时,我们可以从系统中删除它。不过能够被删除的应用程序只能是你添加在RAM的应用程序,那些存放在ROM中的应用程序是不能被删除的。在Palm OS以及Pocket PC中,删除程序也要通过Palm Desktop或者ActiveSync来实现。 [编辑本段]架起Internet的桥梁 尽管屏幕尺寸较小,使用PDA上网还是别有一番乐趣。如果为PDA配备普通56K Modem,那么拨号上网并不难,基本方法与台式机完全一致。但是这种上网方式无论是成本还是速度都难以令人满意,我们需要更加出色的连接方案。
·通过USB接口共享上网
这种方法几乎不需要额外花费任何投资,而且速度也有保障,唯一的不足便是需要连接台式机。事实上,共享上网就是将台式机视为Proxy服务器,因此我们需要在台式机中安装代理服务器软件。我们推荐小巧而且免费的AnalogX Proxy。在台式机上安装好AnalogX Proxy之后,我们可以看到当前台式机的IP地址。然后在PDA的浏览器中设定代理服务器,其中代理服务器地址就是台式机的IP地址,端口为6588。完成设定之后,PDA就可以通过台式机的Proxy上网了。
·使用蓝牙对等网
尽管共享成本很低,但是毕竟使用起来有束缚感。如果你的PDA已经具备了蓝牙网卡的话,我们还可以采用更加先进的无线上网。而此时所要添加的仅仅是用于台式机的蓝牙适配器,它的价格在300元左右。
首先进行PDA连接单元中的网卡属性设置。为了通过对等网蓝牙连接,我们必须为当前网卡设定IP地址,一般设定为192.168.0.2,子网掩码设定为255.255.255.0,默认网关保持空白。不要设置PDA上网卡对应的DNS域名解析,不然会导致对等网失效。随后,将台式机的蓝牙适配器IP地址设定为192.168.0.3,保证两者在同一网段。
PPC操作系统上IE默认的连接方式是使用Modem,因此我们还得对连接设备进行更改,直接进入连接设置将Modem选择为Bluetooth即可。最后我们不能忘记在IE中设置代理服务器,其地址就是台式机上蓝牙网卡的IP地址,端口一般设定为80。
·IEEE802.11b无线上网
事实上,无线网络技术中,IEEE802.11b也相当不错,速度以及有效传输范围都胜过蓝牙。当我们添加一块CF接口的IEEE802.11b网卡之后,就可以在IEEE802.11b无线路由器的帮助下上网了。令人高兴的是,由于IEEE802.11采用自动配置,因此我们根本不需要进行任何设定,对于不在乎成本的用户而言,这无疑是最佳的解决方案。
·GPRS无线上网
运用GPRS无线互联,可以随时与人沟通、及时获取信息,延伸我们的“手”和“眼”。在GPRS手机的帮助下,我们的PDA也可以做到无线上网。利用GPRS手机上网时,我们要通过红外线进行连接。
在PDA中配置红外线十分简单,使用大家较为熟悉的拨号向导即可。首先建立一个Internet连接,这一步最重要的是在选择设备时选择“红外线Modem”,这一点在后来是否能够实现顺利上网是关键的一步。下一步就要输入上网的拨号号码,对于国内的GPRS 业务来说,拨“*99#”就可以实现上网,至于区号就不用填了。在接下来弹出的Timeout设定以及额外拨号对话框也可以完全忽视,不用填任何东西,最后给这个拨号取个名字,一个连接就建好了。当然,在使用时必须保证手机开通了GPRS服务,同时打开手机的红外线端口,并且注意摆放角度。
更方便的是使用PDA专用的GPRS背夹。正确安装厂商特别提供的GPRS无线网卡驱动之后,我们就可以在系统属性中看见相关的设备。只有在保证这一点的前提下才能进行下一步的设置。打开GPRS连接向导之后,我们可以输入用户名、密码、DNS等信息,由于大多数GPRS无线网卡都有十分出色的连接向导,因此设置还是较为直观方便的。 [编辑本段]PDA功能扩展与升级 如今PDA的发展速度十分迅猛,而且在价格战的趋势下,很多产品也不断简化功能,让用户自行后期扩充。为此,很多用户在使用过程中都会碰到升级、扩展等问题。
·升级操作系统的方法
PDA的操作系统安装于ROM中,一般不可以修改。然而,有时我们的PDA需要更换或者升级操作系统,这就需要通过刷新ROM来实现。一般而言,更新ROM的方法有两种,一种是使用官方的升级包,另一种便是通过专用的ROM更新程序进行升级。
一般而言,有些厂商会推出一些官方的操作系统升级安装包,譬如Compaq iPAQ3630,由于刚刚上市时仅仅采用PPC2000,因此Compaq现在开始提供PPC2002升级。从Compaq官方网站下载升级包之后,连接好数据线,直接执行升级程序。整个升级过程非常轻松,无非是一路Next,只要保证在刷新过程中不死机即可,因此强烈建议大家在刷新时关闭所有的应用程序。
至于通过专用的ROM更新程序进行升级,这可能会牵涉到一些版权问题,但是用户互相之间的非商业交流还是允许的。以Compaq iPAQ3630为例,我们也可以采用这种方法来升级。下载到升级ROM之后,首先在关闭ActiveSync的情况下按住POWER和ACTION键不放,同时按下Reset,随后执行HOST11.EXE,ROM刷新就会开始执行。当然,不同的PDA有不同的刷新程序,如联想的XP系列采用Home+Reset键唤出Bootloader程序,因此大家还是要查阅产品的说明书。
为了尽可能的使刷新过程安全,建议大家在刷新之前先将ROM资料备份到RAM中,不过一般PDA并不会提供这一功能,因此需要我们借助BootBlaster软件,BootBlaster的使用极为简单,进入“FLASH”菜单,选“Save Wince .gz Format”,随后它会将ROM信息保存到My Documents目录下。事实上,备份出的.gz文件可以用Winzip解压。当我们需要恢复ROM时,只要将其改名为nk.nb0,然后执行HOST11.EXE刷新工具即可(HOST11.EXE可以在各种ROM升级包中找到)。其实,采用这种方法也可以让两台同型号的PDA复制ROM,只是大家要注意版权问题。
相对而言,Palm OS的升级要困难得多,大多数采用Palm OS4.1的产品想升级到Palm OS5.0几乎是不可能的,因为新版本的Palm OS不再支持龙珠处理器。此外,近几年Palm的硬件架构变化较大,这也给操作系统升级带来了不便。
·扩展PDA功能
由于便携性以及成本方面的考虑,不少PDA在功能上都有所欠缺,有时候只有通过设备扩充才能满足我们的需求。在设备扩充中,闪存卡自然是首当其冲的。
目前可以用于PDA的闪存规范有CF、SONY记忆棒、SD/MMC以及SmartMedia。相对而言,CF与Smartmedia的成本较低,不过由于SmartMedia不具备控制器,因此采用CF接口的更多一些。对于那些直接集成CF接口设备的PDA,我们只要选购CF闪存卡即可,目前CF闪存卡的价格十分诱人,256MB的也才600元左右。(在2006年以后,很多PDA支持SD卡扩充容量,当前2GB的SD卡仅售40多元,所以能够以SD为扩展模式的PDA不建议使用昂贵的CF卡)
其实,我们无需对PDA支持的CF最大容量担心,因为CF的控制器集成于闪存卡本身,而不是CF读写器,这点与SmartMedia有显著区别。然而遗憾的是,价格便宜的CF也有致命的缺点,那就是过大的功耗。在CF卡的消耗下,PDA主机电池工作时间会大大缩短,而且加载CF读写器会造成PDA体积增大,影响便携性。因此,如今更多的产品直接集成SD接口。SD不仅在速度上胜过CF而且功耗较,唯一不足的是较高的价格。至于SONY记忆棒,它只能在SONY的产品上使用,应用范围相对狭窄。
在如今的PDA中,背夹概念正逐渐形成。通过各种背夹,我的PDA可以十分方便地扩展PCMCIA插槽、CF插槽、GPRS网卡、蓝牙网卡等。当我们不需要这些设备时就可以将背夹卸下,这样也提高了便携性。对于一款PDA而言,能够使用PCMCIA背夹无疑是幸福的,因为几乎所有种类的产品都有采用PCMCIA接口的型号,而且价格也比采用特殊接口的产品便宜不少。相对而言,CF与SD的应用面要狭窄一些,特别是后者。尽管东芝已经推出了SDIO标准,可以使用SD接口的网卡设备,但是SD产品还是奇货可居,价格更是高得惊人。此外,并非所有的SD接口都能支持SDIO,这是大家在扩充设备时需要注意的。
相对而言,不少用户更关注PDA的电池问题。如今的电池技术实在令人不敢恭维,而且随着时间的推移,即便是锂离子电池也会缩短使用时间。为此,采用各种带有电池的背夹是不错的选择,它们的容量在900~1600mAh之间,对于那些需要使用CF卡或者无线网卡的用户,我们强烈建议大家多花几百元买一款同时带有电池的背夹,毕竟CF卡以及无线网卡都是电老虎。
除了功能扩充,PDA的输入设备也值得关注。部分用户几乎一直在用PDA的手写笔输入文字,这确实太累了,可以考虑购买专为PDA设计的折叠式键盘。Pocketop、Stowaway、BenQ、罗技等公司都推出了不少型号的PDA键盘,我们的选择余地还是很大的。
嵌入式培训怎么样
你好。我的情况和你差不多。不过我是忙考研去了。。 关于嵌入式的培训我给你点我个人的意见吧。我本科专业是计算机科学与技术。专业课程学的还可以。培训这个就好像考研的辅导班。有用但是有时候有没用。。。这个时候最忌讳的就是病急乱投医。很多培训机构的老师真的水平很操蛋。至少我去过两家培训机构。和那的老师交谈了一下。也顺便问了些问题。他们的答案我觉得很不专业。比如我问。在嵌入式开发中。最难把握的环节是哪个部位吧。这个问题搞死了很多老师。。正确答案是 接口时序的安排 。呵呵 你可以想象。你1万多打出去遇上这样的老师你想高薪就业。表想了。。。。我现在是在EMULE 上看到了有关ARM 的嵌入式开打视频。我现在在跟着学。感觉跟上有难度。(我个人认为我不算菜鸟吧。我有LINUX内核阅读经历。RADHAT 9 还算熟练。也写过些小SHELL 。200行左右。)。。。。。。。其实很多人看这个培训。主要是看中它所说的推荐工作。还有以后的待遇。其实嵌入式有很多方向的。。。。还有一点我要提醒你。一定要根据兴趣去学习。。。 不要因为人家说这个吃香你就去。 那个有资料你就学。。。。。我强烈建议你在网上找些嵌入式的视频看看。。看看自己能不能行。有没兴趣。。。。就算你要去培训。就当是预习吧。我有同学已经在培训了。。。他告诉我。他的干就就是。。。风吹书。。。。还有 一下是一个高级工程师的成长经历。你可以看看。。。对了 还有 表忘了给我分 嘿嘿嘿
本文将从技术和就业经验等角度为即将进入嵌入式开发的程序员们,详细讲述了嵌入的概念,嵌入式开发之间的异同以及应该如何做出选择,希望对大家有所帮助。
一、嵌入式系统的概念
着重理解“嵌入”的概念
主要从三个方面上来理解。
1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC 机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到 1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由 intel进行整合后成Xscale内核的最高的处理器了。
2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。
3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。
以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科
二、嵌入式系统的分层与专业的分类。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。
硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。
2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。
三、目标与定位
先有目标,再去定位。
学 ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面的驱动、移植了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上基于 API的应用层的编程,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。因此针对于嵌入式系统的硬件层和驱动程的人,ARM的接口电路设计、ARM的C语言和汇编语言编程及调试开发环境还是需要掌握的。
因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。
如果想从嵌入式系统的应用层面的走的话,可能与ARM及其它体系相去较远,要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如WinCe 操作系统下的EVC应用开发(与windows下的VC相类似),如果想再有突破就往某些音视频类的协议上靠,比如VOIP领域的基于SIP或H.323 协议的应用层开发,或是基于嵌入式网络数据库的开发等等。
对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应的高工资,我是做硬件层的,以前每月工资中个人所得税要被扣上近3千大元,当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间就那些。硬件这方面上可能与我PK的人很少了,才让我拿到那么多的工资。
四、开发系统选择。
很多ARM初学者都希望有一套自己能用的系统,但他们住住会产生一种错误认识就是认为处理器版本越高、性能越高越好,就象很多人认为ARM9与 ARM7好,我想对于初学者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的那个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操作系统层面或应用层面上走,不管是驱动还是应用,那当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。
在某种意义上请,ARM7与9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如286和386。对于用户来讲可能觉查不到什么,只能是感觉速度有些快而已。
ARM7比较适合于那些想从硬件层面上走的人,因为ARM7系列处理器内部带MMU的很少,而且比较好控制,就比如S3C44B0来讲,可以很容易将 Cache关了,而且内部接口寄存器很容易看明白,各种接口对于用硬件程序控制或AXD单步命令行指令都可以控制起来,基于51单片机的思想很容易能把他搞懂,就当成个32位的单片机,从而消除很多51工程师想转为嵌入式系统硬件ARM开发工程师的困惑,从而不会被业界某此不是真正懂嵌入式烂公司带到操作系统层面上去,让他们望而失畏,让业界更加缺少这方面的人才。
而嵌入式系统不管硬件设计还是软件驱动方面都是十分注重接口这部分的,选择平台还要考察一个处理器的外部资源,你接触外部资源越多,越熟悉他们那你以后就业成功的机率就越高,这就是招聘时所说的有无“相关技能”,因为一个人不可能在短短几年内把所有的处理器都接触一遍,而招聘单位所用的处理器就可能是我们完全没有见过的,就拿台湾数十家小公司(市价几千万)的公司生产的ARM类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能招有相关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口设计,在软件上讲是操作系统方面相关接口驱动及应用开发经验。我从业近十年,2000年ARM出现,我一天始做ARM7,然后直接跑到了Xscale(这个板本在ARM10-11之间),一做就是五年,招人面试都不下数百人,在这些方面还是深有体会的。
我个人认为三星的S3C44b0对初学者来说比较合适,为什么这么说哪?因为接口资源比较丰富,技术成熟,资料较多,应该十分适合于初学者,有问题可能很容易找人帮且解决,因为大多数人都很熟悉,就如同51类的单片机,有N多位专家级的人物可以给你帮忙,相关问题得以很快解答,所然业界认为这款 ARM都做用得烂了,但对于初学者来,就却是件好事。
因此开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资源、还要看业界的通用性。
五、如何看待培训。
首先说说我自己,我目前从业近十年,与国内嵌入式系统行业共同起步,一直站在嵌入式系统行业前沿,设计过多款高端嵌入式系统平台产品并为众多公司提供过解决方案,离职前为从事VOIP的美资公司设计IP-PBX,历任项目经理、项目主管、技术总监、部门经理,积累众多人脉,并集多年经验所得,考虑到学生就业与公司招人的不相匹配,公司想招人招不到,而学生和刚毕业的工程师想找份工作也不太容易,于此力创知天行科技有限公司,开展嵌入式系统教育培训。
因一线的科研人员和一线的教师不相接触,导至国内嵌入式人才缺乏,国外高校的技术超前于业界公司,而国内情况是业界公司方面的嵌入式系统技术要远远领先于高校。为架构业界与高校沟通的桥梁,把先进技能带给高校学子,为学生在就业竞争中打造一张王牌,并为业界工程师快速提升实现自我创造机遇,我就这样辞去了外企年薪20多万的职位,做嵌入式系统方面的培训了。
对于培训来讲,是花钱来买时间,很多工程师都喜欢自己学,认为培训不值,这也是有可能的,纯为赚钱的培训当然不会太有价值,但对于实力型的培训他们可能就亏大了,有这样一笔帐不知他们算过没有,如果一个一周的培训,能带给他们自学两年后才能掌握的知识,在培训完后他们用三个月到半年时间消化培训内容,这样他会省约至少一年半的时间来学其它的或重新站在另一个高度上工作,那么他将最迟一年后会拿到他两年后水平所对应的工资,就是在工资与水平对应的关系上比同批人缩短一年,每月按最少1千计,再减去培训费用至少多1.0万,同时也省了一年时间,不管是休闲也好,再继续提高也好,总之是跑到了队伍的前面了。
另一层面上讲,对于新人的培训相当于他们为自己提前买了份失业保险,有师傅会带领他们入道,我今年暑假时班里最年轻的一个学生是大二的,今年才上大三,这学期才刚学单片机,但现在ARM方面的编程工作已经搞得有声有色了,再过一年多毕业,他还会失业吗?
再者通过培训,你可以知道很多业界不为常人所知的事,同时也为自己找了个师傅,就比如说,两个工程师分别用S3C2410和PXA255来做手持设备,同样两人都工作四年,再出去找工作,两人工资可能最多可相差一倍,为什么?这就是业界不为常人所知的规则,2410属于民品,被业界用烂了,做产品时成本特敏感,当然也对人才成本敏感了,PXA255是intel的东西,一个255 CPU能买三个2410,一直被业界定义为贵族产品,用的公司都是大公司或为军方服务的公司,不会在乎成本,只要把东西做好,一切都好说,但这方面做的人也少啊,因为开发系统贵啊。
对于说为自已找了个好师傅,我想是这样的,因为同级工程师间存在着某此潜在的竞争关系,有很多人不愿意把自己知道的东西教给别人,这意味着他将要失业,就是所说的教会徒弟,饿死师傅,但对于我们这些人就不存在这样的关系了,我是在嵌入式系统平台设计上走到了一定程序,目前在国内这块的技术上已经是自己很难再突破自己,因此很多东西我对大家都是OPEN的,就比如说下面那部分关于接口设计中所提到的时序接口东西,我要是不讲,却使是高级硬件工程师我想也几乎只有10%的人能知道吧。
六、成为高级嵌入式系统硬件工程师要具备的技能。
对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15K以上。
另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类,国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗,即使做个IC前端验证工程师,也要搞上几年才能胜任。 DSP硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如PXA255处理器I2C要求速度在100Kbps,如果把一个I2C外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接 LCD,但为什么这种LCD就不能挂在ARM的总线上,还有ARM7总线上可以外接个Winband的SD卡控制器,但为什么这种控制器接不到ARM9或是Xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5V变1.8V的DC芯片,直接更换成LDO,有时就会把CPU烧上几个。前几天还有人希望我帮忙把他们以前基于PXA255平台的手持GPS设备做下程序优化,我问了一下情况,地图是存在SD卡中的,而SD卡与PXA255的MMC控制器间采用的SPI接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计PCB绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ECAD工程师,就是专业的画PCB板的工程师,和EMC设计工程师,帮人家解决EMC的问题。硬件工程师再往上就是板级测试工程师,就是C语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行验证。然后再交给基于操作系统级的驱动开发人员。
总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头脑。
那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握EDA设计的辅助工具类如 ProtelORCADPowperPCBMaplux2ISE、 VDHL语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方案设计这块,那就基本上快成为资深工程师了。
硬件是要靠经验,也要靠积累的,十年磨一剑,百年磨一针。
上网本是win ce6.0系统的,如何 编辑word?
安装SoftMaker Office (简中)。
================================
有区别,同样软件的同一个版本能在windows mobile上用的软件,不一定能在wince5上用,但如果能用的话,那么只要在windows mobile上可以编辑的软件,在wince上同样也能编辑。
哪家公司有带3G功能的PDA手持设备,另外还要带GPS功能的?
推荐型号为EMENU35的通用手持设备,我们了解过,产品确定很不错,主要有以下几大特点:
1.采用低功耗ARM微处理器,主频400MHz,总线频率133MHz;
2.采用WINCE5.0操作系统,提供完美手持设备定制版本;
3.优质的电源管理:确保产品更稳定、持久地工作;
4.采用3.5英寸320×240真彩液晶屏作为显示设备,带触摸屏,支持手写输入;
5.提供1个电源按键(按下5秒开机/关机,按下2秒睡眠/唤醒), 7个功能按键;
6.内置CDMA模块,支持电话拨打和接听,支持一键拨号上网,短信接收;
7.内置GPS模块,支持各种电子地图,快速的热启动导航定位;
8.提供1个10/100M自适应的RJ45网口,并采用动态加载驱动的方式保证它的低功耗电源管理;
9.提供主从USB接口;支持通过Microsoft ActiveSync与PC机同步,便于文件传递、应用程序更新等;
10.提供TF卡socket,支持2GB的TF存储卡;
11.定制系统支持.NET Compact Framework2.0,IE浏览器,WordPad,PPPoe等,手写输入法,提供SDK,方便用户进行二次开发;
12.提供配套的应用开发例子程序。
我的mp4为什么开不了机啊 总是重复开机的启始页面进不了菜单,充电正常,连接电脑正常。。这到底是怎么回
机子型号是。。。。。
一般来说是固件原因 可以重刷固件试试~
什么是计算机科学与技术(嵌入式系统)
一、嵌入式系统的概念
着重理解“嵌入”的概念
主要从三个方面上来理解。
1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的 16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。
2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是Wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。
3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。
以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科。
二、嵌入式系统的分层与专业的分类。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。
硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。
2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。
硬件工程师分为多少类
一、嵌入式系统的概念
着重理解“嵌入”的概念
主要从三个方面上来理解。
1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。
2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。
3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。
以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科
二、嵌入式系统的分层与专业的分类。
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。
硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。
2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。
三、目标与定位。
先有目标,再去定位。
学ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面的驱动、移植了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上基于API的应用层的编程,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。因此针对于嵌入式系统的硬件层和驱动程的人,ARM的接口电路设计、ARM的C语言和汇编语言编程及调试开发环境还是需要掌握的。
因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。
如果想从嵌入式系统的应用层面的走的话,可能与ARM及其它体系相去较远,要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如WinCe操作系统下的EVC应用开发(与windows下的VC相类似),如果想再有突破就往某些音视频类的协议上靠,比如VOIP领域的基于SIP或H.323协议的应用层开发,或是基于嵌入式网络数据库的开发等等。
对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应的高工资,我是做硬件层的,以前每月工资中个人所得税要被扣上近3千大元,当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间就那些。硬件这方面上可能与我PK的人很少了,才让我拿到那么多的工资。
四、开发系统选择。
很多ARM初学者都希望有一套自己能用的系统,但他们住住会产生一种错误认识就是认为处理器版本越高、性能越高越好,就象很多人认为ARM9与ARM7好,我想对于初学者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的那个方向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操作系统层面或应用层面上走,不管是驱动还是应用,那当然处理器性能越高越好了,但这个东西自学,有十分大的困难,不是几个月或半年或是一年二年能搞定的事。
在某种意义上请,ARM7与9的差别就是在某些功能指令集上丰富了些,主频提高一些而已,就比如286和386。对于用户来讲可能觉查不到什么,只能是感觉速度有些快而已。
ARM7比较适合于那些想从硬件层面上走的人,因为ARM7系列处理器内部带MMU的很少,而且比较好控制,就比如S3C44B0来讲,可以很容易将Cache关了,而且内部接口寄存器很容易看明白,各种接口对于用硬件程序控制或AXD单步命令行指令都可以控制起来,基于51单片机的思想很容易能把他搞懂,就当成个32位的单片机,从而消除很多51工程师想转为嵌入式系统硬件ARM开发工程师的困惑,从而不会被业界某此不是真正懂嵌入式烂公司带到操作系统层面上去,让他们望而失畏,让业界更加缺少这方面的人才。
而嵌入式系统不管硬件设计还是软件驱动方面都是十分注重接口这部分的,选择平台还要考察一个处理器的外部资源,你接触外部资源越多,越熟悉他们那你以后就业成功的机率就越高,这就是招聘时所说的有无“相关技能”,因为一个人不可能在短短几年内把所有的处理器都接触一遍,而招聘单位所用的处理器就可能是我们完全没有见过的,就拿台湾数十家小公司(市价几千万)的公司生产的ARM类处理器,也很好用,但这些东西通用性太差,用这些处理器的公司就只能招有相关工作经验的人了,那什么是相关工作经验,在硬件上讲的是外围接口设计,在软件上讲是操作系统方面相关接口驱动及应用开发经验。我从业近十年,2000年ARM出现,我一天始做ARM7,然后直接跑到了Xscale(这个板本在ARM10-11之间),一做就是五年,招人面试都不下数百人,在这些方面还是深有体会的。
我个人认为三星的S3C44b0对初学者来说比较合适,为什么这么说哪?因为接口资源比较丰富,技术成熟,资料较多,应该十分适合于初学者,有问题可能很容易找人帮且解决,因为大多数人都很熟悉,就如同51类的单片机,有N多位专家级的人物可以给你帮忙,相关问题得以很快解答,所然业界认为这款ARM都做用得烂了,但对于初学者来,就却是件好事。
因此开发系统的选择,要看自己的未来从来目标方向、要看开发板接口资源、还要看业界的通用性。
五、如何看待培训。
首先说说我自己,我目前从业近十年,与国内嵌入式系统行业共同起步,一直站在嵌入式系统行业前沿,设计过多款高端嵌入式系统平台产品并为众多公司提供过解决方案,离职前为从事VOIP的美资公司设计IP-PBX,历任项目经理、项目主管、技术总监、部门经理,积累众多人脉,并集多年经验所得,考虑到学生就业与公司招人的不相匹配,公司想招人招不到,而学生和刚毕业的工程师想找份工作也不太容易,于此力创知天行科技有限公司,开展嵌入式系统教育培训。
因一线的科研人员和一线的教师不相接触,导至国内嵌入式人才缺乏,国外高校的技术超前于业界公司,而国内情况是业界公司方面的嵌入式系统技术要远远领先于高校。为架构业界与高校沟通的桥梁,把先进技能带给高校学子,为学生在就业竞争中打造一张王牌,并为业界工程师快速提升实现自我创造机遇,我就这样辞去了外企年薪20多万的职位,做嵌入式系统方面的培训了。
对于培训来讲,是花钱来买时间,很多工程师都喜欢自己学,认为培训不值,这也是有可能的,纯为赚钱的培训当然不会太有价值,但对于实力型的培训他们可能就亏大了,有这样一笔帐不知他们算过没有,如果一个一周的培训,能带给他们自学两年后才能掌握的知识,在培训完后他们用三个月到半年时间消化培训内容,这样他会省约至少一年半的时间来学其它的或重新站在另一个高度上工作,那么他将最迟一年后会拿到他两年后水平所对应的工资,就是在工资与水平对应的关系上比同批人缩短一年,每月按最少1千计,再减去培训费用至少多1.0万,同时也省了一年时间,不管是休闲也好,再继续提高也好,总之是跑到了队伍的前面了。
另一层面上讲,对于新人的培训相当于他们为自己提前买了份失业保险,有师傅会带领他们入道,我今年暑假时班里最年轻的一个学生是大二的,今年才上大三,这学期才刚学单片机,但现在ARM方面的编程工作已经搞得有声有色了,再过一年多毕业,他还会失业吗?
再者通过培训,你可以知道很多业界不为常人所知的事,同时也为自己找了个师傅,就比如说,两个工程师分别用S3C2410和PXA255来做手持设备,同样两人都工作四年,再出去找工作,两人工资可能最多可相差一倍,为什么?这就是业界不为常人所知的规则,2410属于民品,被业界用烂了,做产品时成本特敏感,当然也对人才成本敏感了,PXA255是intel的东西,一个255 CPU能买三个2410,一直被业界定义为贵族产品,用的公司都是大公司或为军方服务的公司,不会在乎成本,只要把东西做好,一切都好说,但这方面做的人也少啊,因为开发系统贵啊。
对于说为自已找了个好师傅,我想是这样的,因为同级工程师间存在着某此潜在的竞争关系,有很多人不愿意把自己知道的东西教给别人,这意味着他将要失业,就是所说的教会徒弟,饿死师傅,但对于我们这些人就不存在这样的关系了,我是在嵌入式系统平台设计上走到了一定程序,目前在国内这块的技术上已经是自己很难再突破自己,因此很多东西我对大家都是OPEN的,就比如说下面那部分关于接口设计中所提到的时序接口东西,我要是不讲,却使是高级硬件工程师我想也几乎只有10%的人能知道吧。
六、成为高级嵌入式系统硬件工程师要具备的技能。
首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通,或去网站看看。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。
对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15K以上。
另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,dsp类,FPGA类,国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗,即使做个IC前端验证工程师,也要搞上几年才能胜任。dsp硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如PXA255处理器I2C要求速度在100Kbps,如果把一个I2C外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接LCD,但为什么这种LCD就不能挂在ARM的总线上,还有ARM7总线上可以外接个Winband的SD卡控制器,但为什么这种控制器接不到ARM9或是Xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。 一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5V变1.8V的DC芯片,直接更换成LDO,有时就会把CPU烧上几个。前几天还有人希望我帮忙把他们以前基于PXA255平台的手持GPS设备做下程序优化,我问了一下情况,地图是存在SD卡中的,而SD卡与PXA255的MMC控制器间采用的SPI接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计PCB绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ECAD工程师,就是专业的画PCB板的工程师,和EMC设计工程师,帮人家解决EMC的问题。硬件工程师再往上就是板级测试工程师,就是C语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行验证。然后再交给基于操作系统级的驱动开发人员。
总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头脑。
那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握EDA设计的辅助工具类如Protel\ORCAD\PowperPCB\Maplux2\ISE、VDHL语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方案设计这块,那就基本上快成为资深工程师了。
硬件是要靠经验,也要靠积累的,十年磨一剑,百年磨一针。
转载请注明出处51数据库 » wincewordpad PDA是干什么用的