嵌入式背景下C语言编程软件设计架构
周士云
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

周士云,. 嵌入式背景下C语言编程软件设计架构[J]. 软件工程研究,2022.12. DOI:10.12721/ccn.2022.157117.
摘要:
在传统编程过程中,往往会出现消耗大量时间、软件资源空间占用率高等问题。为了切实解决这些问题,本文指出了一种基于嵌入式系统的 C 语言编程软件设计架构方法,从分层方向和分层架构设计方法详细阐述了分层架构的设计思路,在系统软件的开发与设计上,基于C语言面向对象化,依托于中断服务程序,完成系统软件开发与设计
关键词: 嵌入式系统;C语言
DOI:10.12721/ccn.2022.157117
基金资助:

一.C语言

C语言的应用比较广泛,是一种频繁应用于底层开发的通用的计算机编程语言,其发展历史也比较久。

(一)C语言技术的基本特点

1.较高的简洁性

在C语言应用中,具备了较强的简洁性。即利用C语言进行编程时,只有“大小写字母”

这种编写模式,而且字母无法进行篡改,并且在对C语言进行命名时,所使用到的应用变量和分析函数需要使用特定语言进行设定,所使用的句式简单性较高,整体句式分类相对较少,具备较强的便捷性[1]。同时C语言在应用中,也具备了较强的适用性,适合初学者进行学习。C语言的源程序书写过程也非常的灵活,在应用中借助小写字母进行书写,而其他不重要的内容可以选择直接压缩,以满足相应的处理需求,提高编程结果的准确性。

2.应用效率高

在C语言应用中,其整体结构比较简洁,内容清晰度较高,可以直接展开内存访问处理,在整体操作上具备了非常强的便捷性。C语言在应用中也可以对系统功能进行直接调用,而且在接收到硬件系统下达指令后,也可以及时作出反馈,具备了较强的应用效率,这也是其他语言并不具备的应用优势。C语言程序为编译执行程序,属于强类型编程语言。由于C语言属于低级语言,没有太多复杂的信息在代码中,所以编译之后生成的代码往往比较简洁、高效。使得其程序显得简短精悍,能直接对硬件进行操作控制,使得其非常受嵌入式开发的程序员们喜爱。

3.数据类型简单

在C语言应用过程中,也具备了数据类型简单的特点,从以往应用经验可以了解到,C语言在使用中,其涉及的数据类型包括了构造数据、普通数据、堆栈数据、指针数据、队列数据等,这些数据都是在应用中归属于非常基础和简单的内容,将其融入计算机编程中之后,也可以解决更多的应用问题,提升数据信息的应用价值[2]

(二)C语言技术在计算机软件编程中的具体应用

 1.指针功能

从实际应用情况来看,指针功能在计算机软件编程中有着重要应用,同时该内容也是实现操作的重要载体。基于指针变量情况,筛选最为恰当的指针类型,为初始化设置活动的展开提供帮助。由于指针几乎可以指向任意类型的数据、代码甚至是硬件,显得十分的灵活便利,使得指针在实际编辑中被广泛使用。在指针变量的使用中,如果没有按要求进行初始化处理,那么将带来较为严重的负面影响,如程序BUG、计算机死机等。基于此,在指针功能应用过程中,需要加强初始化变量处理,同时也需要做好指针变量处理、指针组数整理、定义式内容区分处理,以提高处理结果的实用性。

2.各类函数

在计算机软件编程处理时,会使用到各类函数。在C语言中的函数指是的一段代码,该代码可以有输入参数与返回结果(输出参数),该代码完成一个特定的功能或者是操作,且允许被重复执行(调用)的代码段。基于实际的应用情况,目前使用较多的函数包括最大值求取函数、scanf函数、主要函数等[3]。不同函数在编译过程中,也具备了相应的应用功能,这样也可以提升设计函数内容的功能实现水平,同时也对函数编写和定义进行重新整理,以满足函数定义的相关要求。在函数应用过程中,有利于计算机算法技巧的顺利掌握,也利用自然语言来完成计算机语言和流程图的制作,并且在应用中也需要对流程图符号进行整理,使其价值可以充分发挥出来,满足应用需求。例如,进行宏文件编制时,多使用“#inducle”函数进行引导,对于应用时需要使用的“头文件”进行综合整理,借此来全面发挥应用价值,具体的应用流程如下:

(1)先在插入点位置输入处理语句,程序为#inducle<asiert.h>//;(2)在插入位置输入字符语句,程序为#inducle<ctycle.h>//;(3)向其中输入函数处理语句,程序为#inducle<flict.h>//。基于此类函数引入模式,能够顺利将不同头文件应用到其中,以此来达到既定的编程效果。

3.各类语句

在C语言应用过程中,具备了语句类型较多、涉及范围较广等特点,在具体编程过程中,需要针对不同种类的语言功能进行筛选,并以此为基础来匹配相应的使用语言,以满足相应的编译需求。如果在应用中,无法借助相匹配语言进行编译处理,那么此时容易影响程序应用效果,干扰到程序编程结果的实用性。从目前应用情况来看,在编译语句的应用中,经常使用到的语句类型包括选择性语句、循环性语句等。从编程程序应用情况来看,也会将这些语句关联在一起进行应用,并对语句之间的关系进行梳理,从而提升计算机软件编程内容的运营速度,提升编程结果的时效性。 

二.嵌入式背景下C语言编程软件设计架构

C 语言在嵌入式软件开发中有着非常广泛的应用,然而由于 C 语言具有较强的灵活性,也导致了代码管理与维护问题较为繁琐复杂。和传统形式的软件编程相比较,嵌入式系统编程是以某个相应的硬件平台为载体的,服务的是一种专用的计算机系统,不单单有对硬件操作的复杂性,同时还表现出应用层次的通用性。所以,在实际开展软件开发时,选取适宜的软件框架以及优异的设计方法,加强对项目的工程化管理,可以有效地指导软件开发的层次划分以及功能模块规划设计。

(一)分层架构

1.分层方向

现阶段技术分层主要涵盖了两个大方向:

(1)自顶往下的方法,这种方法在当下嵌入式系统应用层设计中有着十分广泛的应用,不仅仅是一种从抽象向具体的开发模式,同时也是一种基于逻辑总体描述规范或最上层的程序为出发点逐步往下拓展的操作模块。

(2)自底层往上的方法,是一种实际功能发展为抽象概念,这种模式在硬件驱动开发与设计中有着较为普遍的应用。先进行功能模块的探究,确保其能够对目标应用对象产生一定的作用,同时研究普遍使用的操作方式。

不管是自顶往下方法,还是自底往上方法,两种方法都有着各自的优势与劣势,为了确保能够获得理想的效果,在实际进行系统软件设计与开发时,应当要在明确软件实际功能需求的基础之上,科学合理地使用某一种方法或两者混合使用。例如在逻辑分析应用过程中, 应当要选取自顶往下的方法,进一步明确功能模块的逻辑性,降低不同功能模块的开发时间。在进行硬件操作过程中,则需要选用自底往上的方法,充分明确硬件操作规范,将各个操作从中独立出来,从而为上层应用的模块移植提供良好的支持。

2.分层架构设计方法

之所以对架构进行分层设计与开发,其重要目的是为了有效满足编程过程中不同功能的具体需求,将需要实现的总体功能划分为若干个独立子功能,在确保各个子功能可以实现对应功能后,再对其进行整合。所以, 必须要依照功能需求的不同将代码转化为各种概念层次

的模型,指出不同模块之间的关联性,之后再进行科学连接,从而确保总体的复杂功能得到全面实现。在实际进行分层过程中,也需要严格依照以下原则进行:

(1)在开展分层过程中应当要最大程度降低层与层之间的联系,既可以避免出现相互影响的问题,也能够防止层与层之间相互制约,减小模块的可移植性[4]。当某一个功能层出现故障或者问题时,并不会对整体功能产生较大影响,仅仅会导致具备功能运行不正常。相关技术人员在进行故障排查与解决时,也只需要对问题层进行调整与改进,不会妨碍其他功能层的正常运行。

(2)所有功能层都需要为其上一层提供相应的支持,同时确保所有层都可以独自有效解决一个问题,比如频率收集功能, 能够依照其实现的功能将其划分为数据收集、数据分析以及数据显示三个层,每个层之间存在特定的关联性, 共同实现模块功能。

(3)最大程度提高各个功能层之间的内聚性,同时还需要维持各自之间的低耦合性,对各个模块内部进行规划,获得理想形态下的模块,进一步改善模块的可移植性能。当将模块功能划分得十分详细时,能够有效降低各个功能模块实现的难度,然而当划分出较多数量的功能模块时,又会导致复杂程度越来越高,因此要做到科学规划层次与功能模块,加强对其调整与改进,使其达到理想状态。

嵌入式系统必须要开展面向对象、去中心化设计, 在实际进行设计过程中需要将系统逻辑架构划分为四个层次,分别是应用管理层、算法协议层、功能延伸层以及硬件驱动层,每个层次都有着各自的功能:

(1)应用管理层主要是进行应用功能调度、显示界面关联等 ;

(2)算法协议层的主要功能是数据库访问、协议管理和分析、资源整理等 ;

(3)功能延伸层的主要功能是确保不同器件的功能可移植性、接口连接访问以及器件保持较低耦合性等 ;

(4)硬件驱动层主要是提供硬件操作源语言,同时确保各个硬件功能的相互独立性。

上述分层方法与原则,合理运用了可达到相似功能的功能模块,一方面实现了代码应用、算法以及硬件功能间保持较低关联性,另一方面也有效减小了不同功能开发与达成时的耦合性,防止出现交叉混乱的现象,进一步提高了嵌入式系统程序代码的简洁性,表现出更高的应用价值。良好的算法必须要能够支持多个不同的应用逻辑模型算法,相应的优秀的功能模块也能够满足不同应用与执行环境的使用需求,从而改善嵌入式系统软件功能模块设计、实施与移植的速度。

(二)系统软件开发与设计

1.基于C语言的面向对象化

类的概念一般存在于面向对象的语言中[5]。通常情况下面向对象涵盖了三种特性,分别是封装、继承以及多态。封装表示为将数据与函数结合起来形成一个共同体,在实际调用过程中能够实现两者的共同调用。继承表示为依托于结构嵌套能够达到对对象属性继承的目的。多态表示在实际进行函数调用过程中,可以忽视数据调用途径。然而在大多数情况下,为了保障软件代码架构简单、操作便捷,往往只进行数据和函数的封装。此外,在一定情况下还会出现 C 语言编程过程中,数据和函数之间关联性不强以及结构不合理等问题,C 语言模拟面向对象的最终目的便是解决该问题。

2.模块重用设计

通常情况下为了促进 C 语言代码的重用,主要运用模块化的方式来实现,一般涵盖了头文件以及函数实现文件[6]。正常来说有两种模式进行函数定义,分别是宏定义以及函数,首先,宏定义的主要优势体现在可以有效节省内存空间,同时和参数类型并没有直接联系,但是其也有着自身的缺陷,表现为部分功能难以依托于宏来实现。其次,函数往往能够实现多种多样的功能,不仅能够重复多次使用,同时也能够有效接受第三方函数的数据,甚至还能够将最终运算结果当成是返回值输入。  

总结

综上所述,嵌入式系统应不断延伸,加快更新速度,依托于优异的软件设计架构,合理的软件开发流程,降低重复设计与探究,可以显著改善项目开发速度与品质。结合 C 语言灵活性特征,开发适宜的软件设计架构,可以有效强化程序设计开发、执行以及移植效率,表现出较高的应用价值。

参考文献

[1] 胡其荣.基于C语言技术的计算机软件编程发展探究[J].电脑编程技巧与维护,2020(11):37-38+55.DOI:10.16184/j.cnki.comprg.2020.11.013.

[2] 王肖飞.基于C语言的计算机软件编程技术探究[J].无线互联科技,2018,15(05):47-48.

[3] 张文军.基于C语言的计算机软件编程技术分析[J].信息通信,2020(05):289-290.

[4] 刘燕超,张红梅,田庆阳,等.嵌入式FTP服务器的设计与实现[J].桂林电子科技大学学报,2013,33(5):371373.

[5] 王亚昕,李孝庆,伍高飞,等嵌入式C代码释放后重用缺陷检测[J]西安电子科技大学学报,2021,48(1):124-132+148.

[6] 殷莉,温贇.C语言在DSP嵌入式系统中的应用与开发[J].电脑知识与技术,2020,16(29)

》在线投稿系统

*文章题目:
*作者姓名:
*电子邮箱:
*通讯地址:
*联系方式:

  备      注:

*上传稿件:

支持上传.doc,.docx,.pdf,.txt,.wps文件

投稿须知:

1、审稿结果将于1~7个工作日以邮件告知,请注意查收(包含录用通知书、审稿意见、知网CNKI查重报告)。

2、提交投稿后,若7个工作日之内未接到录用通知,则说明该文章未被录用,请另投他刊。

3、凡投寄本刊稿件,如在内容上有侵权行为或不妥之处,均应文责自负。本刊有权对来稿进行文字编辑、加工和修改,如不同意,请附说明,以便妥善处理。

4、多作者文稿署名时须征得其他作者同意,排好先后次序,通知用稿后不再改动。

5、凡投往本刊稿件一经录用发表,其版权归本刊所有。

6、本刊已全文录入中国知网、万方、维普等数据库,如作者不同意被收录,请提前申明,未申明者,本刊一律视为同意被收录。

7、请勿一稿多投。