一种针对中断驱动型嵌入式软件的共享数据分析方法技术

技术编号:38220180 阅读:30 留言:0更新日期:2023-07-25 17:51
本发明专利技术公开了一种针对中断驱动型嵌入式软件的共享数据分析方法,包括以下步骤:步骤一,前期处理;步骤二,并发流入口分析;步骤三,访问模型建立;步骤四,指针分析;步骤五,数值分析;步骤六,识别共享数据;步骤七,共享数据标记;本发明专利技术通过一个通用的共享数据访问模型刻画各种粒度共享数据访问情况,在此基础上采用基于抽象解释的数值分析获得表示共享数据访问所需的数值不变式,以精确检测程序中的共享数据,达到千行级程序低误报无漏报的效果,且可扩展到万行程序,有利于为中断数据访问冲突的检测工作提供精确的数据集,降低了现有共享数据分析方法的误报和漏报,提升共享数据分析的精确性和完备性。析的精确性和完备性。析的精确性和完备性。

【技术实现步骤摘要】
一种针对中断驱动型嵌入式软件的共享数据分析方法


[0001]本专利技术涉及共享数据分析
,具体为一种针对中断驱动型嵌入式软件的共享数据分析方法。

技术介绍

[0002]中断驱动型程序广泛用于安全关键领域,包括航空、航天、汽车电子、医疗设备等,此类软件绝大部分关键计算或功能都是通过中断发起或处理,使用大量的共享数据来实现主任务和中断以及不同中断之间的通信和数据交互,在软件运行时会产生大量复杂的执行交错序列,使其容易出现并发缺陷,例如数据竞争和原子性违反,这些缺陷常常来自主任务和中断在共享数据上的复杂交互,因此,共享数据分析对于检测中断驱动型程序的并发缺陷至关重要。
[0003]这些直接运行在硬件上的中断驱动型嵌入式软件的共享数据类型及粒度包括全局变量、指针别名、数组元素、结构体/联合体成员变量和I/O地址指针,其中,I/O地址指针广泛用于处理I/O数据,目前,共享数据分析方法主要包括扩展的逃逸分析方法以及基于语法分析的方法,直接将这些传统方法应用于中断驱动型嵌入式软件的共享数据分析上将导致许多误报和漏报,具体而言,现有方法难以识别通本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种针对中断驱动型嵌入式软件的共享数据分析方法,包括以下步骤:步骤一,前期处理;步骤二,并发流入口分析;步骤三,访问模型建立;步骤四,指针分析;步骤五,数值分析;步骤六,识别共享数据;步骤七,共享数据标记;其特征在于:其中在上述步骤一中,首先进行工程项目的输入,进行代码兼容性的处理,针对不同平台编写对应的预处理宏,以屏蔽或替换平台方言,随后通过Clang编译器产生后续分析所需的规范中间表示,构造函数的函数调用图,沿着调用图自底向上执行指向分析,完成后备用;其中在上述步骤二中,当步骤一中的前期处理完成后,利用调用图和指针分析的结果找出程序中所有并发流的入口函数,将指向分析结果中函数指针的指向信息同步到调用图上,添加通过函数指针调用函数的调用边,使得通过函数指针调用的函数在调用图中的节点入度大于0;其中在上述步骤三中,当步骤二中的并发流入口分析完成后,建立一个可对标量类型、聚合类型以及I/O地址指针类型的共享数据进行统一表示的参数化的内存访问模型,模型表示为一个四元组<Base,Offset,Size,Mode>其中在上述步骤四中,当步骤三中的访问模型建立完成后,通过指针分析确定内存访问模型中的Base值,根据发生访问的程序语句可得到Size值和Mode类型,从而,如何精确地描述抽象内存区域将取决于Offset值集的精确性;其中在上述步骤五中,当步骤四中的指针分析完成后,进行Offset值集的访问刻画,对每一个并发流进行独立的基于抽象解释的数值分析,通过不动点迭代分析逼近数据对象覆盖的值集,计...

【专利技术属性】
技术研发人员:王博祥陈睿李超于婷婷高栋栋贾春鹏杨帆
申请(专利权)人:北京轩宇信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1