CN100462916C - 一种在嵌入式软件中记录版本信息的方法 - Google Patents
一种在嵌入式软件中记录版本信息的方法 Download PDFInfo
- Publication number
- CN100462916C CN100462916C CNB2007100740063A CN200710074006A CN100462916C CN 100462916 C CN100462916 C CN 100462916C CN B2007100740063 A CNB2007100740063 A CN B2007100740063A CN 200710074006 A CN200710074006 A CN 200710074006A CN 100462916 C CN100462916 C CN 100462916C
- Authority
- CN
- China
- Prior art keywords
- file
- version information
- global variable
- software
- image file
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种在嵌入式软件中记录版本信息的方法,包括步骤:a.在软件中定义一个版本信息的全局变量,进行初始化;b.将文件编译生成可执行镜像文件;c.根据文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;d.将修改后的文件转换成bin文件;e.压缩bin文件,同时将版本信息放在压缩文件的文件头;f.将软件版本解压运行后通过读取全局变量以获取版本信息。采用本发明所述方法,制作版本后能够准确无误地获取版本信息,对分析软件在哪个版本的故障很有帮助。
Description
技术领域
本发明涉及一种在计算机系统中,特别是在单板嵌入式软件中记录软件版本信息的方法。
背景技术
对于嵌入式软件,软件版本的升级是经常性的,一般记录信息的方法有两种:
一、在程序某个文件中写死软件的版本,这种方法非常不灵活,每次需要版本升级都要修改该文件,因此很少采用。
二、生成了可执行镜像文件后采取工具将版本压缩后在压缩文件前面添加上版本信息,这种方法比较常用,但这种方法需要软件从压缩的文件头去获取版本信息,如果由于执行了版本回退、程序错误、软件版本文件被破坏或者丢失,当前在内存运行的软件可能无法准确获取当前运行的版本信息。
发明内容
本发明的目的是为了解决版本制作过程中如何添加版本信息,使当前在内存中运行的软件准确无误的获取自己当前的版本信息。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种在嵌入式软件中记录版本信息的方法,包括步骤:
a、在所述嵌入式软件中定义一个存储版本信息的全局变量,对所述全局变量进行初始化;
b、将所述嵌入式软件编译生成可执行镜像文件;
c、根据所述可执行镜像文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;
d、将修改后的文件转换成bin文件;
e、压缩bin文件,同时将版本信息放在压缩文件的文件头;
f、将所述压缩文件解压运行后通过读取全局变量以获取版本信息。
其中,步骤c中所述文件格式包括ELF格式、COFF格式、OUT格式。
一种在嵌入式软件中记录版本信息的方法,包括步骤:
a、在所述嵌入式软件中定义一个存储版本信息的全局变量,对所述全局变量不进行初始化;
b、将所述嵌入式软件编译生成可执行镜像文件;
c、根据所述可执行镜像文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;
d、将修改后的文件转换成bin文件,并根据对可执行镜像文件的分析,分析出全局变量在bin文件中的位置,然后将版本信息添加到此位置;
e、压缩bin文件,同时将版本信息放在压缩文件的文件头;
f、将所述压缩文件解压运行后通过读取全局变量以获取版本信息。
其中,步骤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所述的在嵌入式软件中记录版本信息的方法,其特征在于,步骤c中所述文件格式包括ELF格式、COFF格式、OUT格式。
3.一种在嵌入式软件中记录版本信息的方法,其特征在于,包括步骤:
a、在所述嵌入式软件中定义一个存储版本信息的全局变量,对所述全局变量不进行初始化;
b、将所述嵌入式软件编译生成可执行镜像文件;
c、根据所述可执行镜像文件格式对可执行镜像文件进行符号表分析,找到步骤a中全局变量在可执行镜像文件中存储的位置,将版本信息写在该位置;
d、将修改后的文件转换成bin文件,并根据对可执行镜像文件的分析,分析出全局变量在bin文件中的位置,然后将版本信息添加到此位置;
e、压缩bin文件,同时将版本信息放在压缩文件的文件头;
f、将所述压缩文件解压运行后通过读取全局变量以获取版本信息。
4.如权利要求3所述的在嵌入式软件中记录版本信息的方法,其特征在于,步骤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 CN101042646A (zh) | 2007-09-26 |
CN100462916C true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845935A (zh) * | 2018-05-30 | 2018-11-20 | 武汉高仕达电气有限公司 | 一种嵌入式软件测试方法及系统 |
Families Citing this family (7)
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 | 上海斐讯数据通信技术有限公司 | 软件版本信息保存方法和系统 |
CN107844385B (zh) * | 2017-11-08 | 2021-04-23 | 北京龙之心科技有限公司 | 一种基于共享内存的变量读写方法及装置 |
CN108227579A (zh) * | 2017-12-29 | 2018-06-29 | 深圳市元征科技股份有限公司 | 一种车辆诊断信息的处理方法及装置、电子设备 |
CN110858147B (zh) * | 2018-08-24 | 2023-12-29 | 深圳市优必选科技有限公司 | Mcu信息获取方法及终端设备 |
Citations (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 | プログラム変換方法及びプログラムを記録した記録媒体 |
CN1564131A (zh) * | 2004-03-29 | 2005-01-12 | 中兴通讯股份有限公司 | 一种实现单片机软件版本更新的方法和装置 |
CN1859191A (zh) * | 2006-02-14 | 2006-11-08 | 华为技术有限公司 | 一种软件版本升级的实现方法 |
-
2007
- 2007-04-10 CN CNB2007100740063A patent/CN100462916C/zh not_active Expired - Fee Related
Patent Citations (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 | プログラム変換方法及びプログラムを記録した記録媒体 |
CN1564131A (zh) * | 2004-03-29 | 2005-01-12 | 中兴通讯股份有限公司 | 一种实现单片机软件版本更新的方法和装置 |
CN1859191A (zh) * | 2006-02-14 | 2006-11-08 | 华为技术有限公司 | 一种软件版本升级的实现方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845935A (zh) * | 2018-05-30 | 2018-11-20 | 武汉高仕达电气有限公司 | 一种嵌入式软件测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101042646A (zh) | 2007-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100462916C (zh) | 一种在嵌入式软件中记录版本信息的方法 | |
CN102831052B (zh) | 测试用例自动化生成装置及方法 | |
US8762944B2 (en) | Build process management system | |
CN101093462B (zh) | 数据库应用集群压力测试自动化方法 | |
CN102567193B (zh) | 测试用例转化为自动化测试脚本的方法及系统 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN105205053A (zh) | 一种数据库增量日志解析方法及系统 | |
CN103744694A (zh) | 基于Nand闪存的动态分区搜索装置及其方法 | |
WO2007056413A3 (en) | System and method for updating a storage medium | |
CN103577310A (zh) | 记录软件调试日志的方法以及装置 | |
CN105095304A (zh) | 日志模板生成方法及设备 | |
CN103257987A (zh) | 基于规则的分布式日志服务实现方法 | |
CN106155589A (zh) | 一种虚拟动态分区镜像文件生成方法及系统 | |
US8196093B2 (en) | Apparatus and method for componentizing legacy system | |
CN100570579C (zh) | 系统故障定位方法 | |
CN108959497A (zh) | 分布式文件系统日志处理方法、装置、设备及存储介质 | |
CN105808451A (zh) | 一种数据缓存方法以及相关装置 | |
CN102360381B (zh) | 一种对嵌入式程序进行无损压制的装置和方法 | |
CN101662394B (zh) | 自动化测试系统和自动化测试方法 | |
Gehani et al. | Bonsai: Balanced lineage authentication | |
CN101071428B (zh) | 产生一档案结构的方法、装置及系统 | |
CN102567209B (zh) | 闪存芯片数据解析方法和装置 | |
KR101737575B1 (ko) | 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치 | |
CN117215839B (zh) | 基于Web的系统还原方法、装置、设备、介质和程序产品 | |
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 |