CN106294170A - 嵌入式控制系统变量初始化的测试方法 - Google Patents
嵌入式控制系统变量初始化的测试方法 Download PDFInfo
- Publication number
- CN106294170A CN106294170A CN201610680254.1A CN201610680254A CN106294170A CN 106294170 A CN106294170 A CN 106294170A CN 201610680254 A CN201610680254 A CN 201610680254A CN 106294170 A CN106294170 A CN 106294170A
- Authority
- CN
- China
- Prior art keywords
- embedded
- variable
- internal storage
- testing
- time
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test 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)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (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 (7)
1.一种嵌入式控制系统变量初始化的测试方法,其特征在于,包括如下步骤:
步骤S1:嵌入式系统程序植入测试程序;
步骤S2:上位机载入嵌入式系统程序的内存分配文件,并从所述内存分配文件获取嵌入式系统程序声明的系统变量在内存的存储空间信息;
步骤S3:上位机运行,将嵌入式系统的内存分区信息、相应的填充码和填充指令发送给嵌入式系统;
步骤S4:嵌入式系统接收到上述信息,对内存进行填充;
步骤S5:上位机下发查询指令给嵌入式系统,所述查询指令为查询内存数据;
步骤S6:嵌入式系统根据当前内存区域进行读取,并将读取数据传输至上位机;
步骤S7:上位机接收嵌入式系统发送的数据并存储;将数据暂存在上位机端;
步骤S8:上位机判断嵌入式系统的内存是否为第一次填充,若是则返回步骤S3,否则,进入步骤S9;
步骤S9:上位机比较第一次填充后读回的内存数据和第二次填充后读回的内存数据,若第一次读回的内存数据与第二次读回的内存数据相等,则表示所处的内存单元已初始化,否则表示所处的内存单元未初始化。
2.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:对内存的第一次填充的填充码和对内存的第二次的填充码不相同。
3.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:所述存储空间信息包括系统变量在内存的起始地址及所占空间大小。
4.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:所述内存分区信息包括嵌入式系统的内存分区数目以及分区的起始地址和结束地址。
5.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:步骤S1还包括嵌入式系统程序植入测试程序后,嵌入式系统上电,并执行相应的测试程序。
6.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于;所述测试方法,是运行在嵌入式系统的应用程序执行之前。
7.根据权利要求1所述的嵌入式控制系统变量初始化的测试方法,其特征在于:所述嵌入式控制系统为控制程序存储在只读存储器中的嵌入式处理器控制板。
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 true CN106294170A (zh) | 2017-01-04 |
CN106294170B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902001A (zh) * | 2019-02-12 | 2019-06-18 | 科华恒盛股份有限公司 | 对未初始化变量的检测方法及终端设备 |
CN111552661A (zh) * | 2020-04-28 | 2020-08-18 | 合肥芯碁微电子装备股份有限公司 | 测试数据传输稳定性的方法和光刻设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599046A (zh) * | 2009-06-26 | 2009-12-09 | 深圳市茁壮网络股份有限公司 | 一种内存检测方法及装置 |
US20140195480A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent memory management |
CN105677559A (zh) * | 2015-12-31 | 2016-06-15 | 杭州华为数字技术有限公司 | 一种检测方法及装置 |
-
2016
- 2016-08-17 CN CN201610680254.1A patent/CN106294170B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599046A (zh) * | 2009-06-26 | 2009-12-09 | 深圳市茁壮网络股份有限公司 | 一种内存检测方法及装置 |
US20140195480A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent memory management |
CN105677559A (zh) * | 2015-12-31 | 2016-06-15 | 杭州华为数字技术有限公司 | 一种检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
曹文静 等: "引用未初始化变量故障静态测试方法研究", 《小型微型计算机系统》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902001A (zh) * | 2019-02-12 | 2019-06-18 | 科华恒盛股份有限公司 | 对未初始化变量的检测方法及终端设备 |
CN109902001B (zh) * | 2019-02-12 | 2022-06-07 | 科华恒盛股份有限公司 | 对未初始化变量的检测方法及终端设备 |
CN111552661A (zh) * | 2020-04-28 | 2020-08-18 | 合肥芯碁微电子装备股份有限公司 | 测试数据传输稳定性的方法和光刻设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106294170B (zh) | 2018-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9785424B2 (en) | Capability attributes based application packaging | |
KR101971389B1 (ko) | 연합 기반 메모리 관리 | |
KR100713739B1 (ko) | 토큰 기반 링크 | |
CN101946286B (zh) | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 | |
US20170115969A1 (en) | System and method for automatically generating device drivers for run time environments | |
US9582623B2 (en) | Dynamically loaded system-level simulation | |
JP2018507449A (ja) | プログラム可能集積回路を対象としたヘテロジニアスマルチプロセッサプログラムコンパイル | |
CN104008060A (zh) | 插件与宿主兼容性的检测方法及检测服务器 | |
CN103718159B (zh) | 图像处理软件开发方法、图像处理软件开发装置 | |
CN102999409B (zh) | 一种内存测试方法及嵌入式设备 | |
EP1039374A2 (en) | Instruction execution mechanism | |
WO2018045085A1 (en) | Virtual disk expansion method and apparatus | |
US20070234126A1 (en) | Accelerating the testing and validation of new firmware components | |
US10108402B2 (en) | Persistent pointers for programs running on NVRAM based computers | |
CN106294170A (zh) | 嵌入式控制系统变量初始化的测试方法 | |
EP1700209B1 (en) | Data layout mechanism to reduce hardware resource conflicts | |
CN111427782A (zh) | 安卓动态链接库的运行方法、装置、设备及存储介质 | |
CN102799536B (zh) | 一种嵌入式系统中存储设备容量自适应的方法及装置 | |
CN104182352B (zh) | 用于访问4gb以上物理内存地址空间的方法及装置 | |
US7234047B1 (en) | Method for managing memory space during system initialization | |
US11340914B2 (en) | Run-time identification of dependencies during dynamic linking | |
CN110633210B (zh) | 文件执行方法、装置、存储介质和电子设备 | |
US11281591B2 (en) | Method for implementing a virtual address space on an embedded system | |
CN109947476B (zh) | 一种运行时栈空间的统计方法及系统 | |
CN104090845B (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 |