嵌入式系统软件设计方法应用分析

时间:2022-02-18 08:49:38

嵌入式系统软件设计方法应用分析

【摘要】软件是嵌入式系统最为重要的组成部分之一,软件设计的合理性也对系统具有极为重要的作用。在嵌入式系统越来越复杂的情况下,一个设计糟糕的系统,其运行行为很难、甚至不可能预测,系统设计所带来的风险也就越来越大。该应用分析将嵌入式系统的图形界面、业务控制流程和输入/输出设备操作进行有效的解耦合,使得系统的软件易于实现、测试与维护。

【关键词】嵌入式系统;软件设计;应用分析

引言

嵌入式系统是一种以计算机技术为基础,以特定的应用功能为设计目的的一种能够完全嵌入控制件内部的计算机系统。嵌入式应用中虽然有很多像Qt/Embedded、MiniGUI之类的图形界面处理软件或工具包来辅助系统设计,但在很多情况下中却无法使用这些软件或工具包。尤其是近几年来,互联网和移动网络的高速发展, 更是将嵌入式系统的发展带到了一个全新的高度,对嵌入式系统应用的功能性要求也越来越高,给嵌入式系统设计和开发带来了更大的难度。这些应用的软件架构需要一种实用、简捷的设计模式来解决上述设计问题,从而保证系统的可靠性。

1.嵌入式系统的发展历程

1.1 早期的嵌入式系统设计方法,一般是采用“硬件优先”原则。即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现。

到现在,嵌入式系统的发展已经有了将近四十年的历程,在这四十年当中,嵌入式系统已经陆陆续续的渗透到工程设计、科学研究、军事技术以及网络技术中,成为人们生活所必不可少的一部分。采用这种设计方法,一旦在测试时发现问题,需要对设计进行修改时,整个设计流程必须重新进行,对成本和设计周期的影响很大。而且,随着科学技术以及计算机网络技术的不断发展,对嵌入式系统的功能和运行的可靠性要求也变得越来越高,使得嵌入式系统的设计和开发也变得越来越困难。

1.2 自从在上世纪七十年代最早的嵌入式系统的前身单片机问世之后,经过无数科学研究人员的不懈努力,各种各样的嵌入式微处理器和嵌入式微控制器相继出现,正式标志着嵌入式系统进入了发展阶段,成为了时展的一部分。因而出现了软硬件协同(codesign)设计方法,即使用统一的方法和工具协同设计软硬件体系结构,最大限度地挖掘系统软硬件能力,避免由于独立设计软硬件体系结构而带来的种种弊病,来获得高性能低代价的优化设计方案。

2.嵌入式应用系统软件设计的思路

简单版本的嵌入式应用系统在使用的过程中可以不涉及操作系统,但是当应用系统需要设计的功能比较复杂的时候,对系统软件所进行的设计是相当复杂的,当前,嵌入式系统设计人员已将擅长的设计方法发展到用软件来体现系统的部分功能。嵌入式操作系统的引入,在应用系统目标软件和硬件之间架起了一座桥梁,它可以大大减少系统设计的复杂性。

系统体系结构一旦确定,硬件和软件就可以相对独立地进行设计。协同设计的目标是做出恰当的体系结构决策,允许在以后的实现阶段中独立完成。这样,嵌入式操作系统作为应用程序和系统硬件之间的虚拟“视图”,将目标应用软件和硬件系统隔离开来,减少了目标应用软件对底层硬件系统的依赖,这样既增强了应用软件的可移植性,也减少了应用软件设计的复杂性。在设计或者对嵌入式操作系统进行移植的时候,应该将系统对硬件所产生的依赖部分转化到位于底层的设备驱动程序上面,这些设备驱动程序在这个时候只是提供给系统一个虚拟的视图,在此之后再由微内核提供将以上系统合并在一起的有效机制,这样既可以简化内核所可能拥有的复杂程度,又能够进一步缩减内核可能拥有的体积。为了便于使用,提高系统的可维护性与可扩展性,将目标硬件相关代码封装成软件包的形式,以便开发者定制替换,定制和替换过程只是微内核中虚拟视图的增加与删减,相应只需改变硬件抽象层。嵌入式系统软件的设计,关键是有可用的工具包,在不同的开发阶段需要不同的工具包。在早期嵌入式应用系统软件设计时,首先使用的是内部电路模拟器(ICE)。内部电路模拟器插在微处理器和总线之间的电路中,开发者可以通过它控制所有的输入输出以及微处理器的行为。但是内部电路模拟器是异体,容易引起不稳定。近年来,出现的各种集成开发环境集成了代码编辑器、编译器、连接器、调试器、模拟器等工具,它使开发者可以首先脱离目标硬件环境,快速开发出应用软件原型。

这种平台式开发对基于标准的市场尤其有用,在这种市场中,产品必须支持一些基本功能,其他功能须进行定制。现在,各种各样的硬件开发板,为开发者提供了在与目标硬件兼容的硬件环境中调试应用程序的功能,更加加快了这个进程。

3.嵌入式系统软件设计方法应用

3.1 对软件的实时性进行设计:跟通用软件设计相比,嵌入式系统软件设计对系统的实时性具有很高的要求,只有保证嵌入式系统的实时性,让系统能够在规定时间内对激励做出反应,才能够保证嵌入式系统的正常运行。因此,在软件设计过程中,一定要按照实时性的不同,将软件功能分为实时和分时两个部分对软件的性能进行严格、合理设计,保证嵌入式系统软件的实时性能。

3.2 对软件的可靠性进行设计:为了能够有效保证嵌入式系统运行的可靠性,在对软件进行设计过程中,还需要对软件的可靠性进行合理设计。在对软件进行设计的过程中,一定要在充分考虑嵌入式系统运行特点的基础上,仔细编写功能模块的代码,尽可能避免错误的出现。同时,在编写完功能模块的执行代码之后,一定要立即对其进行试运行,如果发现问题,及时进行解决,以避免集成功能后对系统的运行的可靠性造成影响。

3.3 由于嵌入式设备中的资源有限,只能选择轻量级的Web Server(如:thttpd、boa等),考虑到应用的广泛性,建议选择boa服务器。作为与用户交互的主要方式,Web page力求简洁,并尽可能提供很多的功能接口。这些功能接口基本可以分为两种类型,一种是触发动作功能,主要利用button触发实现现场图片的采集等动作的操作。另一种是文件交互功能,这种功能的实现相对比较复杂,它不仅需要button触发, 还需要一些文本域作为用户配置的传递机制。动态Web交互功能主要通过form窗体来实现,当用户点击功能接口,浏览器将窗体内容通过http协议传输给服务器,服务器再根据form中的action字段来调用相应的CGI文件。

3.4 混合编程,提高软件的执行力:混合编程指的是在软件编程过程中,同时利用汇编语言和高级语言进行编程,这也是当前编程发展的一种主要趋势。在编程过程中,针对不同的编程要求选择不同的编程语言,比如,对一些执行能力要求比较高或者是实时性要求比较高的程序进行编程,应该选择严谨性比较好的汇编语言进行编写,而对于一些对逻辑性要求比较高的程序进行编程,可以选择具有一定智能性的高级语言进行编写。如此以来,就可以同时提高软件的执行力和分析能力,提高嵌入式系统的智能性。

4.结语

嵌入式系统已经成为人们生活的重要组成部分之一,因此,在日常工作当中,一定要对嵌入式系统的设计和开发引起足够重视。而在嵌入式系统中,软件占据着极为重要的组成部分,也是系统设计、开发的重点、难点,所以,在软件设计过程中,一定要从软件的实时性、可靠性以及可拓展性等方面进行综合考虑,对软件进行合理设计。

参考文献

[1]吕骏.嵌入式系统设计[M].北京:电子工业出版社,2012.

[2]郑泽胜.嵌入式系统以及实时软件开发[J].电子科技, 2010(01).

上一篇:基于fir的数字滤波器设计研究 下一篇:西安市政务微博舆论引导策略探究