如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C语言嵌入式系统编程软件设计研究论文C语言嵌入式系统编程软件设计研究论文摘要:近年来,C语言编程在嵌入式系统越来越受到广大技术人员的青睐。介绍了C语言系统软件的编程思路,阐述了嵌入式系统编程软件架构的基本知识,包括模块划分、分层架构、中断服务程序编写、系统软件设计要领等,并给出了在编写嵌入式系统C语言时基本架构所包含的主要内容。关键词:C语言;嵌入式系统;程序框架1概述C语言的广泛应用主要是因其具有出色的移植性,能够在多种不同体系结构的软件或硬件平台上运行;语法机制结构紧凑、使用灵活并能直接访问硬件;并具有很高的运行效率。与一般形式的软件编程相比,嵌入式系统有其特殊性,其面向的是一种专用的计算机系统,既有应用层次上的通用性,也有硬件操作的复杂性。因此,运用高效合理的编程构架和设计流程,规范管理编程的过程,对于提高程序的安全性可靠性是十分有利的,同时可以提高软件的开发、执行、维护效率。在常规软件编程基础上,把分层思想、模块化思想、面向对象技术应用到嵌入式C语言编程系统中,对嵌入式编程中的模块划分、分层架构、中断服务程序编写、系统软件设计思路进行讨论。嵌入式系统的高速发展使得对其编程的效率与质量有了更高的要求和标准,更需要一种更加普遍并高效的编程框架与基本标准,以供广大技术人员参考与使用。2模块划分模块划分是指把一个复杂的、综合性的程序根据可实现的不同功能分成小段,每一小段可实现一个特定的功能。软件应尽量减少与外部模块的联系,提高程序的可移植性,并且明确其可实现的功能。一般情况下,嵌入式系统包含硬件驱动模块与软件功能模块。一个硬件驱动模块对应一种特定的硬件,划分软件功能模块时应尽量满足低偶合、高内聚的基本要求。设计实现不同功能的模块时,有两个重要原则,(1)模块的独立性,各个功能模块之间不会有信息交叉混淆,不会互相影响互相依存,一个模块中函数指令不需要其他模块的变量,模块之间的连接通过函数接口来实现。(2)正交性,各个功能模块是唯一确定的,其中的变量与其实现的功能是无歧义的。在划分模块时有下列注意事项:(1)某一个模块提供给其他功能模块所需调用的数据和外部函数需在头文件(.h)中以extern关键字来声明。(2)某功能模块内的全局变量与函数信息需在.c文件的开头以static关键字进行声明。(3)一个模块由一个.h文件和一个.c文件结合而成,此模块的接口在头文件(.h)中声明。(4)头文件(.h文件)中不能定义任何变量。定义变量是汇编阶段的概念,会依据要求分配内存。3分层架构3.1分层方向分层技术有两个方向,目前嵌入式系统应用层开发常用的方法是自顶向下,即从抽象到具体,从逻辑整体描述规范或者最顶层的程序为起点向下延伸到具体的操作模块。自底向上是另一个思路,即从具体功能到抽象实现,是在硬件驱动开发中常用的方法。先分析功能模块,使其作用在某个应用对象上,分析常用操作的方式。这两个方法各有优势,为了达到较好的效果,在系统软件设计过程中,可按照具体需求把这两种方法混合使用。在逻辑分析应用时采用自顶向下的方式,规范功能模块的逻辑表达,提高各个模块的开发、执行、移植效率。使用自底向上的方式规范硬件操作,把单位操作从中抽象出来,以便进行上层应用的模块移植。3.2分层架构设计方法分层是为了更好地满足编程时各功能需要,把一个总体功能分解成一个个小功能,分层进行实现,再整合。这样就需要把代码分解成不同概念层次的模块,确定各个模块的联系,进行合理连接,最终实现复杂的总体功能。分层时有固定的需要遵循的原则:(1)分层时尽量减小层间关联性,不要互相影响互相制约,降低模块的可移植性。若某一层出现了错误或问题,也可以不影响整个程序,只影响部分功能的实现。则技术人员可有针对性地对这一层进行修改完善,不对其他层产生影响。(2)每层需要为该层的上一层提供支撑,每层可以独立地解决一个特定的问题,如频率采样功能,可以分为数据采集层、数据处理层、数据显示层等,层与层之间相互联系,实现功能。(3)尽量实现层与层之间的高度内聚、相互之间又低耦合,每层内部对模块进行划分,实现最优模块化,可移植性也最强。如果把功能分解得越简单清晰,实现起来也就越容易,但若把功能目标太过细化,又会引起调用次数增多,复杂程度增大的问题,所以合理划分层次和模块,是需要不断尝试和修改的。以自底向上、自顶向下与模块化的方法进行分层架构。首先,对嵌入式系统应用需求进行梳理,为把各种不同的模块功能抽象出来,先采取自顶向下的方向,再由软件层次转化到概念层次。这是一个必经的过程,把目标需求抽象出来,转化为开发软件的功能。比如,采集信号频率,需要信号的数据,输入嵌入式系统,经算法和程序,在LCD屏上显示频率,这涉及到了硬件驱动、数据采集与处理、数据显示等层次。接下来是对硬件所需实现的功能进行抽象,采用自底向上的