固件开发和嵌入式软件开发的区别(嵌入式软件开发和硬件开发的区别)

软件开发 1051
今天给各位分享固件开发和嵌入式软件开发的区别的知识,其中也会对嵌入式软件开发和硬件开发的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、嵌入式软件开发和软件开发有区别吗

今天给各位分享固件开发和嵌入式软件开发的区别的知识,其中也会对嵌入式软件开发和硬件开发的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

嵌入式软件开发和软件开发有区别吗

操作系统不一样,嵌入式软件开发属于软件开发的一种。

嵌入式软件开发主要针对计算能力有限的CPU进行的软件开发,比如INTEL的CPU芯片时钟频率可以达到1G HZ,虽然INTEL的CPU运算能力强大,但是体积大,发热大,不适合使用在某些场合,这个时候就要使用一些体积小,功耗低,运算能力有限的专用CPU,比如手机上使用的CPU处理器,在这种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、平台开发种类不同

嵌入式系统开发是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等,一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用 户的应用程序等四个部分组成。

软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序。

软件开发平台源于繁琐的实践开发过程中。开发人员在实践中将常用的函数、类、抽象、接口等进行总结、封装,成为了可以重复使用的“中间件”,而随着“中间件”的成熟和通用,功能更强大、更能满足企业级客户需求的——软件开发平台应运而生。

2、资源限制不同

嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。

软件实现的根据是计算机语言。时至今日,计算机语言发展为算法语言、数据库语言、智能模拟语言等多种门类,在几十种重要的算法语言中,CC++语言日益成为广大计算机软件工作人员的亲密伙伴,这不仅因为它功能强大、构造灵活。

更在于它提供了高度结构化的语法、简单而统一的软件构造方式,使得以它为主构造的SDE数据库的基础成分——子程序库的设计与建设显得异常的方便。

3、工具使用不同

嵌入式系统开发需要与底层的硬件设备进行通信和交互操作。与设备相关。主要是对设备控制和操作。对编译器的要求较高,不同处理器平台有各自的编译器和调试软件。需要专门的调试工具,尤其是一些专用设备。

与底层操作通过系统软件的接口函数API来实现,与设备无关。主要是数据处理和UI界面处理。对编译器没有特别的要求,通常使用一些通用的编译器和调试软件。

4、代码质量要求

嵌入式系统对代码的质量要求高,要求可执行的程序占用的存储空间少。由于多任务同时运行,产生的错误比较多,因此在稳定性和性能上要求很高。

软件开发对代码的质量没有特别的要求,在存储空间上也没有太多的限制。在稳定性和性能方面没有嵌入式系统要求那么严格。

参考资料来源:百度百科-嵌入式系统开发

参考资料来源:百度百科-软件开发

嵌入式linux软件开发,固件开发方向跟应用开发方向,哪个好?麻烦业内人士回答并稍微解释下!

固件就是编译好的能烧到板子里的二进制文件。固件有裸机程序,也有基于平台的如嵌入式的linux,wince,vxworks, android等,前者主要有普通单片机和DSP,主要用到c、少量汇编和算法知识,工作强度较小,后者呢,因为平台太大往往好多人做,每人都有分工,如有的人做存储,有的人做usb,有的人做wifi等,驱动是平台的一部分。如果你做的话你将会看到巨量的代码,而语言呢主要用到c(少量c++),我之前做应用,现在做平台也就是固件,每次编译都需要20分钟(如果用自己电脑编可能就得一整天),编出来的东西只能通过log来调试,有时碰到难题就是死活解决不了(因为代码是很多人写的,得定位);

再说应用,应用我也做过MFC和QT的,windows, wince ,linux 都有,现在对比一下,感觉做应用还是挺轻松的,起码有问题自己心里都清楚,再就是编译一下很快啊。

完了总结一下:做固件,主要接触硬件和c,以及操作系统内部的东西,要能读懂电路原理图;

做应用:主要接触高级语言(c++, java, c#等), 熟悉设计模式和软件建模,熟悉数据库。

这就是我得理解的,自己参考一下。

关于固件开发和嵌入式软件开发的区别和嵌入式软件开发和硬件开发的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码