什么是嵌入式开发和软件开发
其实很简单,你百度一下就知道的,但是既然你提问了,我就说哈,我也是学嵌入式开发的,虽然还没毕业。
1.自从有了单片机,就有了嵌入式2.嵌入式系统是软件和硬件的综合体,有嵌入式软件开发和嵌入式硬件开发,一般都是软件开发,硬件太难了(要学习硬件的知识,数字电路和模拟电路是必修的,计算机的架构。
。
。
),既然叫嵌入式就不是纯软件了,还得一些硬件的知识,多数时候搞得是烧写,调试电子器件。
3.嵌入式系统是可以自己定制的系统(顾名思义,就是要什么就留下什么,可以剪切的系统,追求的是小型化,适用,低成本,低功耗,可扩展),多数是采用的linux的内核(最简单的ucOS-||,新手接触),一大特点就是专用,定制,内核是一大难。
4.应用:手机(像现在android手机的游戏开发,运用开发等),各种手持终端,车载系统,各种监控各种带程序的电子器件,只能家居,只能机器人。
。
。
。
什么是嵌入式软件开发
嵌入式软件开发主要针对计算能力有限的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等。
嵌入式软件开发好还是硬件开发好
现在的嵌入式软件开发 分工也很细的。
如果是上层应用开发,那么基本可以做到与硬件无关,不用太关心硬件接口。
如果是偏底层的,那么软件开发和硬件开发的界线就很模糊了,特别是驱动那一层的。
有好多工作都涉及芯片管脚的操作,设置bit位,GPIO读写,I2C总线操作,寄存器读写,等等,都需要阅读了解硬件spec。
当然,硬件开发在做设计时要考虑更多,要考虑板子的布局(要与结构工程师交流)、器件的选型等。
做硬件开发对经验要求很高,要更加慎重,毕竟一次rework那可是要付出很大代价的,尤其是依赖供应商的情况下,时间上很难掌控。
嵌入式软件开发与软件开发有什么不同
嵌入式系统开发是软件开发的一种,嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用 户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能嵌入式系统一般指非PC系统,它包括硬件和软件两部分。
硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。
软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。
有时设计人员把这两种软件组合在一起。
应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式领域是一个较新的空间,很多技术出现的时间不长,多数人没有条件接触或进入该行业,需要接受专门的培训与专业人员的指导,才能了解具体的开发流程。
因此,要进入嵌入式系统开发领域工作,必须参加一些专业培训机构的课程,并寻找项目实践的机会,增加项目经验,只有这样才能弥补横在企业与求职者间的鸿沟。
在众多的培训机构中,创客学院率先推出了嵌入式软件工程师培养工程,并整合众多企业用人需求和计划,以就业为导向,以技能为核心,以国内顶级的实训环境和企业氛围规范、提升学员职业素质,从真实案例入手,引入国际著名厂商、机构培训产品,不断开发适应企业人才需求的培训项目,为中国IT业培养和输送嵌入式软件工程师,以及其他IT行业急需的实战型、综合型人才。
现在学嵌入式软件开发和JAVA开发哪个好啊,我选得嵌入式,但他们...
学嵌入式是对的。
android目前很火但谷歌收购摩托罗拉后,宣布android可优先在摩托罗拉上使用,所以造成 三星 HTC等厂商感到威胁,现在这两家都是研发自己的系统,三星的bada,和HTC的WebOS,很快就要出来,随着微软和Nokia合作,三星也开始和微软合作,所以说android的前途还是很有威胁的,window 8已经支持ARM体系,在平板电脑也对android构成威胁,所以说android的发展也不会很顺利。
相比嵌入式方面的 随着物联网的发展,嵌入式方面的人才必然紧缺,android底层是Linux,如果你对android感兴趣,可以考虑android底层,这也属于嵌入式的东西,前景也很好。
做嵌入式的是越老越值钱,经验很重要,android就不一样了,Java的开发平台,上层应用平台变更就需要从新学习,是吃年轻饭的。
所以综合上面 你选嵌入式吧,我就是这个的。
嵌入式开发软件和硬件学习
我希望我能为楼主答疑解惑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,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。
想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。
最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。
送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持,也可以看看如何坚持嵌入式学习!最后也祝愿楼主学业顺利,也希望楼主早点学好嵌入式
段子他亲爹