CN106980576B - 一种基于运行时验证技术的嵌入式系统软件调试系统 - Google Patents
一种基于运行时验证技术的嵌入式系统软件调试系统 Download PDFInfo
- Publication number
- CN106980576B CN106980576B CN201710322906.9A CN201710322906A CN106980576B CN 106980576 B CN106980576 B CN 106980576B CN 201710322906 A CN201710322906 A CN 201710322906A CN 106980576 B CN106980576 B CN 106980576B
- Authority
- CN
- China
- Prior art keywords
- module
- program
- debugging
- decision
- run 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.)
- Active
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/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
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)
Abstract
本发明公开了一种基于运行时验证技术的嵌入式系统软件调试系统,所述系统包括:I/O仿真模块、需求规范检查单元、调试功能模块、执行控制模块。其中需求规范检查单元包括规范解析模块、分析模块、验证模块和决策模块;I/O仿真模块用于调试程序的数据的输入和输出,连接开发环境和单片机。执行控制模块用于控制调试系统的进程和运行,对调试系统进行状态设置。需求规范检查单元用于运行时验证程序是否满足时序停止条件。调试功能模块用于触发之后,对暂停的程序进行调试。本发明基于运行时验证,对满足一定的时序条件的程序进行触发调试,使得程序更加规范严谨,能够提高工作效率。
Description
技术领域
本发明涉及运行时验证技术,属于嵌入式系统软件调试技术领域。
背景技术
嵌入式系统软件调试系统一般是仿真器和调试器,这些硬件设备通常只集成了一种触发策略——通过打断点的形式,目标程序运行到该位置就触发中断条件停止,调试系统对其进行调试。或者某个变量变为某个值时停止。
例如,申请号为201220580256.0的中国实用新型专利,涉及一种嵌入式在线仿真器,包括协议接口,所述协议接口通过数据线与计算机USB接口连接,协议接口上连接有系统状态读出逻辑单元和串并机构,串并机构上连接有数据校检单元和寄存器组,寄存器组上连接有断点控制逻辑单元、地址产生与控制逻辑单元、DMA控制逻辑单元和数据分配与状态控制逻辑单元;所述系统状态读出逻辑单元与数据校检单元、断点控制逻辑单元连接,系统状态读出逻辑单元、断点控制逻辑单元、地址产生与控制逻辑单元、数据分配与状态控制逻辑单元均与目标系统连接。该实用新型实现了设计人员通过计算机对目标系统进行实时在线仿真与调试,完善了目标系统软件与硬件功能开发与仿真调试流程。
然而,软件分析中最重要的就是功能安全,目标程序在运行时,我们无法检测它何时满足一个条件,这个条件是否为我们所需要。可见,传统的调试器功能单一,无法全面对软件功能进行异常检测和判断。
发明内容
针对以上情况,本发明的目的是提供了基于运行时验证技术的嵌入式系统软件调试系统:基于运行时验证技术,验证目标程序的时序逻辑。本发明异于常规的调试软件,根据描述的需求规范对目标程序进行检查,满足之后进行触发。
为实现以上目的,本发明采取的技术方案是:
一种基于运行时验证技术的嵌入式系统软件调试系统,包括:
I/O仿真模块,用于调试程序的数据的输入和输出,提供RDI接口连接开发环境,并将RDI转换成JTAG/SWD协议连接待调试的单片机;
需求规范检查单元,集成运行时验证规范,用于在程序运行时验证程序是否满足时序停止条件;
调试功能模块,用于在需求规范检查单元验证出程序满足时序停止条件之后,对暂停的程序进行调试;
执行控制模块,用于控制调试系统的进程和运行,对调试系统进行状态设置;
其中,所述I/O仿真模块、需求规范检查单元、调试功能模块顺序连接。
优选的,所述需求规范检查单元包括规范解析模块、分析模块、验证模块和决策模块。
优选的,所述规范解析模块用于解析触发条件的需求规范,将其解析成一条条的时序条件,发送给验证模块。
优选的,所述分析模块用于对当前运行程序的时序逻辑进行分析。
更优选的,所述分析模块对所述当前运行程序的时序逻辑进行分析包括以下步骤:
(1)、定位当前运行的程序;
(2)访问与当前运行的程序相关的寄存器,从而获取相关数据;
(3)、将该程序的语句分析成相应的规则数据,发送给验证模块。
优选的,所述验证模块用于将所述分析模块分析出来的当前运行程序的时序逻辑与需求规范时序逻辑比较,验证两者是否符合。
更优选的,所述验证模块进行逻辑比较包括以下步骤:
(1)、验证模块接收判断规范解析模块发送的数据,并存储;
(2)、验证模块接收判断分析模块发送的数据,将其与之前存储的规范解析模块发送的数据依次进行比较;
(3)、若分析模块发送的数据符合规范解析模块发送的某条数据,则验证模块发送触发信号给决策模块;若都不符合,则发送非触发信号给决策模块。
优选的,所述决策模块用于验证模块之后,用于在验证当前运行程序的时序逻辑满足需求规范时序逻辑时,触发相应的条件,对当前运行的程序采取相应的决策。
更优选的,所述决策模块采取决策包括以下步骤:
(1)、决策模块接收验证模块发送的信号;
(2)、如果所述信号为非触发信号,不采取触发操作,继续执行下一句程序;
(3)、如果所述信号为触发信号,则程序符合触发规则条件,发送sigTrap信号,暂停当前程序,对当前程序进行调试。
本发明的有益效果在于:
(1)、通过运行时验证技术对目标程序的运行进行是否符合触发需求规范的验证,从而能够对在假设无异常情况下目标程序进行高效率触发调试,降低程序出错率,同时节约了大量的人力。
(2)、所述嵌入式系统软件调试系统可根据描述需求规则自动分析,并在程序运行时验证,并触发。
(3)、需求规范检查单元中的分析和验证模块,可以避免程序错误的遗漏和不规范,减少软件系统出现异常所付出的损失。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明一种基于运行时验证技术的嵌入式系统软件调试系统的框架图。
图2是本发明中分析模块运行步骤示意方框图。
图3是本发明中验证模块运行步骤示意方框图。
图4是本发明中决策模块运行步骤示意方框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明公开一种基于运行时验证技术的嵌入式系统软件调试系统,其包括:I/O仿真模块(1),用于调试程序的数据的输入和输出,能够提供RDI接口连接开发环境,并将RDI转换成JTAG/SWD协议连接待调试的单片机;需求规范检查单元(2),集成了运行时验证规范,例如Past Time LTL,用于运行时验证程序是否满足时序停止条件;调试功能模块(3),根据需求规范检查单元验证出符合需求规则之后,对暂停的程序进行调试;执行控制模块(4),调试系统的核心,用于控制调试系统的进程和运行,能够对调试系统进行状态设置。
本发明提出的所述基于运行时验证技术的嵌入式系统软件调试系统中,所述需求规范检查单元(2)包括:规范解析模块(21),用于解析触发条件的需求规范,将其解析成一条一条的时序条件,发送给验证模块;分析模块(22),用于对当前运行程序的时序逻辑进行分析;验证模块(23),用于规范解析模块和分析模块之后,将分析模块分析出来的当前运行程序的时序逻辑与需求规范时序逻辑比较,验证是否符合;决策模块(24),用于验证模块之后,若验证当前运行程序的时序逻辑满足需求规范时序逻辑,则触发相应的条件,对当前运行的程序采取相应的决策。
如图2所示,本发明提出的所述基于运行时验证技术的嵌入式系统软件调试系统中,所述分析模块对所述当前运行程序的时序逻辑进行分析包括以下步骤:
1、定位到当前运行的程序;
2、访问与当前运行的程序相关的寄存器,从而获取相关数据;
3、将该程序的语句分析成相应的规则数据,发送给验证模块。
如图3所示,本发明提出的所述基于运行时验证技术的嵌入式系统软件调试系统中,所述验证模块进行逻辑比较包括以下步骤:
1、验证模块接收判断规范解析模块发送的数据,并存储;
2、验证模块接收判断分析模块发送的数据,将其与之前存储的规范解析模块发送的数据依次进行比较;
3、若分析模块发送的数据符合规范解析模块发送的某条数据,则验证模块发送触发信号给决策模块;若都不符合,则发送非触发信号给决策模块。
如图4所示,本发明提出的所述基于运行时验证技术的嵌入式系统软件调试系统中,所述决策模块采取决策包括以下步骤:
1、决策模块接收验证模块发送的信号;
2、如果信号为非触发信号,不采取触发操作,CPU继续执行下一句程序;
3、如果信号为触发信号,程序符合触发规则条件,发送sigTrap信号,暂停当前程序,对当前程序进行调试。
本发明与传统工控安全防护与报警系统相比,通过机器学习技术对控制系统之间信号发送进行异常侦测,从而提供在假设无异常情况下信号流状态的统计分布预测,提高了工控系统的异常识别率,同时节约了大量的人力。
本发明与传统工控安全防护与报警系统相比,所述工控安全防护与报警系统可自感知异常,并在发现异常后,做出自动产生报警或是保护相关的设备拒绝指令的操作。
本发明与传统嵌入式系统软件调试系统相比,利用运行时验证技术,通过整合需求规范,对目标程序运行验证,判断当前是否符合某个停止条件。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (3)
1.一种基于运行时验证技术的嵌入式系统软件调试系统,其特征在于,包括:
I/O仿真模块,用于调试程序的数据的输入和输出,提供RDI接口连接开发环境,并将RDI转换成JTAG/SWD协议连接待调试的单片机;
需求规范检查单元,集成运行时验证规范,用于在程序运行时验证程序是否满足时序停止条件;所述需求规范检查单元包括规范解析模块、分析模块、验证模块和决策模块;所述分析模块用于对当前运行程序的时序逻辑进行分析,包括以下步骤:(1)、定位当前运行的程序;(2)、访问与当前运行的程序相关的寄存器,从而获取相关数据;(3)、将该程序的语句分析成相应的规则数据,发送给验证模块;所述规范解析模块用于解析触发条件的需求规范,将其解析成一条条的时序条件,发送给验证模块;所述验证模块用于将所述分析模块分析出来的当前运行程序的时序逻辑与需求规范时序逻辑比较,验证两者是否符合;所述决策模块用于验证模块之后,用于在验证当前运行程序的时序逻辑满足需求规范时序逻辑时,触发相应的条件,对当前运行的程序采取相应的决策;
调试功能模块,用于在需求规范检查单元验证出程序满足时序停止条件之后,对暂停的程序进行调试;
执行控制模块,用于控制调试系统的进程和运行,对调试系统进行状态设置;
其中,所述I/O仿真模块、需求规范检查单元、调试功能模块顺序连接。
2.根据权利要求1所述的基于运行时验证技术的嵌入式系统软件调试系统,其特征在于,所述验证模块进行逻辑比较包括以下步骤:
(1)、验证模块接收判断规范解析模块发送的数据,并存储;
(2)、验证模块接收判断分析模块发送的数据,将其与之前存储的规范解析模块发送的数据依次进行比较;
(3)、若分析模块发送的数据符合规范解析模块发送的某条数据,则验证模块发送触发信号给决策模块;若都不符合,则发送非触发信号给决策模块。
3.根据权利要求1所述的基于运行时验证技术的嵌入式系统软件调试系统,其特征在于,所述决策模块采取决策包括以下步骤:
(1)、决策模块接收验证模块发送的信号;
(2)、如果所述信号为非触发信号,不采取触发操作,继续执行下一句程序;
(3)、如果所述信号为触发信号,则程序符合触发规则条件,发送sigTrap信号,暂停当前程序,对当前程序进行调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710322906.9A CN106980576B (zh) | 2017-05-09 | 2017-05-09 | 一种基于运行时验证技术的嵌入式系统软件调试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710322906.9A CN106980576B (zh) | 2017-05-09 | 2017-05-09 | 一种基于运行时验证技术的嵌入式系统软件调试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106980576A CN106980576A (zh) | 2017-07-25 |
CN106980576B true CN106980576B (zh) | 2019-11-12 |
Family
ID=59341422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710322906.9A Active CN106980576B (zh) | 2017-05-09 | 2017-05-09 | 一种基于运行时验证技术的嵌入式系统软件调试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106980576B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341111A (zh) * | 2017-09-08 | 2017-11-10 | 北京奥博泰科技有限公司 | 一种usb接口的多功能嵌入式开发工具 |
CN109117362B (zh) * | 2018-06-26 | 2020-08-25 | 华东师范大学 | 一种基于中间语言的plc程序验证系统 |
CN109684746A (zh) * | 2018-12-27 | 2019-04-26 | 北京华大九天软件有限公司 | 一种定位数字时序路径spice仿真失败的方法 |
CN111309542A (zh) * | 2020-01-20 | 2020-06-19 | 广州芯德通信科技股份有限公司 | 一种嵌入式系统调试模块及其构建方式 |
CN112464174B (zh) * | 2020-10-27 | 2023-09-29 | 华控清交信息科技(北京)有限公司 | 验证多方安全计算软件的方法、装置和用于验证的装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186451A (zh) * | 2013-03-21 | 2013-07-03 | 中国人民解放军国防科学技术大学 | 一种具有故障预测能力的时序属性监控方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220492A1 (en) * | 2006-03-16 | 2007-09-20 | Microsoft Corporation | Application verifier infrastructure and checks |
-
2017
- 2017-05-09 CN CN201710322906.9A patent/CN106980576B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186451A (zh) * | 2013-03-21 | 2013-07-03 | 中国人民解放军国防科学技术大学 | 一种具有故障预测能力的时序属性监控方法 |
Non-Patent Citations (1)
Title |
---|
基于JTAG的MIPS软核处理器调试器设计与实现;王金池;《中国知网》;20150601;第35-72页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106980576A (zh) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980576B (zh) | 一种基于运行时验证技术的嵌入式系统软件调试系统 | |
Cheng et al. | Orpheus: Enforcing cyber-physical execution semantics to defend against data-oriented attacks | |
Sawant et al. | Software testing techniques and strategies | |
US11003573B2 (en) | Co-verification of hardware and software | |
US20070079288A1 (en) | System and method for capturing filtered execution history of executable program code | |
US10545850B1 (en) | System and methods for parallel execution and comparison of related processes for fault protection | |
CN110851352A (zh) | 一种模糊测试系统及终端设备 | |
US10331513B2 (en) | Zero overhead code coverage analysis | |
CN117573142B (zh) | 基于模拟执行的java代码反混淆器 | |
Lei et al. | Validating direct memory access interfaces with conformance checking | |
Medeiros et al. | A Catalogue of Refactorings to Remove Incomplete Annotations. | |
Bombieri et al. | Functional qualification of TLM verification | |
CN107153612B (zh) | 一种基于运行时验证技术的嵌入式系统软件调试方法 | |
Bucchiarone et al. | Architecting Fault-tolerant Component-based Systems: from requirements to testing | |
Liu et al. | Online firmware functional validation scheme using colored petri net model | |
CN105718375A (zh) | 嵌入式系统的可恢复性度量方法 | |
Björkman et al. | Verification of safety logic designs by model checking | |
US11989296B2 (en) | Program execution anomaly detection for cybersecurity | |
Data | Suzzer: A Vulnerability-Guided Fuzzer Based on Deep Learning | |
Li et al. | Avionics system testing based on formal methods | |
Volnes et al. | Modeling the Software Execution of CEP in DCEP-Sim | |
CN114415622B (zh) | 一种控制系统用户程序逻辑在线验证方法及系统 | |
Shields | Hybrid Testing: Combining Static Analysis and Directed Fuzzing | |
TW202416160A (zh) | 關於網路安全之程式執行異常偵測 | |
Zhang et al. | Automated Runtime Mitigation for Misconfiguration Vulnerabilities in Industrial Control Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210803 Address after: Room 801, no.6, Lane 600, Yunling West Road, Putuo District, Shanghai 200062 Patentee after: SHANGHAI FORMAL TECH INFORMATION TECHNOLOGY Co.,Ltd. Address before: 200062 No. 3663, Putuo District, Shanghai, Zhongshan North Road Patentee before: EAST CHINA NORMAL University Patentee before: SHANGHAI FORMAL TECH INFORMATION TECHNOLOGY Co.,Ltd. |