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