您的位置:首页 > 其它

为提高系统Nucleus OS 模块间的独立性,对Nucleus Plus内核模块分析和优化的归纳

2015-09-24 10:04 387 查看
为提高系统Nucleus OS 模块间的独立性,对Nucleus Plus内核模块分析和优化的归纳

1、Nucleus Plus组件定义规范

文件 意义

XX_DEFS.H 组件的常量和数据类型。

XX_EXTR.H 组件的外部接口定义在这个文件中,外部接口一函数原型的方式定义。

XXD.C 组件的就爱那个图和全局比那里定义在这个文件中,除了很少的例外,
一个组件的数据结构仅仅只能被本组件访问。

XXI.C 组件初始化定义在这个文件中。

XXF.C 这个文件提供被组件管理的对象的信息。

XXC.C 这个文件提供组件的核心函数。

XXCE.C 这个文件提供组件的核心函数的错误处理外壳函数。

XXS.C 补充的组件函数定义在这个文件汇总。

XXSE.C 这个文件提供组件的补充的函数的错误处理外壳函数。

2、 为了定义数据类型和常量,一个软件组件通常包含一个include文件;
为了定义组件的外部接口,包含一个include文件。

3、 格式

文件的第一部分包含该文件的通用的信息,也就是序;

文件的第二部分主要描述内部的数据结构和内部的函数原型。

文件的剩下部分包括实际的函数。

序:描述文件的内容,标识文件的所有者,提供关于文件的版本信息。

序之后的内容:是常量、全局数据结构和组件内部函数原型。也包括了定义组件数据结构的或外部接口的include文件。

文件的剩余部分:包括C或汇编语言的函数。在每一个函数之前有一个描述块。

3、命名规则

更详细的命名规则,在《Nucleus PLUS源码分析》一书中,“第二章 实现约定”已做了详细的规范 。

4、实际分析Nucleus Plus内核源码规范

(1)以动态内存管理组件文件 Dynamic Memory Files为例,如下:

头文件:

dm_def.h 该文件定义了DM组件特定的数据结构和常量。
包含了两个头文件:"cs_defs.h"、"tc_defs.h" (通用服务组件、线程控制组件)
例:
typedef struct  CS_NODE_STRUCT
{
struct CS_NODE_STRUCT  *cs_previous;
struct CS_NODE_STRUCT  *cs_next;
DATA_ELEMENT            cs_priority;

#if     PAD_1
DATA_ELEMENT            cs_padding[PAD_1];
#endif

}  CS_NODE;
所有结构体和变量都是以特定的简写字母开头的,定义的对象都是大写字母、下划线;实体都是小写字母、下划线。

dm_extr.h 包含了一个头文件:dm_defs.h
其余的都是提供给外部的接口。

C文件:

dmc.c 包含了四个头文件:cs_extr.h、tc_extr.h、dm_extr.h、hi_extr.h
对于全局变量,则直接使用extern引用dmd.c文件中定义的全局变量。

(2)系统基础头文件 nucleus.h
可以作为实际定义的规范标准。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: