嵌入式软件服务器开发 嵌入式软件开发 - 电脑 - 【南平电脑网】_南平电脑维修_南平笔记本电脑维修_监控安装_市区上门维修
公司动态

嵌入式软件服务器开发 嵌入式软件开发

摘要:什么是嵌入式软件开发 嵌入式软件开发主要针对计算能力有限的CPU进行的软件开发,比如INTEL的CPU芯片时钟频率可以达到1G HZ,虽然INTEL的CPU运算能力强大,但是体积大,发热大,不适合使用...

发布日期:2020-08-24

嵌入式软件服务器开发

什么是嵌入式软件开发

嵌入式软件开发主要针对计算能力有限的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等。

嵌入式系统开发和嵌入式系统软件开发的区别在哪里呢?

嵌入式系统开发是软件开发的一种,嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用 户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能 嵌入式系统一般指非PC系统,它包括硬件和软件两部分。

硬件包括处理器微处理器、存储器及外设器件和IO端口、图形控制器等。

软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。

有时设计人员把这两种软件组合在一起。

应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

嵌入式软件开发平台有哪些?

闲话不多说,给LZ个大概的参考框架:如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段:1、嵌入式linux上层应用,包括QT的GUI开发2、嵌入式linux系统开发3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。

所以你可以尝试以下路线:(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。

推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。

(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。

(3) Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。

推荐书籍:《UNIX环境高级编程》(第2版)(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。

(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。

而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。

(6) 驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。

linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。

在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。

只要能坚持下来一定会取得成功!推荐你到华清远见网站上了解更多嵌入式的相关资料。

各大书店及图书馆也有华清远见出版的畅销嵌入式专业图书,了解一下相信对你有帮助!

嵌入式软件开发与软件开发有什么不同?

嵌入式软件开发偏重于硬件,软件开发偏重于软件,嵌入式软件主要是将软件植入嵌入式系统中,而软件开发是将软件开发出来直接在电脑上可操作。

嵌入式系统的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑,可靠,大多对实时性有严格要求。

嵌入式软件开发与软件开发有什么区别

嵌入式系统开发是软件开发的一种,嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用 户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能嵌入式系统一般指非PC系统,它包括硬件和软件两部分。

硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。

软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。

有时设计人员把这两种软件组合在一起。

应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

嵌入式非常难,到底怎么学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

来自转载,求采纳

搞嵌入式开发需要学习那些课程??

转载:嵌入式软件方面最重要的课程包括: (1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。

我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。

若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。

有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。

还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。

其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。

一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。

在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。

特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。

当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。

很多嵌入式职位招聘时都要求熟悉汇编。

(2) 嵌入式操作系统类课程 除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。

目前最重要的RTOS主要包括: 第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。

Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。

特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。

Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。

像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。

但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。

目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。

但无论如何,Vxworks在一段长时间内仍是不可动摇的。

与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。

Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。

目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM 9上的,一般是将Linux 2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。

很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。

缺点是熟悉Linux的人太少,开发难度稍大。

另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以我院不将其作为教学重点,要学习就应学直接实用的,比如 uClinux就很实用。

况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。

据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。

目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。

我院在该嵌入式Linux方面的课程系列是:本科生操作系统必修课,然后是Linux程序设计选修课,最后是嵌入式Linux系统选修课。

我院在Linux方面目前已有较强力量,魏老师和张老师熟悉Linux开发,金老师和唐老师熟悉Linux系统管理。

第三类、 Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来...

嵌入式软件开发应该学什么?

嵌入式开发突出强制和项目,学习不仅仅是学习几项技术,而是构建你的知识体系。

比如学习嵌入式开发,就要从基础Linux,C语言,数据结构开始,到ARM,汇编,Linux内核、驱动等,更重要的是更多的项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识。

我是过来人,在学校是比较少机会接触到项目实训的,我和班上几个同学到了粤嵌参加培训,在那里实训的项目就非常多,这对我们毕业到大型企业工作做好了准备。

..

关于从事JAVA软件开发还是嵌入式软件开发的抉择?

Java开发 纯后端开发 现在大中型企业网站开发的主流语言 市场需求很大 当然Java开发程序猿也很多而由于Java还是安卓开发的基础语言,如果以后不想从事web端的开发,转移动端,有一定的优势嵌入式的话,需要掌握软、硬件知识,需求相对安卓要小一些,而且薪资方面的,就目前来看,起薪可能要低一些 如果做到工程师级别 就不好判定了个人感觉Java发展空间要大一些

嵌入式软件开发好还是硬件开发好

现在的嵌入式软件开发 分工也很细的。

如果是上层应用开发,那么基本可以做到与硬件无关,不用太关心硬件接口。

如果是偏底层的,那么软件开发和硬件开发的界线就很模糊了,特别是驱动那一层的。

有好多工作都涉及芯片管脚的操作,设置bit位,GPIO读写,I2C总线操作,寄存器读写,等等,都需要阅读了解硬件spec。

当然,硬件开发在做设计时要考虑更多,要考虑板子的布局(要与结构工程师交流)、器件的选型等。

做硬件开发对经验要求很高,要更加慎重,毕竟一次rework那可是要付出很大代价的,尤其是依赖供应商的情况下,时间上很难掌控。