嵌入式软件设计和嵌入式软件开发有区别吗?
展开全部 操作系统不一样,嵌入式软件开发属于软件开发的一种。
嵌入式软件开发主要针对计算能力有限的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等。
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。
软件一般是用某种程序设计语言来实现的。
通常采用软件开发工具可以进行开发。
软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。
软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
单片机程序里怎么分层?
展开全部 一、定义 嵌入式技术就是"专用"计算机技术,这个专用,是指针对某个特定的应用,如针对网络、针对通信、针对音频、针对视频,针对工业控制等,从学术的角度,嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、嵌入 式操作系统以及用户的应用程序等四个部分组成。
二、分层嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。
但硬件平台是基础,增值还要靠软件。
硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。
2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。
想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。
操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。
据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。
因此这部分工作相对来讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。
如果涉及Jave方面的编程也是如此的。
嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。
但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂,并且有难度了。
白夜行的嘿嘿哥