[发明专利]一种机载计算机软件通用框架设计方法有效
申请号: | 200910090176.X | 申请日: | 2009-07-29 |
公开(公告)号: | CN101620535A | 公开(公告)日: | 2010-01-06 |
发明(设计)人: | 祝明;郑泽伟;姜光泰;吕明云 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京慧泉知识产权代理有限公司 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191北京市海淀区学院路37*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明一种机载计算机软件通用框架设计方法,该方法有七个步骤:步骤一:建立软件开发环境、建立工程;步骤二:建立时间驱动类任务;步骤三:建立事件驱动类任务;步骤四:建立后台运行类任务;步骤五:建立时钟中断服务程序;步骤六:建立接口程序;步骤七:建立初始化程序。本发明将现有机载计算机应用软件所涉及的所有功能进行抽象得出该通用框架,使得在开发具体软件时根据不同需求进行相应任务实现以达到快速开发的目的,并有效增强了现有直接开发方式的可移植性、可靠性以及规范性。该软件通用框架设计方法已经在某飞行器的缩比验证机上得到成功应用,它具有广泛的实用价值和应用前景。 | ||
搜索关键词: | 一种 机载 计算机软件 通用 框架 设计 方法 | ||
【主权项】:
1、一种机载计算机软件通用框架设计方法,其特征在于:该方法具体步骤如下:步骤一:建立软件开发环境、建立工程(1)建立基于VxWorks操作系统的应用软件开发环境普通PC机做宿主机,机载计算机做目标机,宿主机安装Tornado,目标机能够运行VxWorks操作系统,双方通过以太网、串口建立连接;(2)在Tornado集成开发环境上建立应用软件工程建立步骤:运行Tornado→选择File菜单→选择New Project菜单项→选择创建工程类型→设置工程名称和路径→设置开发工具链→生成工程文件→完成工程创建;步骤二:建立时间驱动类任务时间驱动类任务由时钟中断发送的二进制信号量周期驱动执行,具体体现为周期任务,实现导航数据转换、控制律计算和遥测数据更新需要周期执行的相关功能;具体实现:建立PeriodOperate.c和PeriodOperate.h文件,并建立周期任务入口函数即void TaskPeriod(),该函数首先进行周期任务内部数据初始化,然后进入无限循环,在循环中先获取二进制信号量,如果获取二进制信号量不成功则该任务被堵塞直至获取信号量成功,获取成功后进行控制律计算、导航数据转换和遥测数据更新具体功能的实现;如果有数据需要输出则发送相应输出消息到输出消息队列;步骤三:建立事件驱动类任务事件驱动类任务是由内部、外部事件所触发执行的任务,由相应消息队列消息驱动执行,包括输入任务、输出任务、故障综合任务;(1)输入任务:输入任务完成各接口数据的输入处理功能具体实现:建立InputOperate.c和InputOperate.h文件,并建立输入任务入口函数即void TaskInputManage(),该函数首先进行输入任务内部数据初始化,然后进入无限循环,在循环中先获取输入消息队列消息,如果获取消息不成功则该任务被堵塞直至获取消息成功,获取成功后读取消息对应的标准数据结构数据,然后进行输入数据处理,处理完毕后如果有数据要输出则发送相应输出消息到输出消息队列;(2)输出任务:输出任务完成数据输出处理功能具体实现:建立OutputOperate.c和OutputOperate.h文件,并建立输出任务入口函数即void TaskOutputManage(),该函数首先进行输出任务内部数据初始化,然后进入无限循环,在循环中先获取输出消息队列消息,如果获取消息不成功则该任务被堵塞直至获取消息成功,获取成功后读取消息对应的标准数据结构数据,然后根据具体接口进行标准数据结构的具体化操作,调用输出接口程序完成数据输出;(3)故障综合任务:故障综合任务完成故障的记录、处理功能具体实现:建立ErrOperate.c和ErrOperate.h文件,并建立故障综合任务入口函数即void TaskErrManage(),该函数首先进行故障综合任务内部数据初始化,然后进入无限循环,在循环中先获取故障消息队列消息,如果获取消息不成功则该任务被堵塞直至获取消息成功,获取成功后根据具体系统进行故障记录以及故障处理;步骤四:建立后台运行类任务后台运行类任务是对实时性要求不高的、在其他任务执行间隙运行的任务,具体体现为检测任务;具体实现:建立BitOperate.c和BitOperate.h文件,并建立检测任务入口函数即void TaskBIT(),该函数首先进行检测任务内部数据初始化,然后进入无限循环,在循环进行计算机状态检测、外接设备状态检测,如果检测到故障则发送故障消息到故障消息队列,检测完成后进行延时;步骤五:建立时钟中断服务程序在时钟中断服务程序中释放二进制信号量激活周期任务;具体实现:在周期任务实现文件PeriodOperate.c和PeriodOperate.h中建立时钟中断服务程序即void TimerISR(),该函数中释放二进制信号量;步骤六:建立接口程序(1)输入接口程序:是相应接口的中断服务程序,完成相应接口数据输入功能,具体实现:在输入任务实现文件InputOperate.c和InputOperate.h中建立输入接口程序即void InputISR_XXX(),具体设备具体命名,进入该程序后,首先进行数据的标准化,然后发送相应输入消息到输入任务进行处理;(2)输出接口程序:完成接口数据输出功能具体实现:在输出任务实现文件OutputOperate.c和OutputOperate.h中建立输出接口程序即void Output_XXX(),具体设备具体命名,进入该程序后,首先将标准数据结构进行具体化,然后再调用具体设备的输出接口函数完成数据输出;步骤七:建立初始化程序进行全局数据初始化、设备接口初始化、信号量创建及初始化、消息队列创建及初始化、时钟中断设置及初始化和任务创建及初始化;具体实现:建立Initializtion.c和Initializtion.h文件,并建立初始化函数即void Ini(),该函数首先根据具体系统进行全局数据初始化、设备接口初始化,然后进行信号量创建及初始化、消息队列创建及初始化、时钟中断设置及初始化、任务创建及初始化。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910090176.X/,转载请声明来源钻瓜专利网。