4.2.2.2 C语言模块的结构
从程序结构而言, 电气传动系统的C语言工程由系统程序、框架程序和各模块程序组成. 系统程序包括必要的命令文件(CMD文件, 用以实现DSP代码的空间分配)、对应硬件外设的头文件(如F240xA.h)以及其它的一些系统配置文件(如GEL文件、LIB文件等). 框架程序描述系统实现的总体脉络, 贯联各个子模块程序来完成系统总体算法. 而实现电气传动系统具体控制算法的各模块程序则从细节上保证着系统实现的硬件关联性、软化可靠性和效率.

TI的算法标准和指导中给出建议: C语言模块应在(几乎)不增加程序开销的情况下实现面向对象和基于模块的性能. 更重要的是, 两个不同的算法模块在集成为一个统一的工程时, 应该不需要对算法模块的代码做任何的修改[9].
C语言模块一般包含接口和实现两个部分, 一个C语言模块也就是配备一个或多个接口的实现. 接口部分包括类型定义, 以及函数、常数及变量等的声明, 通常放在头文件中. 应当注意, 一般头文件中只存放"声明", 而不存放"定义"[10]. 实现部分则可能包括与硬件相关的或无关的模块初始化、变量的定义、函数等.
一个C语言模块的接口和实现的示例如图4 2所示. 框架程序中包含(#include)了模块提供的接口文件(头文件), 就可以直接调用模块的具体实现. 由于模块被多处调用而产生重复定义的问题可采用条件编译语句(#ifndef等)来解决, 如图中接口头文件中的斜体部分代码所示.

没有评论:
发表评论