一种基于运行时验证技术的嵌入式系统软件调试方法与流程

文档序号:11234004阅读:1205来源:国知局
一种基于运行时验证技术的嵌入式系统软件调试方法与流程

本发明涉及运行时验证技术,属于嵌入式系统软件调试技术领域。



背景技术:

嵌入式系统软件调试系统一般是仿真器和调试器,这些硬件设备通常只集成了一种触发策略——通过打断点的形式,目标程序运行到该位置就触发中断条件停止,调试系统对其进行调试。或者某个变量变为某个值时停止。

例如,申请号为201220580256.0的中国实用新型专利,涉及一种嵌入式在线仿真器,包括协议接口,所述协议接口通过数据线与计算机usb接口连接,协议接口上连接有系统状态读出逻辑单元和串并机构,串并机构上连接有数据校检单元和寄存器组,寄存器组上连接有断点控制逻辑单元、地址产生与控制逻辑单元、dma控制逻辑单元和数据分配与状态控制逻辑单元;所述系统状态读出逻辑单元与数据校检单元、断点控制逻辑单元连接,系统状态读出逻辑单元、断点控制逻辑单元、地址产生与控制逻辑单元、数据分配与状态控制逻辑单元均与目标系统连接。该实用新型实现了设计人员通过计算机对目标系统进行实时在线仿真与调试,完善了目标系统软件与硬件功能开发与仿真调试流程。

然而,软件分析中最重要的就是功能安全,目标程序在运行时,我们无法检测它何时满足一个条件,这个条件是否为我们所需要。可见,传统的调试器功能单一,无法全面对软件功能进行异常检测和判断。



技术实现要素:

针对以上情况,本发明的目的是提供了基于运行时验证技术的嵌入式系统软件调试方法:基于运行时验证技术,验证目标程序的时序逻辑。本发明异于常规的调试软件,根据描述的需求规范对目标程序进行检查,满足之后进行触发。

为实现以上目的,本发明采取的技术方案是:

一种基于运行时验证技术的嵌入式系统软件调试方法,包括:

i/o仿真步骤,控制调试程序的数据的输入和输出,通过rdi接口连接开发环境,并将rdi转换成jtag/swd协议连接待调试的单片机;

需求规范检查步骤,根据运行时验证规范,在程序运行时验证程序是否满足时序停止条件;

调试功能步骤,在需求规范检查步骤验证出程序满足时序停止条件之后,对暂停的程序进行调试;

执行控制步骤,控制调试的进程和运行,对调试进行状态设置。

优选的,所述需求规范检查步骤包括规范解析步骤、分析步骤、验证步骤和决策步骤。

优选的,所述规范解析步骤解析触发条件的需求规范,将其解析成一条条的时序条件。

优选的,所述分析步骤对当前运行程序的时序逻辑进行分析。

更优选的,所述分析步骤对所述当前运行程序的时序逻辑进行分析包括以下步骤:

(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),集成了运行时验证规范,例如pasttimeltl,在运行时验证程序是否满足时序停止条件;调试功能步骤(3),根据需求规范检查步骤验证出符合需求规则之后,对暂停的程序进行调试;执行控制步骤(4),控制调试的进程和运行,对调试进行状态设置。

本发明提出的所述基于运行时验证技术的嵌入式系统软件调试方法中,所述需求规范检查步骤(2)包括:规范解析步骤(21),解析触发条件的需求规范,将其解析成一条一条的时序条件;分析步骤(22),对当前运行程序的时序逻辑进行分析;验证步骤(23),将分析步骤分析出来的当前运行程序的时序逻辑与需求规范时序逻辑比较,验证是否符合;决策步骤(24),当验证当前运行程序的时序逻辑满足需求规范时序逻辑时,则触发相应的条件,对当前运行的程序采取相应的决策。

如图2所示,本发明提出的所述基于运行时验证技术的嵌入式系统软件调试方法中,所述分析步骤对所述当前运行程序的时序逻辑进行分析包括以下步骤:

1、定位到当前运行的程序;

2、访问与当前运行的程序相关的寄存器,从而获取相关数据;

3、将该程序的语句分析成相应的规则数据。

如图3所示,本发明提出的所述基于运行时验证技术的嵌入式系统软件调试方法中,所述验证步骤进行逻辑比较包括以下步骤:

1、接收判断规范解析步骤产生的数据,并存储;

2、接收判断分析步骤产生的数据,将其与之前存储的规范解析步骤产生的数据依次进行比较;

3、若分析步骤产生的数据符合规范解析步骤产生的某条数据,则产生触发信号;若都不符合,则产生非触发信号。

如图4所示,本发明提出的所述基于运行时验证技术的嵌入式系统软件调试方法中,所述决策步骤采取决策包括以下步骤:

1、接收验证步骤产生的信号;

2、如果信号为非触发信号,不采取触发操作,cpu继续执行下一句程序;

3、如果信号为触发信号,程序符合触发规则条件,发送sigtrap信号,暂停当前程序,对当前程序进行调试。

本发明与传统工控安全防护与报警系统相比,通过机器学习技术对控制系统之间信号发送进行异常侦测,从而提供在假设无异常情况下信号流状态的统计分布预测,提高了工控系统的异常识别率,同时节约了大量的人力。

本发明与传统工控安全防护与报警系统相比,所述工控安全防护与报警系统可自感知异常,并在发现异常后,做出自动产生报警或是保护相关的设备拒绝指令的操作。

本发明与传统嵌入式系统软件调试方法相比,利用运行时验证技术,通过整合需求规范,对目标程序运行验证,判断当前是否符合某个停止条件。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1