【技术实现步骤摘要】
一种识别多级中断下数据竞争点的方法
本专利技术属于计算机的
,具体涉及一种识别多级中断下数据竞争点的方法。
技术介绍
中断是嵌入式系统实现实时响应的重要机制,而中断驱动模式是嵌入式软件设计的常见模式。然而,中断驱动型程序中,任务与中断的并发交叠以及中断触发的不可预测性使得程序运行时的时序较复杂,容易导致数据竞争。这些错误往往需要在特定的外部环境、特定的执行流切换条件下才会发生,难以复现,对其调试和测试都很困难。目前,现有主流的程序分析与验证方法与工具(包括符号执行、模型检验、定理证明等)都不能很好地适配中断驱动型程序的特点。
技术实现思路
为解决上述技术问题中的至少之一,本专利技术提出一种识别多级中断下数据竞争点的方法。本专利技术的目的通过以下技术方案实现:本专利技术提供了一种识别多级中断下数据竞争点的方法,包括如下步骤:S1,读取中断驱动程序,包括获得中断驱动程序的程序源码和配置文件;S2,通过对中断驱动程序进行词法语法分析后转换为抽象语法树;S3,在抽象语 ...
【技术保护点】
1.一种识别多级中断下数据竞争点的方法,其特征在于,包括如下步骤:/nS1,读取中断驱动程序,包括获得中断驱动程序的程序源码和配置文件;/nS2,通过对中断驱动程序进行词法语法分析后转换为抽象语法树;/nS3,在抽象语法树的基础上进行分析,根据抽象语法树生成函数调用图,并根据函数调用图分析获得全局变量读写信息和函数控制流图;/nS4,根据函数控制流图和配置文件分析每个函数内全局变量读写点的中断状态;/nS5,根据配置文件信息、函数调用图、函数控制流图对中断任务的优先级排序进行两两组合,并遍历对应函数内所有全局变量读写信息,进行数据竞争点分析识别;/nS6,根据对数据竞争点的 ...
【技术特征摘要】
1.一种识别多级中断下数据竞争点的方法,其特征在于,包括如下步骤:
S1,读取中断驱动程序,包括获得中断驱动程序的程序源码和配置文件;
S2,通过对中断驱动程序进行词法语法分析后转换为抽象语法树;
S3,在抽象语法树的基础上进行分析,根据抽象语法树生成函数调用图,并根据函数调用图分析获得全局变量读写信息和函数控制流图;
S4,根据函数控制流图和配置文件分析每个函数内全局变量读写点的中断状态;
S5,根据配置文件信息、函数调用图、函数控制流图对中断任务的优先级排序进行两两组合,并遍历对应函数内所有全局变量读写信息,进行数据竞争点分析识别;
S6,根据对数据竞争点的分析识别得到中断驱动程序中所有的数据竞争点,输出数据竞争点分析报告。
2.如权利要求1所述的一种识别多级中断下数据竞争点的方法,其特征在于,所述配置文件包括中断任务列表、任务的优先级、以及开关中断指令。
3.如权利要求2所述的一种识别多级中断下数据竞争点的方法,其特征在于,所述全局变量读写信息是根据函数调用图从第一个被调用函数开始,遍历函数对应的抽象语法树中所述的全局变量,被赋值的全局变量读写点标记为写操作点,被读取的全局变量读写点标记为读操作点。
4.如权利要求3所述的一种识别多级中断下数据竞争点的方法,其特征在于,所述中断驱动程序的程序源码为C语言时,还包括根据函数调用图对指针别名进行分析,从第一个被调用函数开始,遍历函数对应的抽象语法树中所有赋值的指针变量,将其与新赋值的全局变量进行关联,从而得到整个函数的指针别名信息。
5.如权利要求1所述的一种识别多级中断下数据竞争点的方法,其特征在于,所述函数控制流图是一个有向图,根据函数调用图按序访问函数内对应抽象语法树的语句,当语句块遇到分支语句时,获取分支语句...
【专利技术属性】
技术研发人员:李立,魏书宁,
申请(专利权)人:湖南泛联新安信息科技有限公司,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。