一种基于用户需求的芯片代码优化方法技术

技术编号:37624554 阅读:10 留言:0更新日期:2023-05-18 12:15
本发明专利技术涉及芯片代码检查技术领域,尤其涉及一种基于用户需求的芯片代码优化方法,包括:根据质量检测指令获取芯片代码的运行代码,对所述运行代码执行代码切割和首尾相连得到检测链表,对所述检测链表执行语法语义检测,得到运行代码的语法语义检测结果,根据所述检测链表获取测试数据集,其中所述测试数据集的数据类型及数据值均来源于与检测链表预先绑定的测试数据库中,利用所述测试数据集依次测试检测链表,得到运行代码的动态测试结果,将所述语法语义检测结果和动态测试结果反馈至质量检测指令的发起人,完成对芯片代码的质量检测,本发明专利技术克服传统方法测试芯片代码的运行代码需要调用过多测试资源,进而造成测试时间与资源消耗高的问题。时间与资源消耗高的问题。时间与资源消耗高的问题。

【技术实现步骤摘要】
一种基于用户需求的芯片代码优化方法


[0001]本专利技术涉及芯片代码检查
,尤其涉及一种基于用户需求的芯片代码优化方法。

技术介绍

[0002]芯片代码一般指提高芯片智能性的可编程程序,是一种专门在工业环境下而设计的数字运算操作、逻辑循环判断类的代码。相比于传统元件来说,集成了代码的芯片智能性更高,通过运行代码实现通信、识别、报警等功能。
[0003]目前基于芯片代码的运行代码主要基于抽象语法树结构分析法,即将芯片代码的运行代码按照特定方式层次化生成多个代码分支,通过遍历多个代码分支之间的依存关系从而确定芯片代码的运行代码的异常。
[0004]基于抽象语法树结构分析法的代码检测确实具有很高的实用性,但当芯片代码的运行代码的代码量变高时,分化为多个代码分支的分化耗时高,会造成过多的资源浪费问题。

技术实现思路

[0005]本专利技术提供一种基于用户需求的芯片代码优化方法其主要目的在于克服传统方法测试芯片代码的运行代码需要调用过多测试资源,进而造成测试时间与资源消耗高的问题。
[0006]为实现上述目的,本专利技术提供的一种基于用户需求的芯片代码优化方法,包括:接收芯片代码的质量检测指令,根据所述质量检测指令对芯片代码的质量执行静态检测和动态检测。
[0007]其中对芯片代码的静态检测包括:根据所述质量检测指令获取芯片代码的运行代码,其中运行代码以指令表格式构建。
[0008]对所述运行代码执行代码切割,得到多个子代码,将每个子代码作为检测对象,生成检测节点
[0009]按照检测节点对应的子代码在运行代码的顺序,对所有的检测节点执行首尾相连,得到运行代码的检测链表,其中检测链表由具有先后顺序的多个检测节点组成。
[0010]基于抽象语法树结构分析法对所述检测链表执行语法语义检测,得到运行代码的语法语义检测结果,完成对芯片代码的静态检测。
[0011]其中对芯片代码的动态检测包括:根据所述检测链表获取测试数据集,其中所述测试数据集的数据类型及数据值均来源于与检测链表预先绑定的测试数据库中。
[0012]利用所述测试数据集依次测试检测链表,得到运行代码的动态测试结果。
[0013]将所述语法语义检测结果和动态测试结果反馈至质量检测指令的发起人,完成对芯片代码的质量检测。
[0014]可选地,所述质量检测指令的构建包括:接收芯片代码的检测人员发出的检测生
成指令。
[0015]根据所述检测生成指令触发芯片信息询问指令,并将芯片信息询问指令发送至检测人员。
[0016]当芯片信息询问指令成功发送至检测人员后,接收检测人员填写的芯片代码信息,其中芯片代码信息包括芯片编号、芯片的运行代码的存储地址。
[0017]将芯片代码信息封装至检测生成指令,得到所述质量检测指令。
[0018]可选地,所述对所述运行代码执行代码切割,得到多个子代码,包括:获取所述运行代码的代码类型,其中代码类型包括JAVA、C语言、Python。
[0019]获取与所述代码类型对应的切割表,其中切割表由标识符组成。
[0020]根据所述切割表的标识符对运行代码执行切割,得到多个子代码。
[0021]可选地,所述标识符包括:数据存储类标识符、逻辑运算类标识符、算术运算类标识符、跳转与返回标识符、置位与复位标识符、数据输出类标识符、数据调用类标识符。
[0022]可选地,所述将每个子代码作为检测对象,生成检测节点,包括:获取封装代码,其中封装代码预先与测试数据库执行绑定,且测试数据库可根据封装代码的需求提供各种类型的测试数据。
[0023]将每个子代码作为封装代码的对象执行封装,得到所述检测节点。
[0024]可选地,所述按照检测节点对应的子代码在运行代码的顺序,对所有的检测节点执行首尾相连,得到运行代码的检测链表,包括:获取每个检测节点对应的子代码在运行代码的位置,得到节点位置。
[0025]根据每个检测节点的节点位置,对多个检测节点执行排序,得到排序链表。
[0026]获取每个检测节点对应的子代码的注释信息,其中子代码的注释信息包括子代码的输入数据信息,其中输入数据信息由输入数据的类型标识符、范围区间组成。
[0027]判断每个检测节点的输入数据信息是否存在相同,将存在相同的输入数据信息的检测节点归并为同类关系。
[0028]将不存在相同的输入数据信息的检测节点归并为异类关系。
[0029]根据输入数据信息,判断异类关系的检测节点与同类关系的检测节点是否存在包含与被包含的关系,将异类关系的检测节点包含同类关系的检测节点,或同类关系的检测节点包含异类关系的检测节点的多个检测节点归并为包含关系。
[0030]根据同类关系、异类关系及包含关系调整所述排序链表,得到检测链表。
[0031]可选地,所述根据同类关系、异类关系及包含关系调整所述排序链表,得到检测链表,包括:判断所述检测链表中两组检测节点的关系是否为同类关系,若为同类关系则将两组检测节点封装为一个代码块,得到一个同类检测节点。
[0032]若不为同类关系则分开封装两组检测节点为互相独立的代码块,分别得到两个异类检测节点。
[0033]直至完成所有两组检测节点之间的同类关系判断后,得到包括同类检测节点和异类检测节点的排序链表。
[0034]判断异类检测节点和同类检测节点的之间是否具有包含关系,在存在包含关系的异类检测节点和同类检测节点的代码块中,生成包含关系的字符关键字。
[0035]直至完成所有异类检测节点和同类检测节点的包含关系判断后,得到所述检测链
表。
[0036]可选地,所述检测链表的代码量小于运行代码的代码量。
[0037]可选地,所述根据所述检测链表获取测试数据集,包括:遍历出所述检测链表中所有的异类检测节点和同类检测节点,其中所有的异类检测节点和同类检测节点分为具有包含关系的字符关键字,和不具有包含关系的字符关键字。
[0038]从具有字符关键字的异类检测节点和同类检测节点中,提取出范围区间更大的检测节点,得到数据触发节点。
[0039]获取所述数据触发节点对应的输入数据信息,其中输入数据信息由输入数据的类型标识符、范围区间组成。
[0040]启动所述测试数据库,利用测试数据库生成符合数据触发节点的输入数据信息的测试数据,得到第一测试数据。
[0041]依次提取不具有字符关键字的异类检测节点和同类检测节点的输入数据信息,并基于测试数据库生成对应的测试数据,得到第二测试数据。
[0042]汇总所述第一测试数据和第二测试数据得到所述测试数据集。
[0043]可选地,所述利用所述测试数据集依次测试检测链表,得到运行代码的动态测试结果,包括:从所述测试数据集中提取出第一测试数据和第二测试数据,并分别基于第一测试数据和第二测试数据生成第一测试用例和第二测试用例。
[0044]运行所述检本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于用户需求的芯片代码优化方法,其特征在于,所述方法包括:接收芯片代码的质量检测指令,根据所述质量检测指令对芯片代码的质量执行静态检测和动态检测,其中对芯片代码的静态检测包括:根据所述质量检测指令获取芯片代码的运行代码,其中运行代码以指令表格式构建;对所述运行代码执行代码切割,得到多个子代码,将每个子代码作为检测对象,生成检测节点;按照检测节点对应的子代码在运行代码的顺序,对所有的检测节点执行首尾相连,得到运行代码的检测链表,其中检测链表由具有先后顺序的多个检测节点组成;基于抽象语法树结构分析法对所述检测链表执行语法语义检测,得到运行代码的语法语义检测结果,完成对芯片代码的静态检测;其中对芯片代码的动态检测包括:根据所述检测链表获取测试数据集,其中所述测试数据集的数据类型及数据值均来源于与检测链表预先绑定的测试数据库中;利用所述测试数据集依次测试检测链表,得到运行代码的动态测试结果;将所述语法语义检测结果和动态测试结果反馈至质量检测指令的发起人,完成对芯片代码的质量检测。2.如权利要求1所述的基于用户需求的芯片代码优化方法,其特征在于,所述质量检测指令的构建包括:接收芯片代码的检测人员发出的检测生成指令;根据所述检测生成指令触发芯片信息询问指令,并将芯片信息询问指令发送至检测人员;当芯片信息询问指令成功发送至检测人员后,接收检测人员填写的芯片代码信息,其中芯片代码信息包括芯片编号、芯片的运行代码的存储地址;将芯片代码信息封装至检测生成指令,得到所述质量检测指令。3.如权利要求2所述的基于用户需求的芯片代码优化方法,其特征在于,所述对所述运行代码执行代码切割,得到多个子代码,包括:获取所述运行代码的代码类型,其中代码类型包括JAVA、C语言、Python;获取与所述代码类型对应的切割表,其中切割表由标识符组成;根据所述切割表的标识符对运行代码执行切割,得到多个子代码。4.如权利要求3所述的基于用户需求的芯片代码优化方法,其特征在于,所述标识符包括:数据存储类标识符、逻辑运算类标识符、算术运算类标识符、跳转与返回标识符、置位与复位标识符、数据输出类标识符、数据调用类标识符。5.如权利要求4所述的基于用户需求的芯片代码优化方法,其特征在于,所述将每个子代码作为检测对象,生成检测节点,包括:获取封装代码,其中封装代码预先与测试数据库执行绑定,且测试数据库可根据封装代码的需求提供各种类型的测试数据;将每个子代码作为封装代码的对象执行封装,得到所述检测节点。6.如权利要求5所述的基于用户需求的芯片代码优化方法,其特征在于,所述按照检测节点对应的子代码在运行代码的顺序,对所有的检测节点执行首尾相连,得到运行代码的
检测链表,包括:获取每个检测节点对应的子代码在运行代码的位置,得到节点位置;根据每个检测节点的节点位置,对多个检测节点执行排序,得到排序链表;获取每个检测节点对应的子代码的注释信息,其中子...

【专利技术属性】
技术研发人员:张侠
申请(专利权)人:青岛青软晶尊微电子科技有限公司
类型:发明
国别省市:

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

1