建立数据字典的一点总结
这两天在进行数据字典的建立。看到两种建立数据字典的途径:一种是将已有的其它同类操作系统的源码拿来,找出都有哪些文件和函数。另一种是根据已有的理论书籍(包括《Real-Time Concepts for Embedded Systems》)来找出MyOS(51)所需要的和未来需要的函数操作与对象。后来我决定同时使用两种方法来建立数据字典
这两天在建立数据字典的过程中使用到了若干工具:
free mind,用树型的mind map结构来帮助建立数据字典(可能是我独创的方法!^o^)。把MyOS(51)作为核心,然后下一层是MyOS(51)所包含的若干文件夹,再下一层是每个文件夹中包含的说明文档、用户文档、开发文档、源码文件和各个流程图的文件名。对于源码文件的下一层是源码所包含的函数与公有变量。在函数的下一层是函数的输入、输出以及调用函数名。由此将我所需要的所有函数与变量全部罗列出来。
Visio 2003, 用来绘制图表文件。包括每个函数的流程图、函数间的数据流图、系统的控制流图、状态转换图。
Editplus,不用多说!用来编写源码和文档最好的编辑器。(至少我是这么认为的!)
另外!我借用从Small RTOS的版本控制方式与格式来设计出了适合版本控制的源码与文档模板。如下
/*********************************************************************************************************
** MyOS(51)
** The Real-Time Kernel(For Keil c51)
**
** JiangE
** All Rights Reserved
**
** V0.01
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: includes.h
**创 建 人: 蒋毅
**最后修改日期: 2005年1月5日16:57:14
**描 述: 包含了其它头文件的头文件。
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
还有函数功能描述段落
/*********************************************************************************************************
** 函数名称:
** 功能描述:
** 输 入:
**
**
** 输 出:
**
**
** 全局变量:
** 调用模块:
********************************************************************************************************/
===============================================
在细化的过程中,遇到了很多以前没有考虑到和没有注意到的技术问题,开始成为一个个需要逾越的障碍!又有好多书要看了!具体要解决的方面有如下几点:
一、问题:Keil C51的编写与ANSI C总体上相同,但是还有很多差别。
任务:在编写前多阅读已有的代码,学习总结差别,让不同的方式成为我新的编写习惯。
二、问题:Small RTOS(51)与uC/OS-II之间虽然主体结构上相似相同,但是一些函数的命名与函数的功能还是有一定差别,同时他们的一些函数命名与功能同理论书籍上提及的操作名称与功能完全不同。有时是 理论上几种内核对象的功能总和 只与 实际系统的一个内核对象 相同(例如:有的系统的消息队列像是管道与消息队列的结合体);有时对象名称与功能发生了置换和变更(例如:有的信号量更像是事件寄存器);有时,理论上的一个操作被实际的操作系统用两个函数来实现了(例如:向消息队列发送消息的操作,被实现为一个 中断向消息队列发送消息的函数 和一个 任务向消息队列发送消息的函数。
任务:阅读已知其它操作系统的函数功能描述文档,了解具体函数所实现的功能,不被函数名所迷惑。在数据字典中创建MyOS(51)所需要的函数名表与功能描述。按照需求和现实条件来实现MyOS(51)需要具有的内核函数。
这两天在进行数据字典的建立。看到两种建立数据字典的途径:一种是将已有的其它同类操作系统的源码拿来,找出都有哪些文件和函数。另一种是根据已有的理论书籍(包括《Real-Time Concepts for Embedded Systems》)来找出MyOS(51)所需要的和未来需要的函数操作与对象。后来我决定同时使用两种方法来建立数据字典
这两天在建立数据字典的过程中使用到了若干工具:
free mind,用树型的mind map结构来帮助建立数据字典(可能是我独创的方法!^o^)。把MyOS(51)作为核心,然后下一层是MyOS(51)所包含的若干文件夹,再下一层是每个文件夹中包含的说明文档、用户文档、开发文档、源码文件和各个流程图的文件名。对于源码文件的下一层是源码所包含的函数与公有变量。在函数的下一层是函数的输入、输出以及调用函数名。由此将我所需要的所有函数与变量全部罗列出来。
Visio 2003, 用来绘制图表文件。包括每个函数的流程图、函数间的数据流图、系统的控制流图、状态转换图。
Editplus,不用多说!用来编写源码和文档最好的编辑器。(至少我是这么认为的!)
另外!我借用从Small RTOS的版本控制方式与格式来设计出了适合版本控制的源码与文档模板。如下
/*********************************************************************************************************
** MyOS(51)
** The Real-Time Kernel(For Keil c51)
**
** JiangE
** All Rights Reserved
**
** V0.01
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: includes.h
**创 建 人: 蒋毅
**最后修改日期: 2005年1月5日16:57:14
**描 述: 包含了其它头文件的头文件。
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
还有函数功能描述段落
/*********************************************************************************************************
** 函数名称:
** 功能描述:
** 输 入:
**
**
** 输 出:
**
**
** 全局变量:
** 调用模块:
********************************************************************************************************/
===============================================
在细化的过程中,遇到了很多以前没有考虑到和没有注意到的技术问题,开始成为一个个需要逾越的障碍!又有好多书要看了!具体要解决的方面有如下几点:
一、问题:Keil C51的编写与ANSI C总体上相同,但是还有很多差别。
任务:在编写前多阅读已有的代码,学习总结差别,让不同的方式成为我新的编写习惯。
二、问题:Small RTOS(51)与uC/OS-II之间虽然主体结构上相似相同,但是一些函数的命名与函数的功能还是有一定差别,同时他们的一些函数命名与功能同理论书籍上提及的操作名称与功能完全不同。有时是 理论上几种内核对象的功能总和 只与 实际系统的一个内核对象 相同(例如:有的系统的消息队列像是管道与消息队列的结合体);有时对象名称与功能发生了置换和变更(例如:有的信号量更像是事件寄存器);有时,理论上的一个操作被实际的操作系统用两个函数来实现了(例如:向消息队列发送消息的操作,被实现为一个 中断向消息队列发送消息的函数 和一个 任务向消息队列发送消息的函数。
任务:阅读已知其它操作系统的函数功能描述文档,了解具体函数所实现的功能,不被函数名所迷惑。在数据字典中创建MyOS(51)所需要的函数名表与功能描述。按照需求和现实条件来实现MyOS(51)需要具有的内核函数。