APP下载

嵌入式系统中C语言编程软件设计

2021-04-20刘林芳

电子技术与软件工程 2021年1期
关键词:占用率嵌入式编程

刘林芳

(长沙华中涉外职业高中 湖南省长沙市 410000)

1 引言

嵌入式系统是一种可以独立、自主运行的计算机器件,其特点在于其中的软硬件可裁剪。嵌入式系统主要由软件及硬件两部分组成,C 语言是其软件功能开发过程中应用最为广泛的一种计算机语言[1-2]。

C 语言计算的灵活性较高,且管理与维护较为容易,可在很大程度上提高嵌入式系统编程软件的拓展性和高效性。为此,设计嵌入式系统中C 语言编程软件的重要性不言而喻[3]。

目前,常用的编程软件主要有文献[4]中提出的基于ZYNQ-7000 的远距无线时间同步系统的C 语言编程软件设计方法和文献[5]中提出的基于C 语言技术的计算机软件编程设计方法。但在实际的应用中发现,上述传统方法存在编程过程耗时长、软件空间资源占用率高、运行准确率低的问题,使得其可靠性大大降低。

为有效解决传统方法存在的不足,本研究设计了一种嵌入式系统中C 语言编程软件设计方法,以期为嵌入式系统的发展提供可靠、有效的技术支持。

2 嵌入式系统层次架构设计

伴随着现代计算机技术的飞跃式发展,嵌入式系统的功能性也越来越强大,与此同时,其技术性也逐渐变得愈加复杂[6-8]。因此,为有效提高嵌入式系统软件部分的开发以及运行效果,本研究提出对其展开层次架构设计。

2.1 层次架构设计思路

本研究以层次化划分为理念,将嵌入式系统中编程软件部分规划为不同的层次架构,每个架构对应不同的软件模块,与此同时确定模块与模块间的关联性。层次架构的设计思路如下:

(1)本研究将嵌入式系统的层次架构划分为数据整理层、分析处理层以及功能展示层三个主要的部分,各层次架构之间的功能呈现出渐进的关系。应用过程中,注重嵌入式系统各个功能模块的协调性和层次性,针对相同的问题,对不同的层次架构均可提供有效的处理方案,上一层次架构的运行需依靠下一层次架构的支撑;

(2)保障嵌入式系统软件模块功能的高内聚与低耦合,在划分其层次架构的过程中,按照任务分析、功能选择、重用程度的顺利实现;

(3)尽可能地降低层次架构与层次架构间的相关性,以此来避免因某一层次架构发生故障而对整个嵌入式系统软件模块产生影响。

2.2 层次架构设计方法

本研究设计的嵌入式系统软件模块层次架构设计方法的步骤如下:

步骤一:按照递进式的方式对嵌入式系统的功能需求展开分析,并将其抽象化,从而确定嵌入式系统的概念层次,再将概念层次变化为软件层次。上述步骤是一个明确功能需求并将其变化为开发设计需求的过程[9-10];

步骤二:按照反向递进式的方式对嵌入式系统硬件部分的功能需求展开分析,并将其抽象化,从而细化出必要的嵌入式系统硬件环境操作原语。针对嵌入式系统来说,规模庞大的开发过程是通过软件编程设计来实现系统硬件的各项功能的过程。封装硬件功能能够有效降低嵌入式系统开发过程的繁杂性,同时也可以提高嵌入式系统软件编程代码的复用性[11-12];

步骤三:按照递进式和反向递进式相融合的方式,逐级检查相邻的两个层次架构间的调用关系,在此基础上,保障二者间数据交流的畅通性,从而保障每一个层次架构上的调用都有效;

步骤四:对嵌入式系统软件模块的每一个层次架构的功能实施整合处理,优化其各项功能,以此来达到软件模块最优化,这一过程也是对软件编程代码重用的最优选择过程。

3 C语言编程软件设计

在上述设计嵌入式系统层次架构的基础上,利用C 语言技术对其中的编程软件展开设计。

3.1 代码调控

尽管标准的C 语言开发过程缺少软件框架管理,但结合上述设计的嵌入式系统层次架构,可建立嵌入式系统的管理原则,从而提高对编程代码的组织管理和调控开发能力。

3.1.1 代码管理

首先按照层次划分的原理对代码目录实施组织管理,主程序代码以及头文 件置于根目录中,其余文件置于其余文件夹中,文件名的格式要统一。在此基础上,在嵌入式系统C 语言开发的过程中,就能够充分利用不同层次架构的优势,使得操作人员能够在不同的文件夹中同时完成不同种类的工作。

3.1.2 模块管理

为了实现嵌入式系统软件模块的高内聚性功能,本研究尽量避免使用全局变量来完成对系统模块的管理,而是利用函数参数来实现信息的交互与处理。相同种类的系统任务尽量储存于同一文件夹内。上一层次架构在开发时能够调用下一层次架构,但要注意下层次架构尽可能避免交叉和越级调用。

3.2 循环设计

在任务循环设计时,尽量让循环变量接近于零,以此来减少因循环终止而造成的不必要嵌入式系统开销。一般情况下,for( )循环的格式应表示为如下形式:

for(x=0,x<10,x++){…}

这一过程中,x 从 0 增加到 9。若将上述代码改写为如下形式,则x 从 9 减少到 0,循环执行速度将会大大提高。

for(x=10,x--){…}

3.3 函数表达设计

C 语言编程中包括很多含有参数和函数的表达式,因此,设计函数表达并研究函数的变化至关重要。本研究对main 函数实施编辑处理,将其中的参数利用agent 来表示,在这一过程中,需通过分析来获得main 函数相关的即时数组信息。

嵌入式系统软件模块的函数变化会对函数的配置启动产生直接影响,因此,本研究首先对main 函数实施归零处理,从而使C 语言编程程序进入高效运行状态,且main 函数可以对嵌入式系统模式实施智能调控,通过交叉比对结果删除无用数据,避免C 语言程序混乱,然后重新定义新的main 函数表达式,以此来保障函数间的有效串接,从而使嵌入式系统编程程序更好地适应不同的语言环境。

4 仿真实验与结果分析

为验证上述研究的嵌入式系统中C 语言编程软件设计方法的可行性与有效性,设计如下实验加以证明。实验在MATLAB 仿真平台上完成。为有效避免实验结果过于单一、提高其说明性,将文献[4]中的基于ZYNQ-7000 的远距无线时间同步系统的C 语言编程软件设计方法和文献[5]中的基于C 语言技术的计算机软件编程设计方法作为对照,与本文方法共同完成性能对比验证。对比指标如下:

(1)编程过程耗时。该指标可直接反映不同方法的编程效率。编程过程耗时越短,说明编程效率越高。

(2)软件空间资源占用率。该指标可直接反映不同方法的空间资源占用差异。

(3)运行准确率。该指标可体现不同方法编程结果的可靠性。运行准确率越高,说明方法编程结果的可靠性越高。

在实验次数不断增加的情况下,统计不同方法的编程过程耗时,结果如表1所示。

表1:不同方法的编程过程耗时统计结果

表2:不同方法的软件空间资源占用率对比结果

表3:不同方法的运行准确率对比结果

分析表1可知,文献[4]方法的编程过程耗时在8.10s-8.90s 之间,文献[5]方法的编程过程耗时在8.80s ~10.00s 之间,而本文方法的最大编程过程耗时仅为6.60s,明显少于两种传统方法。根据上述结果可知,应用本文方法能够使得编程过程耗时大大缩短。

在此基础上,为进一步验证嵌入式系统中C 语言编程软件设计方法的可行性与有效性,测试不同方法的软件空间资源占用率,对比结果如表2所示。

分析表2中的实验数据可知,由于3 种方法采用的编程处理方式不同,随着试验次数的增加,其软件空间资源占用率也会随之发生变化。2 种传统方法的软件空间资源占用率均在30.0%以上。而本文方法的软件空间资源占用率最低为16.0%,最高也仅为18.0%,说明本文方法占用的软件空间资源量最少。

最后,在实验次数不断增加的情况下,统计不同方法的运行准确率,结果如表3所示。

分析表3中的实验数据可知,由于3 种方法采用的编程处理方式不同,随着试验次数的增加,其运行准确率也会不断变化。2 种传统方法的软件空间资源占用率均在85.0%以下。而本文方法的软件空间资源占用率最低为95.0%,最高也仅为98.0%,说明本文方法编程结果的可靠性更高。

综上所述可知,本文提出的嵌入式系统中C 语言编程软件设计方法具有编程过程耗时少、软件空间资源占用率低、运行准确率高的应用优势。

5 结束语

本研究提出了一种嵌入式系统中C 语言编程软件设计方法,并通过仿真实验,证明了该方法具有编程过程耗时少、软件空间资源占用率低、运行准确率高的应用优势,可有效为嵌入式系统的发展提供技术支持。

猜你喜欢

占用率嵌入式编程
编程,是一种态度
编程小能手
纺织机上诞生的编程
降低CE设备子接口占用率的研究与应用
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
解析交换机CPU占用率
基于排队论的区域路内停车最优泊位占用率研究
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器