CN101042646A - 一种在嵌入式软件中记录版本信息的方法 - Google Patents
一种在嵌入式软件中记录版本信息的方法 Download PDFInfo
- Publication number
- CN101042646A CN101042646A CN 200710074006 CN200710074006A CN101042646A CN 101042646 A CN101042646 A CN 101042646A CN 200710074006 CN200710074006 CN 200710074006 CN 200710074006 A CN200710074006 A CN 200710074006A CN 101042646 A CN101042646 A CN 101042646A
- Authority
- CN
- China
- Prior art keywords
- file
- software
- version information
- information
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种在嵌入式软件中记录版本信息的方法,包括步骤:a.在软件中定义一个版本信息的全局变量,进行初始化;b.将文件编译生成可执行镜像文件;c.根据文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;d.将修改后的文件转换成bin文件;e.压缩bin文件,同时将版本信息放在压缩文件的文件头;f.将软件版本解压运行后通过读取全局变量以获取版本信息。采用本发明所述方法,制作版本后能够准确无误地获取版本信息,对分析软件在哪个版本的故障很有帮助。
Description
技术领域
本发明涉及一种在计算机***中,特别是在单板嵌入式软件中记录软件版本信息的方法。
背景技术
对于嵌入式软件,软件版本的升级是经常性的,一般记录信息的方法有两种:
一、在程序某个文件中写死软件的版本,这种方法非常不灵活,每次需要版本升级都要修改该文件,因此很少采用。
二、生成了可执行镜像文件后采取工具将版本压缩后在压缩文件前面添加上版本信息,这种方法比较常用,但这种方法需要软件从压缩的文件头去获取版本信息,如果由于执行了版本回退、程序错误、软件版本文件被破坏或者丢失,当前在内存运行的软件可能无法准确获取当前运行的版本信息。
发明内容
本发明的目的是为了解决版本制作过程中如何添加版本信息,使当前在内存中运行的软件准确无误的获取自己当前的版本信息。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种在嵌入式软件中记录版本信息的方法,包括步骤:
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记录版本信息存入黑匣子文件,事后可以通过版本信息分析异常发生在哪个版本中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1、一种在嵌入式软件中记录版本信息的方法,其特征在于,包括步骤:
a、在软件中定义一个版本信息的全局变量,进行初始化;
b、将文件编译生成可执行镜像文件;
c、根据文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;
d、将修改后的文件转换成bin文件;
e、压缩bin文件,同时将版本信息放在压缩文件的文件头;
f、将软件版本解压运行后通过读取全局变量以获取版本信息。
2、如权利要求1所述的在嵌入式软件中记录版本信息的方法,其特征在于,步骤a中全局变量也可以不进行初始化。
3、如权利要求1所述的在嵌入式软件中记录版本信息的方法,其特征在于,所述步骤c还包括,如果全局变量没有初始化,则根据对可执行镜像文件的分析,在步骤d之后分析出全局变量在bin文件中的位置,然后将版本信息添加到此位置。
4、如权利要求1所述的在嵌入式软件中记录版本信息的方法,其特征在于,步骤c中所述文件格式包括ELF格式、COFF格式、OUT格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100740063A CN100462916C (zh) | 2007-04-10 | 2007-04-10 | 一种在嵌入式软件中记录版本信息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100740063A CN100462916C (zh) | 2007-04-10 | 2007-04-10 | 一种在嵌入式软件中记录版本信息的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101042646A true CN101042646A (zh) | 2007-09-26 |
CN100462916C CN100462916C (zh) | 2009-02-18 |
Family
ID=38808183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100740063A Expired - Fee Related CN100462916C (zh) | 2007-04-10 | 2007-04-10 | 一种在嵌入式软件中记录版本信息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100462916C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794401B (zh) * | 2010-01-15 | 2012-01-25 | 华为终端有限公司 | 闪存的安全启动方法及其数据卡 |
CN103473066A (zh) * | 2013-09-22 | 2013-12-25 | 南车株洲电力机车研究所有限公司 | 一种VxWorks image文件添加和读取版本号的方法及装置 |
CN102929600B (zh) * | 2012-06-13 | 2016-06-29 | 许继电气股份有限公司 | 基于elf的监控***版本识别方法 |
CN107391127A (zh) * | 2017-07-06 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 软件版本信息保存方法和*** |
CN107844385A (zh) * | 2017-11-08 | 2018-03-27 | 北京潘达互娱科技有限公司 | 一种基于共享内存的变量读写方法及装置 |
CN108227579A (zh) * | 2017-12-29 | 2018-06-29 | 深圳市元征科技股份有限公司 | 一种车辆诊断信息的处理方法及装置、电子设备 |
CN108845935A (zh) * | 2018-05-30 | 2018-11-20 | 武汉高仕达电气有限公司 | 一种嵌入式软件测试方法及*** |
CN110858147A (zh) * | 2018-08-24 | 2020-03-03 | 深圳市优必选科技有限公司 | Mcu信息获取方法及终端设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278979A (en) * | 1990-12-20 | 1994-01-11 | International Business Machines Corp. | Version management system using pointers shared by a plurality of versions for indicating active lines of a version |
JPH09265358A (ja) * | 1996-03-27 | 1997-10-07 | Ekushingu:Kk | ディスクアレイ装置 |
JP2002333983A (ja) * | 2001-05-08 | 2002-11-22 | Sharp Corp | プログラム変換方法及びプログラムを記録した記録媒体 |
CN1286008C (zh) * | 2004-03-29 | 2006-11-22 | 中兴通讯股份有限公司 | 一种实现单片机软件版本更新的方法和装置 |
CN100407659C (zh) * | 2006-02-14 | 2008-07-30 | 华为技术有限公司 | 一种软件版本升级的实现方法 |
-
2007
- 2007-04-10 CN CNB2007100740063A patent/CN100462916C/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794401B (zh) * | 2010-01-15 | 2012-01-25 | 华为终端有限公司 | 闪存的安全启动方法及其数据卡 |
CN102929600B (zh) * | 2012-06-13 | 2016-06-29 | 许继电气股份有限公司 | 基于elf的监控***版本识别方法 |
CN103473066A (zh) * | 2013-09-22 | 2013-12-25 | 南车株洲电力机车研究所有限公司 | 一种VxWorks image文件添加和读取版本号的方法及装置 |
CN107391127A (zh) * | 2017-07-06 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 软件版本信息保存方法和*** |
CN107844385A (zh) * | 2017-11-08 | 2018-03-27 | 北京潘达互娱科技有限公司 | 一种基于共享内存的变量读写方法及装置 |
CN107844385B (zh) * | 2017-11-08 | 2021-04-23 | 北京龙之心科技有限公司 | 一种基于共享内存的变量读写方法及装置 |
CN108227579A (zh) * | 2017-12-29 | 2018-06-29 | 深圳市元征科技股份有限公司 | 一种车辆诊断信息的处理方法及装置、电子设备 |
CN108845935A (zh) * | 2018-05-30 | 2018-11-20 | 武汉高仕达电气有限公司 | 一种嵌入式软件测试方法及*** |
CN110858147A (zh) * | 2018-08-24 | 2020-03-03 | 深圳市优必选科技有限公司 | Mcu信息获取方法及终端设备 |
CN110858147B (zh) * | 2018-08-24 | 2023-12-29 | 深圳市优必选科技有限公司 | Mcu信息获取方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100462916C (zh) | 2009-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101042646A (zh) | 一种在嵌入式软件中记录版本信息的方法 | |
CN102521316B (zh) | 用于日志分析的模式匹配框架 | |
CN1811768A (zh) | 用于协调图象元数据的***和方法 | |
CN1656457A (zh) | 管理本机应用程序数据的***和方法 | |
CN1839384A (zh) | 数据集比较与净变化处理 | |
CN101046763A (zh) | 基于脚本的自动化测试***的实现方法 | |
CN1707481A (zh) | 用于数据模型中实体的自动维护与修复的***和方法 | |
US20120030209A1 (en) | Metadata/content re-association system and method | |
US20070220481A1 (en) | Limited source code regeneration based on model modification | |
CN105095304A (zh) | 日志模板生成方法及设备 | |
CN100338605C (zh) | 一种可扩展标记语言文档修改痕迹的记录方法 | |
CN102609484A (zh) | 一种通用***日志管理方法 | |
CN108959497A (zh) | 分布式文件***日志处理方法、装置、设备及存储介质 | |
CN101051947A (zh) | 一种设备配置参数创建方法及基站单板配置*** | |
CN1552018A (zh) | 软件编译器的嵌入***的坚固记录*** | |
CN1975728A (zh) | 使用最少的日志条目将数据库更改记入日志的设备和方法 | |
CN1717730A (zh) | 电力故障恢复方法 | |
CN102792281A (zh) | 存储设备 | |
CN111930708A (zh) | 基于Ceph对象存储的对象标签的扩展***及方法 | |
CN101063939A (zh) | 可更新操作***程序的嵌入式装置及其方法 | |
CN101071428B (zh) | 产生一档案结构的方法、装置及*** | |
CN101662394A (zh) | 自动化测试***和自动化测试方法 | |
CN1945549A (zh) | 一种不依赖文件***恢复数据的方法 | |
CN100340988C (zh) | 芯片验证***和方法 | |
CN112764740B (zh) | 一种基于Shell的应用在***间文件交互中的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090218 Termination date: 20150410 |
|
EXPY | Termination of patent right or utility model |