基于嵌入式系统的C语言编程软件设计研究

(整期优先)网络出版时间:2022-09-05
/ 2

基于嵌入式系统的C语言编程软件设计研究

董光忠

南京灿能电力自动化股份有限公司,江苏省南京市  210000

摘要近年来,现代信息技术飞速发展,C语言也得到了广泛应用,本文根据流行的软件设计思想、面向对象设计技术和C语言嵌入式系统编程应用的层次结构,讨论了系统设计思想、现实技术分层、面向对象技术。

关键词C语言;嵌入式系统;软件设计;程序框架

引言

与一般编程不同,嵌入式系统是在基于特定硬件平台的计算机系统中实现特定程序。因此,在软件开发过程中,为了更准确地定义软件开发模块的层次结构和功能结构,采用精心设计的软件结构及其开发方法对项目进行管理。这不仅提高了软件系统开发、实施和维护的效率,还提高了软件系统的抗压性、可用性和可靠性。

1系统设计思路

当前系统开发中的面向对象程序并不意味着它只能在C++或Java等面向对象语言中运行。软件模块也可以用C语言实现,重要的是如何体现模块的“高一致性”,提高代码的可用性和灵活性。随着嵌入式软件系统规模和复杂性的增加,能够正常运行的区域性子项目和复杂程序的开发与维护已成为系统开发的中心主题。

1.1自顶向下与自底向上

在模块化实现过程中,通常采用分层技术来满足应用需求,实现不同层次的抽象模块结构,确定不同层次之间的依赖关系,最终将应用需求转化为软件设计。这是从抽象到具体的方向,从一般规则和高级软件逻辑的描述到系统开发中使用的内置操作模块。例如,LCD图像管理可能包括各种网络操作,如单一照明等,但另一个方向是从特定的工作方法到抽象的工作方法,从应用客户端到硬件开发和自下而上的分析。在LCD屏幕驱动程序的开发中,可以使用诸如“开点”和“闭点”之类的操作语言,这些语言可供高级开发人员使用。

在硬件方面,为了满足不同应用级别的需求,采用了自底向上的方法。逻辑应用使用基于应用抽象和标准化逻辑公式的下行链路通信方法,将模块与用于开发、实现、重用和维护的模块分离[1]

1.2最优模块化

无论具体功能是什么,功能模块都是最小的代码集,软件模块的实现必须要简单、易于理解、方便适用。外部依赖越少越好。通过这种方式,我们可以更好地组织解决方案的开发、集成和重用。操作模块的设计必须遵循两个原则,紧凑性:闭路模块不会丢失内部信息或调用其他模块,而是通过功能接口相互通信。第二个是正交的,每个模块的功能点必须独特、清晰,并以某种方式集成到系统中。在设计纯正交模块时,每个操作都受到该特性的限制,每个系统的属性只能以一种方式修改,而不会影响其他功能,从而简化了复杂的结构。例如,在设置灯光和阴影时,显示功能的正交设计不会影响色度,并且会单独检查颜色平衡,否则,改变用户视野会导致严重的问题。在过于复杂的问题领域,完全紧凑的模块设计是不明智的,但必须最大限度地提高可靠性。

2嵌入式系统开发的分层架构

2.1分层设计方法

优化模块化自底向上和自底向上系统开发的概念,根据应用和嵌入式硬件、专用系统和软件的特点,对系统的逻辑结构和软件功能模块进行了分类和细分设计。

首先,采用自底向上的方法来满足嵌入式系统的实现要求。定义逻辑功能需求、细化概念层次并将其转化为程序层次是一个逐步理解需求并将其转化为开发需求的过程。例如,要开发电子罗盘,需要从X、y和Z传感器轴收集数据,将其转换为azimute数据,并在LCD屏幕上进行配置,以提供逻辑可视化、数据处理、硬件访问、硬件驱动器等功能。

因此,使用以下方法来抽象与硬件相关的功能,并尽可能明确应用程序开发所需的硬件来源,嵌入式系统通常是通过为软件提供基本的设备功能来开发的。嵌入式硬件的功能不仅使现有系统的开发变得困难,而且使其具有自治性,提高了软件重用的可能性。例如,传感器数据采集可分为硬件驱动程序和增强功能,以确保硬件和硬件的独立性。

第三,相邻层之间的信息管理和电话通信的层次结构通过自下而上的组合满足了上层的需求。

最后,结合不同的功能,对功能模块进行了优化和调整。更好的调制过程也是复制现有代码的最佳选择。

2.2分层技术的应用

在明确嵌入式系统层次结构和功能的基础上,对嵌入式系统的功能进行了灵活的设计和扩展。基于面向过程的思想,围绕处理器控制器将功能模块划分为逻辑电路,它分为功能模块、应用程序规划、硬件驱动程序、网络通信等。这种分离可以充分利用数据处理系统优化存储空间管理的能力,但同时存在应用程序的逻辑复制和高度的硬件依赖性。本文提出了一种将嵌入式对象系统分为四层的设计方法和层次结构:应用层、协议算法层、功能增强层和硬件驱动程序[2]

3基于C语言的系统软件设计

软件的实现与所使用的编程语言密切相关,基于C语言编程原理的集成语言系统的开发和C语言编程模型的灵活应用,不仅提高了项目开发的效率和代码生成的质量,而且便于代码维护。

3.1代码管理

首先,主目录包含基于层次结构的程序文件和全局变量。其他文件将根据应用程序管理级别、协议算法级别、角色扩展级别和硬件驱动程序级别存储在应用程序管理目录中。

其次,功能模块管理必须使用较少的全局变量,以实现模块设计的高度一致性,并通过功能参数传输数据。同一类型业务应用程序的相同硬件功能需要尽可能多的文件,在开发最高级的功能模块时,可以调用较低的功能模块,并避免焦碳或跳过调用。

3.2面向对象设计

分类概念通常存在于面向对象语言中,是特定类别数据的一组操作。本课程将解释数据和操作的两个主要领域,一般来说,对象有三个特征:紧密性、连续性和多态性。这意味着数据和功能由社区统一,并且可以在实际可访问时访问,在继承被标记为结构的子集之后,实现继承对象属性的目标。调用函数时,多模式意味着可以绕过数据调用模型。然而,在大多数情况下,仅使用数据和函数来确保软件结构的简单性。此外,根据具体情况,C语言编程中的数据、函数问题和结构之间的关系可能很小[3]

3.3模块重用设计

为了促进C语言代码的重用,它通常是在模块的基础上实现的。一般来说,功能定义首先包括宏定义和功能定义,宏定义的主要优点是,它实际上可以节省磁盘面积,这与参数类型没有直接关系,但也很难用宏实现功能。随后,函数通常执行不同的函数,这些函数不仅可以重用,而且可以有效地从第三个函数获取数据,即使操作的最终结果正好相反。

3.4嵌入式的图形化设计

近50%的项目有库存或没有市场,项目实施后,近30%的项目建议书又无法被通过。在过去的五年中,代码的平均长度增加了近10倍,嵌入式系统变得越来越复杂,这直接导致了许多类似的问题。此外,机械制造商、测试工程师和控制器工程师等许多行业的专家需要集成系统开发技术,但这些技术不具备开发嵌入式系统的能力。随着系统变得越来越复杂,不了解这项技术的专家若要应用这项技术,则需要探寻一种新的综合方法。图形系统是一项革命性的发展,它包括可视化图形编程和灵活的商业成品生产设施(COTS),帮助工程师和科学家更有效地开发、构建和实现嵌入式系统。

许多嵌入式系统必须独立工作,并需要大量时间并行工作。假设机器控制系统用于线路站控制、多轴旋转、光学控制和视频数据读取。在这个系统中,许多进程必须在特定条件下实时并行运行,在C等应用程序中使用传统工具和文本工具可能很快变得复杂。

4结语

如上所述,嵌入式系统的应用正在扩展,更新速度正在提高。通过优化软件开发结构和调整软件开发过程,我们可以认识到产品开发的重要性,减少设计研究的重复,显著提高项目开发的速度和质量。结合C语言的灵活性,开发合适的软件结构可以有效提高模型开发、实现和移植的效率,具有很大的应用价值。

参考文献

[1]董高云,周庭梁.安全苛求系统下的嵌入式C语言程序调试技巧[J].铁路计算机应用,2018,23(6):62-64.

[2]茅胜荣,肖家文,乔东海.嵌入式C语言中的面向对象与多线程编程[J].单片机与嵌入式系统应用,2019,17(5):22-26.

[3]甄华.基于ARM嵌入式系统的C语言编程分析[J].哈尔滨职业技术学院学报,2021(1):148-149.