公开/公告号CN101042646A
专利类型发明专利
公开/公告日2007-09-26
原文格式PDF
申请/专利权人 中兴通讯股份有限公司;
申请/专利号CN200710074006.3
发明设计人 成四海;
申请日2007-04-10
分类号G06F9/44(20060101);
代理机构深圳市永杰专利商标事务所;
代理人曹建军
地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部
入库时间 2023-12-17 19:07:33
法律状态公告日
法律状态信息
法律状态
2016-06-01
未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20090218 终止日期:20150410 申请日:20070410
专利权的终止
2009-02-18
授权
授权
2007-11-21
实质审查的生效
实质审查的生效
2007-09-26
公开
公开
技术领域
本发明涉及一种在计算机系统中,特别是在单板嵌入式软件中记录软件版本信息的方法。
背景技术
对于嵌入式软件,软件版本的升级是经常性的,一般记录信息的方法有两种:
一、在程序某个文件中写死软件的版本,这种方法非常不灵活,每次需要版本升级都要修改该文件,因此很少采用。
二、生成了可执行镜像文件后采取工具将版本压缩后在压缩文件前面添加上版本信息,这种方法比较常用,但这种方法需要软件从压缩的文件头去获取版本信息,如果由于执行了版本回退、程序错误、软件版本文件被破坏或者丢失,当前在内存运行的软件可能无法准确获取当前运行的版本信息。
发明内容
本发明的目的是为了解决版本制作过程中如何添加版本信息,使当前在内存中运行的软件准确无误的获取自己当前的版本信息。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种在嵌入式软件中记录版本信息的方法,包括步骤:
a、在软件中定义一个版本信息的全局变量,进行初始化;
b、将文件编译生成可执行镜像文件;
c、根据文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;
d、将修改后的文件转换成bin文件;
e、压缩bin文件,同时将版本信息放在压缩文件的文件头;
f、将软件版本解压运行后通过读取全局变量以获取版本信息。
其中,步骤a中全局变量也可以不进行初始化。
其中,所述步骤c还包括,如果全局变量没有初始化,则根据对可执行镜像文件的分析,在步骤d之后分析出全局变量在bin文件中的位置,然后将版本信息添加到此位置。
其中,步骤c中所述文件格式包括ELF格式、COFF格式、OUT格式。
采用本发明所述方法,制作版本后能够准确无误地获取版本信息,对分析软件在哪个版本的故障很有帮助。
附图说明
图1是本发明记录版本信息的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
图1所示为本发明记录版本信息的流程图,包括以下步骤:
101、在程序中定义一个版本信息全局变量,例如gchVerInfo[MAX_VER_INFO],将其进行初始化,也可以不进行初始化。
102、编译生成ELF格式镜像文件vxworks,不同的编译器可能生成不同的格式,不限于ELF格式,包括其他COFF或者OUT格式等等。
103、利用版本制作工具分析该ELF文件符号表,找到全局变量在ELF格式文件中存储的位置,将版本信息写入ELF文件中。其中,版本信息可以包括软件的版本、制作人、制作pc机的机器名、IP地址、制作时间等等信息。如果变量没有初始化,根据对ELF文件的分析,在下面104步骤之后找到变量在bin文件中存储的位置,将版本信息加到该位置。
104、将修改后的ELF文件再通过elfToBin的工具转换成bin文件。
105、压缩bin文件,将版本信息放在压缩文件的文件头,制作成版本。将版本信息放到文件头,可以起到运行后和gchVerInfo进行校验的作用,而且在没有软件运行的情景下直接分析该文件头也可以知道版本信息。
106、将软件版本下载到单板解压运行后通过读取全局变量gchVerInfo就可以获取板本信息,不用再去分析版本文件头。
如果软件发生异常重起,通过gchVerInfo记录版本信息存入黑匣子文件,事后可以通过版本信息分析异常发生在哪个版本中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
机译: 通过使用包括版本信息的控制信息来存储信息的方法信息的存储方法用于记录和/或再现到记录和/或再现的设备关于具有控制信息的信息的数据存储磁盘上的数据。现有信息和控制信息已更新。信息存储的M ecvel用于通过读取单元进行记录/回放/根据数据的再现磁盘的信息。用于记录和/或再现的设备,用于记录和/或再现数据。根据从磁盘读取的信息,用于存储信息的数据传输方法,用于检测信息的存储。 m u00ecdia通过 u00ecvel在计算机中阅读。
机译: 信息记录介质,将版本信息记录到信息记录介质中的方法以及使用该方法的记录和再现方法及装置
机译: C语言记录介质中的嵌入式软件的操作系统建模的方法和执行该方法的设备