嵌入式是硬件还是软件 如何抉择
嵌入式系统是由软件和硬件组成的整体。
硬件部分可以分成嵌入式处理器和外部设备。
处理器是整个系统的核心,负责处理所有的软件程序以及外部设备的信号。
外部设备在不同的系统中有不同的选择。
比如在汽车上,外部设备主要是传感器,用于采集数据;而在一部手机上,外部设备可以是键盘、液晶屏幕等。
软件部分可以分成两层,最靠近硬件的是嵌入式操作系统。
操作系统是软硬件的接口,负责管理系统的所有软件和硬件资源。
操作系统还可以通过驱动程序与外部设备打交道。
最上层的是应用软件,应用软件利用操作系统提供的功能开发出针对某个需求的程序,供用户使用。
用户最终是和应用软件打交道,例如在手机上编写一条短信,用户看到的是短信编写软件的界面,而看不到里面的操作系统以及嵌入式处理器等硬件。
一般来说,嵌入式硬件指逻辑电路、嵌入式处理器、微控制器、存储系统和硬件设计技巧等。
嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。
国内通常所说的嵌入式硬件指利用处理器开发外部设备方面。
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。
嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,可细分成系统软件、支撑软件、应用软件三类,是嵌入式系统的重要组成部分。
但国内通常所说的嵌入式软件主要指最靠近硬件的系统软件与支撑软件部分。
一个完备的嵌入式系统硬件架构有哪几部分构成
嵌入式系统开发是软件开发的一种,嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用 户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能嵌入式系统一般指非PC系统,它包括硬件和软件两部分。
硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。
软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。
有时设计人员把这两种软件组合在一起。
应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式领域是一个较新的空间,很多技术出现的时间不长,多数人没有条件接触或进入该行业,需要接受专门的培训与专业人员的指导,才能了解具体的开发流程。
因此,要进入嵌入式系统开发领域工作,必须参加一些专业培训机构的课程,并寻找项目实践的机会,增加项目经验,只有这样才能弥补横在企业与求职者间的鸿沟。
在众多的培训机构中,创客学院率先推出了嵌入式软件工程师培养工程,并整合众多企业用人需求和计划,以就业为导向,以技能为核心,以国内顶级的实训环境和企业氛围规范、提升学员职业素质,从真实案例入手,引入国际著名厂商、机构培训产品,不断开发适应企业人才需求的培训项目,为中国IT业培养和输送嵌入式软件工程师,以及其他IT行业急需的实战型、综合型人才。
嵌入式软件工程师和嵌入式硬件工程师有什么区别
我希望我能为楼主答疑解惑1:嵌入式软件开发 驱动和系统是比较难,毕竟需要一些硬件知识,相对应用软件可能工资高点,但是不能说哪个更好,因为做应用有个优势,你会对某一个行业很了解,也许以后你就可以自己做了。
2:嵌入式硬件开发和软件开发也没有办法说哪个更好,累不累在于你要做什么活,你在什么公司做,在A公司也许软件的比较累,B公司也许硬件的比较累,这不是绝对的,工资也是差不多,关键还是在于个人能力。
3:单纯从就业角度来考虑,我认为是软件的机会比较多。
因为一般公司软件的人员比硬件都要多的多。
软件的工作量相对比较大,所以需求也比较大。
4:学习嵌入式的课程,说来说去还是几个基础的课程,建议楼主可以到嵌入式学习网看看,里面有个学习指导,有很多很好的文章,我摘抄一篇文章给你看看,关于如何学习嵌入式的。
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。
很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。
我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。
应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。
很多人看不进书,那就去看看视频吧。
视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。
我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
我在网上看到,有人把自己学习嵌入式的视频总结出来,嵌入式系列实践和视频教程,大家可以看看网址http://www.ic120.com/embedvideo.htm我仔细看了觉得很不错,我本来也想整理下,可是奈何我自己的电脑硬盘空间才40G,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。
想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。
最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。
送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持,也可以看看如何坚持嵌入式学习!最后也祝愿楼主学业顺利,也希望楼主早点学好嵌入式
嵌入式硬件工程师与嵌入式软件工程师哪个更赚钱
现在的嵌入式软件开发 分工也很细的。
如果是上层应用开发,那么基本可以做到与硬件无关,不用太关心硬件接口。
如果是偏底层的,那么软件开发和硬件开发的界线就很模糊了,特别是驱动那一层的。
有好多工作都涉及芯片管脚的操作,设置bit位,GPIO读写,I2C总线操作,寄存器读写,等等,都需要阅读了解硬件spec。
当然,硬件开发在做设计时要考虑更多,要考虑板子的布局(要与结构工程师交流)、器件的选型等。
做硬件开发对经验要求很高,要更加慎重,毕竟一次rework那可是要付出很大代价的,尤其是依赖供应商的情况下,时间上很难掌控。
嵌入式和java该怎么选择呢?
我不知道楼主家里的经济环境怎么样,如果还不错,那确实可以去培训,反正几个月不工作不至于饿肚子。
如果楼主要自食其力的,我建议楼主还是可以自学的,毕竟你放弃工作,还要付一大笔培训的费用,还要4个月的时间没有工作。
如果到时没有学好,那代价应该是太大的。
所以,我的经历来和楼主说说吧,我是个大专没有毕业的学生,我原来也想去培训嵌入式,但是我家里出不了那么多钱,于是我只好自学,可是我又不喜欢看书,我一看书我就打瞌睡,不是看书自学的料。
于是,我就一直想找一份视频,一份像武林秘籍的视频,但是我找了很久没有找到。
大部分都只是某部分的内容,都不能称心如意。
后来在一个嵌入式的群上,有个朋友给我介绍一个从零基础开始学嵌入式的视频,而且他们还提供半年的技术支持,我当时一下子胃口被掉了起来,后来就到他们的网站看了一下,要300圆,好贵啊,但是为了学习,我咬咬牙买了。
我把视频地址贴出来和楼主分享。
视频地址:http://www.003r.com/embedvideo.htm 收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。
C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。
我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。
因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。
我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右。
我觉得自己差不多入门了,会做一些简单的东西了。
我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。
没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。
我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。
我想我也比较幸运,经理很看重我的努力就录用了我,开的工资不高,但是我想我足够了。
我至少不用每天都要靠父母养,我自己也能养活自己的。
我想只要我继续努力,我工资一定会翻倍的。
最后我也把他们资料里推荐的学习顺序发出来,楼主也是看看大约的学习流程。
第一阶段 环境及基础篇1.1:先搭建一个简单的linux环境,这对以后学习linux和C编程有很大的帮助。
具体操作:打开光盘16,里面有个开发工具包-安装好的fedora9,里面有个vmware安装包,先安装下vmware虚拟机,建议安装我们提供的版本,以免打不开我们的提供的安装的linux。
解压缩Virtual Machines.rar到你的硬盘,用虚拟机打开解压缩的系统即可。
如果你不喜欢fedora 9,那也可以安装我们提供的光盘04的软件视频包-国嵌培训视频1-RedHat企业版安装光盘,自己学习动手装linux也是不错的。
如果不懂得安装,可以看光盘04里面的软件视频包-国嵌培训视频1-RedHat企业版安装光盘/课程与视频/第1阶段(Linux系统管理)/第一天(安装与命令)/里面的视频,也可以看看里面的参考资料。
不过还是建议大家直接使用fedora,这样可以省时省事。
1.2:如果还没有基础,建议从最基本的C语言和linux开始学。
如果你觉得你的基础还不错,也可以跳过这部分,但是建议还是复习一遍,毕竟基础扎实一点更好。
先学习软件视频包-嵌入式linux软件开发入门培训视频.iso,共有46个视频,介绍嵌入式linux入门需要掌握的基础知识,包括linux的基础知识,shell基础,vi编辑器,包括嵌入式linux的C语言编程,非常详细,非常精辟! 学习完本视频可以掌握C语言和linux,对linux下的C编程有一定的了解。
1.3 这个看完后也可以看看光盘04...
什么是嵌入式软件开发
嵌入式软件开发主要针对计算能力有限的CPU进行的软件开发,比如INTEL的CPU芯片时钟频率可以达到1G HZ,虽然INTEL的CPU运算能力强大,但是体积大,发热大,不适合使用在某些场合,比如你的手机里面安装一个奔腾芯片再加一个大风扇,可能吗?这个时候就要使用一些体积小,功耗低,运算能力有限的专用CPU,比如手机上使用的CPU处理器大概频率在30M左右(好象是这个频率),在这种CPU上运行的操作系统就是嵌入式操作系统,这些操作系统占用比较小的硬件资源,但是却有相对较高的执行调度效率,我理解是这样的应该从应用的场合来定义嵌入于宿主设备,智能地完成宿主设备功能的计算机就是嵌入式计算机,或简称为嵌入式。
嵌入式计算机的构成:可以是单片的微控制器(MC-micro-controller),在我国习惯于称做单片机;也可以是由微处理器(MP-microprocessor)另加存储器及外部设备构成;还可以在MC/MP的基础上附加数字信号处理器(DSP)核心部件,构成多核MP/MC。
新一代嵌入式计算机的主要特征:是继承了整个PC机时期的技术成就,特别是进入90年代后的全球万维网(Web)技术(产品有可接入万维网的手持式PDA设备等)和多媒体技术(产品有高质量数字音响、数字视盘播放器,数码静态相机、数码视频摄像机等等)。
这类嵌入式的目标是想把桌面PC机上成熟的技术拆解下来,放入手持设备或移动设备,供用户随时随地进行消费。
全球网中行之有效的众多通信协议,多媒体的MP3、JPEG、MPEG等所采用的标准数据格式及各种库函数都使用32位格式和32位的编程软件,所以嵌入式也注定要使用32位的微处理器。
为顺应形势发展的需要,32位手持设备用的嵌入式操作系统应运而生,著名的有Windows CE、Epoch、 Palm OS等等,可见今日嵌入式的立点水平是很高的。
新一代嵌入式主要面向手持或移动消费类设备,电池供电和低价位是重要考虑因素,这就从根本上决定了它不可能照搬PC机上原来使用的微处理器。
下面先介绍嵌入式32位微处理器的技术进步,然后再举一些新型嵌入式微处理器的实例,使读者对新一代嵌入式有一个较清晰的认识。
由上述可见,当前嵌入式所用MP多是32位RISC DSP双核或RISC/DSP单核结构。
过去比较著名的RISC生产厂家起着基石作用。
许多新兴的嵌入式厂家购买他们的RISC专利嫁接到自己的DSP核上。
一些著名的生产CISC微处理器的厂家不甘心丢失嵌入式市场,也纷纷向RISC及DSP靠拢。
从1981年Ready System发展了世界上第1个商业嵌入式实时内核(VRTX32),到今天已经有近20年的历史。
20世纪80年代的产品还只支持一些16位的微处理器,如68k,8086等。
这时候的RTOS还只有内核,以销售二进制代码为主。
当时的产品除VRTX外,还有IPI公司的MTOS和80年代末ISI公司的PSOS。
产品主要用于军事和电信设备。
进入20世纪90年代,现代操作系统的设计思想,如微内核设计技术和模块化设计思想,开始渗入RTOS领域。
老牌的RTOS厂家如Ready System(在1995年与Microtec Research合并),也推出新一代的VRTXsa实时内核,新一代的RTOS厂家Windriver推出了Vxwork。
另外在这个时期,各家公司都有力求摆脱完全依赖第三方工具的制约,而通过自己收购、授权或使用免费工具链的方式,组成1套完整的开发环境。
例如,ISI公司的Prismt、著名的Tornado(Windriver)和老牌的Spectra(VRTX开发系统)等。
进入20世纪90年代中期,互联网之风在北美日渐风行。
网络设备制造商、终端产品制造商都要求RTOS有网络和图形界面的功能。
为了方便使用大量现存的软件代码,他们希望RTOS厂家都支持标准的API,如POSIX, Win32等,并希望RTOS的开发环境与他们已经熟悉的UNIX,Windows一致。
这个时期代表性的产品有Vxwork,QNX, Lynx和WinCE等。
单片机、嵌入式、硬件工程师和版图设计工作内容及就业前景比较
你好,我是系统工程师,希望我的回答能够帮助你。
1、单片机设计,相对于嵌入式来说更为简单。
但是,不同于嵌入式分工那么明确,单片机设计工作基本同时包括了软件和硬件的设计。
做的好的单片机设计,一年至少10万以上,且不需要太深厚的资历,只要动手能力强,项目经验足。
但是,长远来看,比不了嵌入式。
2、嵌入式设计,太大。
请楼主明确,就现在的行情来看,嵌入式软件工程师相当相当抢手!强烈建议。
3、硬件工程师也太大。
比较好的有:电源、RF、嵌入式、系统。
4、版图设计比较适合于安逸性格的人,工资算中档。
它不是很看重资历,适合于任何电子企业。
转载请注明出处51数据库 » 嵌入式硬件和软件架构