[发明专利]提高嵌入式软件代码共享程度的方法有效
申请号: | 201310057286.2 | 申请日: | 2013-02-22 |
公开(公告)号: | CN103150162A | 公开(公告)日: | 2013-06-12 |
发明(设计)人: | 刘应江;徐鑫;刘昊;简楹;杨红霞 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提高 嵌入式 软件 代码 共享 程度 方法 | ||
1.提高嵌入式软件代码共享程度的方法,其特征在于,包括以下步骤:
使用源文件和头文件两种组织形式进行静态配置,在软件模块和操作系统之间形成中间层,采用宏描述的方式在源文件中定义顶层初始化登记表、模块登记表和模块族登记表的全局变量数组,在头文件中描述相关的全局变量成员;
根据顶层初始化登记表的内容完成系统的顶层初始化;
根据模块族登记表创建多个软件模块共享的公共消息处理任务,根据模块登记表创建非模块族的相应自消息处理任务,完成调度初始化,根据各软件模块的初始化周期和初始化步骤依次发送相关的调度指令;
各软件模块向中间层提供顶层初始化、调度初始化和消息处理函数,并通过中间层实现各软件模块之间的通信,从而完成软件模块的初始化和相应的消息处理。
2.如权利要求1所述的提高嵌入式软件代码共享程度的方法,其特征在于,顶层初始化包括以下步骤:
步骤201:获取顶层初始化登记表的基地址和元素个数;
步骤202:获取顶层初始化登记表中的第一个元素;
步骤203:调用该元素的初始化接口进行初始化;
步骤204:判断本次初始化是否成功,如果初始化失败,则返回顶层初始化错误,结束顶层初始化;否则,转步骤205;
步骤205:获取顶层初始化登记表中的下一个元素,如果上一个元素已经是顶层初始化登记表中的最后一个元素,则转步骤206;否则,转步骤203;
步骤206:启动调度初始化接口,如果调度初始化接口启动失败,则返回调度初始化错误,结束顶层初始化;否则返回顶层初始化成功,结束顶层初始化。
3.如权利要求1所述的提高嵌入式软件代码共享程度的方法,其特征在于,调度初始化包括以下步骤:
步骤301:定义软件模块描述和任务描述的全局变量数据,根据模块族登记表创建公共消息处理任务,并初始化软件模块描述和任务描述的相关数据;定义模块登记表中局部变量的元素个数,并分别设置相应局部变量的数值;
步骤302:获取模块登记表中第一个软件模块的登记信息及描述信息;
步骤303:判断该软件模块是否为模块族登记表中的模块,若是,则创建公共消息处理任务,并初始化全局变量的描述信息,转步骤304;否则,创建自消息处理任务,并初始化局部变量的描述信息,转步骤304;
步骤304:判断该软件模块是否为模块族登记表中的最后一个,如果不是,则转步骤305,否则,转步骤306;
步骤305:获取模块族登记表中下一个软件模块的模块登记信息及描述信息,转步骤303;
步骤306:定义全局变量初始化周期,并设置为1;定义软件模块的初始化步骤,并设置为1;
步骤307:获取模块登记表中的第一个软件模块;
步骤308:向该软件模块发送模块初始化任务消息,并等待初始化返回结果;
步骤309:判断初始化返回结果,如果初始化失败,则登记系统错误信息并返回初始化失败,调度初始化结束;否则转步骤310;
步骤310:判断模块初始化步骤是否小于最大初始化步骤,如果是则转到步骤311,否则转到步骤312;
步骤311:软件模块初始化步骤加1,转步骤308;
步骤312:判断当前的全局变量初始化周期是否小于全局变量最大初始化周期,如果是则转步骤313;否则,调度初始化结束;
步骤313:判断当前初始化周期是否还有软件模块需要进行初始化,是则全局变量初始化周期加1,转步骤314,否则转步骤315;
步骤314:判断该软件模块是否为模块登记表中的最后一个,如果不是,则转步骤315,否则,调度初始化结束,启动模块公共消息处理任务和自消息处理任务;
步骤315:获取模块登记表中下一个软件模块的模块,转步骤308。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310057286.2/1.html,转载请声明来源钻瓜专利网。