CN102023884A - 一种嵌入式系统开发程序校验码自动生成的方法 - Google Patents
一种嵌入式系统开发程序校验码自动生成的方法 Download PDFInfo
- Publication number
- CN102023884A CN102023884A CN2010105653097A CN201010565309A CN102023884A CN 102023884 A CN102023884 A CN 102023884A CN 2010105653097 A CN2010105653097 A CN 2010105653097A CN 201010565309 A CN201010565309 A CN 201010565309A CN 102023884 A CN102023884 A CN 102023884A
- Authority
- CN
- China
- Prior art keywords
- check code
- file
- systems
- automatically
- program
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000033772 system development Effects 0.000 claims description 8
- 230000018109 developmental process Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 231100000572 poisoning Toxicity 0.000 description 2
- 230000000607 poisoning effect Effects 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 240000005373 Panax quinquefolius Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种嵌入式系统开发程序校验码自动生成的方法,(1)编写计算校验码的命令CommA,根据编译器的输出文件自动计算校验码命令;(2)编写把CommA命令生成的校验码添加写入生成的十六进制或二进制文件的命令CommB;(3)根据嵌入式系统编译开发环境提供的开放接口,在编译器成功编译并生成十六进制或者二进制出处文件后自动运行计算程序的校验码命令;(4)再次执行编译的过程,并烧制已经自动添加校验码的代码到设备中。在对代码进行编译完成后自动生成校验码,并自动的根据生成的十六进制或者二进制文件的变化自动生成并添加唯一的校验码;同时实现程序校验码的自动生成,不需要人为的操作,使得程序的校验码更加具有唯一性和可靠性。
Description
技术领域
本发明涉及嵌入式系统开发程序校验码自动生成的方法。
背景技术
现有技术中,针对程序的校验管理方式,目前的处理方式有以下几种:
1)采用专用的代码管理系统或工具
专用的代码管理系统和工具能够根据代码的功能、模块分类、系统整合起到很好的管理作用。但是这个方式在不能够在嵌入式系统的最终过程中体现出其特有的专用型,或者这个专用型没有与最后生成的嵌入式系统结合起来,没有一个形成一个整体,很容易造成代码的混乱。
2)采用手动设定的版本号
对程序进行规划后,根据统一的规划、功能的升级等方式,逐步提升程序的版本号,如V1.01,V2.10。这种方式由于引入了人为的操作,需要编程人员的参与,如果出现人为疏忽、编码出错、重复编号等原因,导致版本的错乱、重复,最终出现错误的情况。另外这种方式没有把代码的差异性进行体现。
以上的办法都没有很好的把代码的唯一性、差异性在最终的下载程序中体现出来,也没有能够对下载程序的正确性进行验证,都是没有校验的。
发明内容
本发明所要解决的技术问题是提供一种嵌入式系统开发程序校验码自动生成的方法,在对代码进行编译完成后自动生成校验码,并自动的根据生成的十六进制或者二进制文件的变化自动生成并添加唯一的校验码;同时实现程序校验码的自动生成,不需要人为的操作,使得程序的校验码更加具有唯一性和可靠性。
为解决上述技术问题,本发明的技术方案是:一种嵌入式系统开发程序校验码自动生成的方法,包括以下步骤:
(1)编写计算校验码的命令CommA,根据编译器的输出文件自动计算校验码命令;
(2)编写把CommA命令生成的校验码添加写入生成的十六进制或二进制文件的命令CommB;
(3)根据嵌入式系统编译开发环境提供的开放接口,在编译器成功编译并生成十六进制或者二进制出处文件后自动运行计算程序的校验码命令;
(4)再次执行编译的过程,并烧制已经自动添加校验码的代码到设备中。
在对代码进行编译完成后自动生成校验码,并自动的根据生成的十六进制或者二进制文件的变化自动生成并添加唯一的校验码;当通过程序烧写器、下载工具进行程序下载、烧录的过程中完成校验码的装载过程,实现程序校验码的自动生成,不需要人为的操作,使得程序的校验码更加具有唯一性和可靠性。当程序运行时,程序可以对本身进行一次校验码的计算,计算的结果与存储于程序中的校验码进行比对,确认无误后才进入运行,以防止程序由于各种原因(程序存储器损坏、病毒入侵等原因)使得程序出现损坏而运行,从而导致一些致命性的错误发生,对提高装置的安全性起到防护作用。
作为改进,所述步骤(1)的具体步骤如下:
(S101)查找并进入编译器生成的最终目录;
(S102)判断编译器生成的文件是16进制还是2进制,若是16进制,则选择16进制的算法;若是2进制,则选择2进制的算法;
(S103)逐一读取并解析文件的数据域;
(S104)根据校验算法计算校验码;
(S105)判断文件是否结束,是则输出文件校验码,否则返回(S103)。作为改进,所述步骤(2)的具体步骤如下:
(S201)判断处理的文件是否存在,否则返回,是则进入下一步;
(S202)获取当前系统程序储存空间的大小Flash_Size;
(S203)判断编译器生成的文件是16进制还是2进制;
(S204)若是16进制,则在文件最后一部分插入一条记录,指定在Flash_Size地址写入程序校验码;若是2进制,则获取已经生成的2进制文件占用的空间大小Bin_Size,然后在Bin_Size至Flash_Size空间填充0XFF,最后在Flash_Size地址写入程序校验码;
(S205)显示程序校验码;
(S206)提示成功并返回。
本发明与现有技术相比所带来的有益效果是:
1)本方法的校验码可以自动生成,无需人工干预;使得校验码更具有唯一性和可靠性;
2)经过算法生成的校验码自动添加到编译器生成的十六进制或二进制文件中;
3)使得整个编译过程与原有的编译过程一致,对原有的所有操作过程没有任何改变,更加易于让使用者接受;
4)生成的程序校验码可以用于代码的自检,有效的提高开发产品的安全性和可靠性。
附图说明
图1为本发明流程图;
图2为计算效验码命令流程图;
图3为自动添加校验码流程图。
具体实施方式
下面结合说明书附图对本发明作进一步说明。
如图1所示,一种嵌入式系统开发程序校验码自动生成的方法,包括以下步骤:
(1)编写计算校验码的命令CommA,根据编译器的输出文件自动计算校验码命令;
(2)编写把CommA命令生成的校验码添加写入生成的十六进制或二进制文件的命令CommB;
(3)根据嵌入式系统编译开发环境提供的开放接口,在编译器成功编译并生成十六进制或者二进制出处文件后自动运行计算程序的校验码命令;
(4)再次执行编译的过程,并烧制已经自动添加校验码的代码到设备中。
如图2所示,所述步骤(1)的具体步骤如下:
(S101)查找并进入编译器生成的最终目录;
(S102)判断编译器生成的文件是16进制还是2进制,若是16进制,则选择16进制的算法;若是2进制,则选择2进制的算法;
(S103)逐一读取并解析文件的数据域;
(S104)根据校验算法计算校验码;
(S105)判断文件是否结束,是则输出文件校验码,否则返回(S103)。如图3所示,所述步骤(2)的具体步骤如下:
(S201)判断处理的文件是否存在,否则返回,是则进入下一步;
(S202)获取当前系统程序储存空间的大小Flash_Size;
(S203)判断编译器生成的文件是16进制还是2进制;
(S204)若是16进制,则在文件最后一部分插入一条记录,指定在Flash_Size地址写入程序校验码;若是2进制,则获取已经生成的2进制文件占用的空间大小Bin_Size,然后在Bin_Size至Flash_Size空间填充0XFF,最后在Flash_Size地址写入程序校验码;
(S205)显示程序校验码;
(S206)提示成功并返回。
在对代码进行编译完成后自动生成校验码,并自动的根据生成的十六进制或者二进制文件的变化自动生成并添加唯一的校验码;当通过程序烧写器、下载工具进行程序下载、烧录的过程中完成校验码的装载过程,实现程序校验码的自动生成,不需要人为的操作,使得程序的校验码更加具有唯一性和可靠性。当程序运行时,程序可以对本身进行一次校验码的计算,计算的结果与存储于程序中的校验码进行比对,确认无误后才进入运行,以防止程序由于各种原因(程序存储器损坏、病毒入侵等原因)使得程序出现损坏而运行,从而导致一些致命性的错误发生,对提高装置的安全性起到防护作用。
Claims (3)
1.一种嵌入式系统开发程序校验码自动生成的方法,其特征在于,包括以下步骤:
(1)编写计算校验码的命令CommA,根据编译器的输出文件自动计算校验码命令;
(2)编写把CommA命令生成的校验码添加写入生成的十六进制或二进制文件的命令CommB;
(3)根据嵌入式系统编译开发环境提供的开放接口,在编译器成功编译并生成十六进制或者二进制出处文件后自动运行计算程序的校验码命令;
(4)再次执行编译的过程,并烧制已经自动添加校验码的代码到设备中。
2.根据权利要求1所述的一种嵌入式系统开发程序校验码自动生成的方法,其特征在于:所述步骤(1)的具体步骤如下:
(S101)查找并进入编译器生成的最终目录;
(S102)判断编译器生成的文件是16进制还是2进制,若是16进制,则选择16进制的算法;若是2进制,则选择2进制的算法;
(S103)逐一读取并解析文件的数据域;
(S104)根据校验算法计算校验码;
(S105)判断文件是否结束,是则输出文件校验码,否则返回步骤(S103)。
3.根据权利要求1所述的一种嵌入式系统开发程序校验码自动生成的方法,其特征在于:所述步骤(2)的具体步骤如下:
(S201)判断处理的文件是否存在,否则返回,是则进入下一步;
(S202)获取当前系统程序储存空间的大小Flash_Size;
(S203)判断编译器生成的文件是16进制还是2进制;
(S204)若是16进制,则在文件最后一部分插入一条记录,指定在Flash_Size地址写入程序校验码;若是2进制,则获取已经生成的2进制文件占用的空间大小Bin_Size,然后在Bin_Size至Flash_Size空间填充0XFF,最后在Flash_Size地址写入程序校验码;
(S205)显示程序校验码;
(S206)提示成功并返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105653097A CN102023884A (zh) | 2010-11-25 | 2010-11-25 | 一种嵌入式系统开发程序校验码自动生成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105653097A CN102023884A (zh) | 2010-11-25 | 2010-11-25 | 一种嵌入式系统开发程序校验码自动生成的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102023884A true CN102023884A (zh) | 2011-04-20 |
Family
ID=43865206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105653097A Pending CN102023884A (zh) | 2010-11-25 | 2010-11-25 | 一种嵌入式系统开发程序校验码自动生成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102023884A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605550A (zh) * | 2013-11-27 | 2014-02-26 | 深圳众为兴技术股份有限公司 | 分布式处理器依赖固件自适应下载方法、主机及客户端 |
CN103838871A (zh) * | 2014-03-21 | 2014-06-04 | 北京广利核系统工程有限公司 | 一种核电站安全级dcs s-vdu过程文件的校验方法 |
CN109522040A (zh) * | 2018-09-27 | 2019-03-26 | 宁波三星智能电气有限公司 | 一种用于电表的数据包数变长远程升级方法 |
CN109657425A (zh) * | 2018-12-10 | 2019-04-19 | 积成电子股份有限公司 | 一种电能表程序的现场保护方法 |
CN110427195A (zh) * | 2019-07-17 | 2019-11-08 | 陕西千山航空电子有限责任公司 | 一种程序加载校验算法 |
CN113220318A (zh) * | 2020-01-21 | 2021-08-06 | 广州汽车集团股份有限公司 | 电机控制器的程序更新方法、装置及可读存储介质 |
CN114356455A (zh) * | 2022-01-06 | 2022-04-15 | 深圳忆联信息系统有限公司 | 提升芯片启动可靠性的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917840A (en) * | 1992-03-13 | 1999-06-29 | Foxboro Company | Protection against communications crosstalk in a factory process control system |
CN1991801A (zh) * | 2005-11-30 | 2007-07-04 | 株式会社东芝 | 访问控制设备、方法和存储器访问控制设备、方法 |
CN101243412A (zh) * | 2005-08-15 | 2008-08-13 | 索尼爱立信移动通讯股份有限公司 | 用于安全检查模块中的可执行应用程序的系统、方法和计算机程序产品 |
-
2010
- 2010-11-25 CN CN2010105653097A patent/CN102023884A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917840A (en) * | 1992-03-13 | 1999-06-29 | Foxboro Company | Protection against communications crosstalk in a factory process control system |
CN101243412A (zh) * | 2005-08-15 | 2008-08-13 | 索尼爱立信移动通讯股份有限公司 | 用于安全检查模块中的可执行应用程序的系统、方法和计算机程序产品 |
CN1991801A (zh) * | 2005-11-30 | 2007-07-04 | 株式会社东芝 | 访问控制设备、方法和存储器访问控制设备、方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605550A (zh) * | 2013-11-27 | 2014-02-26 | 深圳众为兴技术股份有限公司 | 分布式处理器依赖固件自适应下载方法、主机及客户端 |
CN103838871A (zh) * | 2014-03-21 | 2014-06-04 | 北京广利核系统工程有限公司 | 一种核电站安全级dcs s-vdu过程文件的校验方法 |
CN103838871B (zh) * | 2014-03-21 | 2019-11-29 | 北京广利核系统工程有限公司 | 一种核电站安全级dcs s-vdu过程文件的校验方法 |
CN109522040A (zh) * | 2018-09-27 | 2019-03-26 | 宁波三星智能电气有限公司 | 一种用于电表的数据包数变长远程升级方法 |
CN109657425A (zh) * | 2018-12-10 | 2019-04-19 | 积成电子股份有限公司 | 一种电能表程序的现场保护方法 |
CN110427195A (zh) * | 2019-07-17 | 2019-11-08 | 陕西千山航空电子有限责任公司 | 一种程序加载校验算法 |
CN110427195B (zh) * | 2019-07-17 | 2023-06-30 | 陕西千山航空电子有限责任公司 | 一种程序加载校验算法 |
CN113220318A (zh) * | 2020-01-21 | 2021-08-06 | 广州汽车集团股份有限公司 | 电机控制器的程序更新方法、装置及可读存储介质 |
CN114356455A (zh) * | 2022-01-06 | 2022-04-15 | 深圳忆联信息系统有限公司 | 提升芯片启动可靠性的方法及装置 |
CN114356455B (zh) * | 2022-01-06 | 2023-12-05 | 深圳忆联信息系统有限公司 | 提升芯片启动可靠性的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023884A (zh) | 一种嵌入式系统开发程序校验码自动生成的方法 | |
CN100446128C (zh) | 可进行除错与更新的只读存储器电路及方法 | |
CN102222012B (zh) | 针对外部数据源的静态类型检查 | |
CN102360304B (zh) | 嵌入式微处理器系统及其固件更新方法 | |
CN105005450B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN110618892B (zh) | 一种固态硬盘的bug定位方法、装置、电子设备及介质 | |
CN108874582A (zh) | 一种系统恢复方法、装置及终端 | |
CN104699478B (zh) | 改变电子控制单元的存储器中的软件的方法和计算机系统 | |
CN109189405A (zh) | 一种验证程序Flash数据一致性的方法及系统 | |
CN103677862A (zh) | Epld程序的升级方法及装置 | |
CN103678067A (zh) | 一种智能卡掉电测试方法、测试设备和被测设备 | |
CN105224309B (zh) | 一种调取函数的方法和装置 | |
US9858366B2 (en) | Simulator and simulating method for flash memory background | |
CN102831058B (zh) | 一种测试方法和装置 | |
CN103019722A (zh) | 一种抽取Java网络应用升级包的方法及装置 | |
CN101286738A (zh) | 一种根据设备信息加载逻辑文件的方法、装置和系统 | |
US20080148252A1 (en) | Electronic Device, System and Method For Updating Software Online | |
CN103338121A (zh) | 一种系统管理服务器、方法及其系统 | |
CN106154072A (zh) | 一种电子设备测试系统及方法 | |
TW201833421A (zh) | 可更新韌體的電子鎖系統 | |
CN107665169B (zh) | 处理器程序的测试方法和装置 | |
CN116663489A (zh) | 一种rtl模块复位方法、装置、电子设备及存储介质 | |
CN112230848A (zh) | 一种nvm自动配置方法、装置和设备 | |
CN107479924A (zh) | 基于Android系统的软件升级校验方法 | |
CN110515645A (zh) | 一种bios的功能更新的实现方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20110420 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned | ||
DD01 | Delivery of document by public notice |
Addressee: Shenzhen CLOU electronic Polytron Technologies Inc leader Document name: Notification of Approving Refund |