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

为提高系统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
可以作为实际定义的规范标准。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值