CN106294170B - 嵌入式控制系统变量初始化的测试方法 - Google Patents

嵌入式控制系统变量初始化的测试方法 Download PDF

Info

Publication number
CN106294170B
CN106294170B CN201610680254.1A CN201610680254A CN106294170B CN 106294170 B CN106294170 B CN 106294170B CN 201610680254 A CN201610680254 A CN 201610680254A CN 106294170 B CN106294170 B CN 106294170B
Authority
CN
China
Prior art keywords
memory
embedded
internal storage
embedded system
host computer
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.)
Active
Application number
CN201610680254.1A
Other languages
English (en)
Other versions
CN106294170A (zh
Inventor
李锋源
张蓬勃
胡欣
洪开慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XIAMEN KECAN INFORMATION TECHNOLOGY Co Ltd
Original Assignee
XIAMEN KECAN INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XIAMEN KECAN INFORMATION TECHNOLOGY Co Ltd filed Critical XIAMEN KECAN INFORMATION TECHNOLOGY Co Ltd
Priority to CN201610680254.1A priority Critical patent/CN106294170B/zh
Publication of CN106294170A publication Critical patent/CN106294170A/zh
Application granted granted Critical
Publication of CN106294170B publication Critical patent/CN106294170B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种嵌入式控制系统变量初始化的测试方法,根据对内存的第一次填充的填充码和对内存的第二次填充的填充码不相同,若上位机第一次读取回的内存数据与第一次的填充码相等且上位机第二次读取回的内存数据与第二次的填充码相等,则所处的内存单元未初始化,若第一次填充后读回的内存数据与第二次填充后读回的内存数据相等,则所处的内存单元已初始化。本发明的嵌入式控制系统变量的初始化变量测试能够自动化完成,不需要对编译器有特殊的要求,能够广泛适应各种嵌入式平台。克服了编译器(或代码静态分析工具)无法准确查找和实用性比较低等情况,有效地节约人力投入,提高软件测试效率,具备高效、准确的特点。

Description

嵌入式控制系统变量初始化的测试方法
技术领域
本发明涉及变量初始化的测试方法,特别涉及一种嵌入式控制系统变量初始化的测试方法。
背景技术
一般现有的方案是通过编译器本身自带的检测工具(或者是代码静态分析工具)对代码进行静态的逻辑分析,查找出可能未被初始化的变量;这种方法依赖于编译器和所用的工具,如果是用编译器一般无法做到完整的检测,而用工具检测毕竟是逻辑分析,与实际情况还是有一定差别的。
发明内容
本发明的目的为了解决现有技术问题,提供方法,具体实现方案如下:
一种嵌入式控制系统变量初始化的测试方法,其特征在于,包括如下步骤:
步骤S1:嵌入式系统程序植入测试程序;
步骤S2:上位机载入嵌入式系统程序的内存分配文件,并从所述内存分配文件获取嵌入式系统程序声明的系统变量在内存的存储空间信息;
步骤S3:上位机运行,将嵌入式系统的内存分区信息、相应的填充码和填充指令发送给嵌入式系统;
步骤S4:嵌入式系统接收到上述信息,对内存进行填充;
步骤S5:上位机下发查询指令给嵌入式系统,所述查询指令为查询内存数据;
步骤S6:嵌入式系统根据当前内存区域进行读取,并将读取数据传输至上位机;
步骤S7:上位机接收嵌入式系统发送的数据并存储;将数据暂存在上位机端;
步骤S8:上位机判断嵌入式系统的内存是否为第一次填充,若是,则返回步骤S3,否则,进入步骤S9;
步骤S9:上位机比较第一次填充后读回的内存数据和第二次填充后读回的内存数据,若第一次读回的内存数据与第二次读回的内存数据相等,则表示所处的内存单元已初始化,否则表示所处的内存单元未初始化。
在本发明一实施例中,对内存的第一次填充的填充码和对内存的第二次的填充码不相同。
在本发明一实施例中,所述存储空间信息包括系统变量在内存的起始地址及所占空间大小。
在本发明一实施例中,所述内存分区信息包括嵌入式系统的内存分区数目以及分区的起始地址和结束地址。
在本发明一实施例中,步骤S1还包括嵌入式系统程序植入测试程序后,嵌入式系统上电,并执行相应的测试程序。
在本发明一实施例中,所述测试方法,是运行在嵌入式系统的应用程序执行之前。
在本发明一实施例中,所述嵌入式控制系统为控制程序存储在只读存储器中的嵌入式处理器控制板。
与现有技术相比具有的有益效果如下:本发明的嵌入式控制系统变量的初始化变量测试能够自动化完成,不需要对编译器有特殊的要求,能够广泛适应各种嵌入式平台。克服了编译器(或代码静态分析工具)无法准确查找和实用性比较低等情况,有效地节约人力投入,提高软件测试效率,具备高效、准确的特点。
附图说明
图1为本发明的原理流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步说明。
嵌入式系统是一个控制程序存储在只读存储器(ROM)中的嵌入式处理器控制板,通常由单个程序实现整个控制逻辑,系统启动运行前需要对程序使用的变量进行初始化。所谓的变量初始化,是对变量进行声明后,对其进行初始化赋值,程序运行时对变量进行引用才能得到预期结果,若未对其初始化,运行结果将是不可预料的。
一种嵌入式控制系统变量初始化的测试方法,其包括如下步骤:
步骤S1:嵌入式系统程序植入测试程序;
步骤S2:上位机载入嵌入式系统程序的内存分配文件,并从所述内存分配文件获取嵌入式系统程序声明的系统变量在内存的存储空间信息;步骤S3:上位机运行,将嵌入式系统的内存分区信息、相应的填充码和填充指令发送给嵌入式系统;填充码指的是对某个内存单元所写入的一个数值,用于标记内存的初始状态。
步骤S4:嵌入式系统接收到上述信息,对内存进行填充;
步骤S5:上位机下发查询指令给嵌入式系统,所述查询指令为查询内存数据;
步骤S6:嵌入式系统根据当前内存区域进行读取,并将读取数据传输至上位机;
步骤S7:上位机接收嵌入式系统发送的数据并存储;将数据暂存在上位机端;
步骤S8:上位机判断嵌入式系统的内存是否为第一次填充,若是,则返回步骤S3,否则,进入步骤S9;
步骤S9:上位机比较第一次填充后读回的内存数据和第二次填充后读回的内存数据,若第一次读回的内存数据与第二次读回的内存数据相等,则表示所处的内存单元已初始化,否则表示所处的内存单元未初始化。其中读取数据指的是读取一段内存单元的数值.
进一步地,对内存的第一次填充的填充码和对内存的第二次填充的填充码不相同,若上位机第一次读取回的内存数据与第一次的填充码相等且上位机第二次读取回的内存数据与第二次的填充码相等,则表示所处的内存单元未初始化,若第一次填充后读回的内存数据与第二次填充后读回的内存数据相等,则所处的内存单元已初始化。
进一步地,所述存储空间信息包括系统变量在内存的起始地址及所占空间大小。
进一步地,所述内存分区信息包括嵌入式系统的内存分区数目以及分区的起始地址和结束地址。
进一步地,步骤S1还包括嵌入式系统程序植入脚本程序后,嵌入式系统上电。
进一步地,所述测试方法,是运行在嵌入式系统的应用程序执行之前。
进一步地,所述嵌入式控制系统为控制程序存储在只读存储器中的嵌入式处理器控制板。
上列较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种嵌入式控制系统变量初始化的测试方法,其特征在于,包括如下步骤:
步骤S1:嵌入式系统程序植入测试程序;
步骤S2:上位机载入嵌入式系统程序的内存分配文件,并从所述内存分配文件获取嵌入式系统程序声明的系统变量在内存的存储空间信息;
步骤S3:上位机运行,将嵌入式系统的内存分区信息、相应的填充码和填充指令发送给嵌入式系统;填充码指的是对某个内存单元所写入的一个数值,用于标记内存的初始状态;
步骤S4:嵌入式系统接收到上述信息,对内存进行填充;
步骤S5:上位机下发查询指令给嵌入式系统,所述查询指令为查询内存数据;
步骤S6:嵌入式系统根据当前内存区域进行读取,并将读取数据传输至上位机;
步骤S7:上位机接收嵌入式系统发送的数据并存储;将数据暂存在上位机端;
步骤S8:上位机判断嵌入式系统的内存是否为第一次填充,若是则返回步骤S3,否则,进入步骤S9;
步骤S9:对内存的第一次填充的填充码和对内存的第二次填充的填充码不相同,若上位机第一次读取回的内存数据与第一次的填充码相等且上位机第二次读取回的内存数据与第二次的填充码相等,则表示所处的内存单元未初始化,若第一次填充后读回的内存数据与第二次填充后读回的内存数据相等,则所处的内存单元已初始化。
2.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:所述存储空间信息包括系统变量在内存的起始地址及所占空间大小。
3.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:所述内存分区信息包括嵌入式系统的内存分区数目以及分区的起始地址和结束地址。
4.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:步骤S1还包括嵌入式系统程序植入测试程序后,嵌入式系统上电,并执行相应的测试程序。
5.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于;所述测试方法,是运行在嵌入式系统的应用程序执行之前。
6.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:所述嵌入式控制系统为控制程序存储在只读存储器中的嵌入式处理器控制板。
CN201610680254.1A 2016-08-17 2016-08-17 嵌入式控制系统变量初始化的测试方法 Active CN106294170B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610680254.1A CN106294170B (zh) 2016-08-17 2016-08-17 嵌入式控制系统变量初始化的测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610680254.1A CN106294170B (zh) 2016-08-17 2016-08-17 嵌入式控制系统变量初始化的测试方法

Publications (2)

Publication Number Publication Date
CN106294170A CN106294170A (zh) 2017-01-04
CN106294170B true CN106294170B (zh) 2018-10-19

Family

ID=57679001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610680254.1A Active CN106294170B (zh) 2016-08-17 2016-08-17 嵌入式控制系统变量初始化的测试方法

Country Status (1)

Country Link
CN (1) CN106294170B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902001B (zh) * 2019-02-12 2022-06-07 科华恒盛股份有限公司 对未初始化变量的检测方法及终端设备
CN111552661A (zh) * 2020-04-28 2020-08-18 合肥芯碁微电子装备股份有限公司 测试数据传输稳定性的方法和光刻设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599046A (zh) * 2009-06-26 2009-12-09 深圳市茁壮网络股份有限公司 一种内存检测方法及装置
CN105677559A (zh) * 2015-12-31 2016-06-15 杭州华为数字技术有限公司 一种检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817502B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599046A (zh) * 2009-06-26 2009-12-09 深圳市茁壮网络股份有限公司 一种内存检测方法及装置
CN105677559A (zh) * 2015-12-31 2016-06-15 杭州华为数字技术有限公司 一种检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
引用未初始化变量故障静态测试方法研究;曹文静 等;《小型微型计算机系统》;20070531;第28卷(第5期);全文 *

Also Published As

Publication number Publication date
CN106294170A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
US9785424B2 (en) Capability attributes based application packaging
CN104008060B (zh) 插件与宿主兼容性的检测方法及检测服务器
US9349154B2 (en) Bindless texture and image API
CN110673924B (zh) 一种多架构容器云镜像选择方法、装置、设备及存储介质
WO1994011812A1 (en) Method for loading device drivers
JP2002536744A (ja) トークンに基づいたリンクステップ
US9535613B2 (en) Hardware and software methodologies for detecting illegal memory address of a memory access operation
CN106294170B (zh) 嵌入式控制系统变量初始化的测试方法
JP2008276763A (ja) メモリエラーの検出法
US9489315B2 (en) Method of executing, by a microprocessor, a polymorphic binary code of a predetermined function
US20060101437A1 (en) Data processing device and method
US20090172643A1 (en) Program verification apparatus, program verification method, and program storage medium
CN102799536B (zh) 一种嵌入式系统中存储设备容量自适应的方法及装置
JP5777843B1 (ja) プロセッサ、処理装置、プログラム作成方法
JP2015088188A (ja) 制御装置の制御プログラムに影響を与えるための方法
CN104182352B (zh) 用于访问4gb以上物理内存地址空间的方法及装置
CN117648688A (zh) 一种容器逃逸检测方法、系统、计算机设备及存储介质
CN111324553A (zh) 在嵌入式系统上实现虚拟地址空间的方法
CN112583794A (zh) 接口调用方法、装置、计算机设备和存储介质
US11030306B2 (en) Method for executing a program intended to be interpreted by a virtual machine protected against fault injection attacks
CN114610516B (zh) 应用程序的修复方法、装置、计算机设备以及存储介质
US7065747B2 (en) Identifying references to objects during bytecode verification
CN110633210B (zh) 文件执行方法、装置、存储介质和电子设备
US20220121457A1 (en) Run-time identification of dependencies during dynamic linking
CN108874468B (zh) 应用程序的加载方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant