本发明涉及芯片开发,特别涉及一种芯片的固件问题定位方法、装置、设备及存储介质。
背景技术:
1、在完整的芯片研发过程中,除了硬件电路设计,还包含芯片的固件开发。芯片的固件代码通常用于编程控制和管理芯片的功能和行为,它和硬件电路协同工作,以确保芯片能够正常运行并满足设计要求。芯片验证属于芯片设计一环,芯片验证除了测试硬件电路功能,还需对固件开发中遇到的问题进行定位。
2、由于固件开发是独立团队在完成,当固件开发过程中发现与芯片设计不相符的输出,需要芯片验证团队对该问题进行定位分析。定位分析过程需要复现问题,但是在复现问题时对于固件的测试激励不能直接使用,在硬件加速仿真平台适配困难,需要人工编译调整测试激励,使得芯片验证的耗时很长。因此,如何能够实现测试激励的自动化调整,以自动适配芯片的运行环境,提高芯片固件问题的定位分析速度,是现今急需解决的问题。
技术实现思路
1、本发明的目的是提供一种芯片的固件问题定位方法、装置、设备及计算机可读存储介质,以实现测试激励的自动化调整,能够自动适配芯片的运行环境,提高芯片固件问题的定位分析速度。
2、为解决上述技术问题,本发明提供一种芯片的固件问题定位方法,包括:
3、获取待验证芯片的原始激励文件;其中,所述原始激励文件包括所述待验证芯片的固件触发问题时的内存数据;
4、将所述原始激励文件中的文本内容转换为预设数据格式的可编译数据结构;
5、将所述可编译数据结构中预设位置的元素内容替换为目标元素内容,得到目标数据结构;其中,所述目标元素内容包括运行环境内存信息;
6、根据所述目标数据结构和预设编程模板,生成二进制测试文件,并将所述二进制测试文件下载到所述待验证芯片;
7、触发所述待验证芯片执行所述二进制测试文件,得到所述原始激励文件对应的固件问题验证报告。
8、在另一方面,所述可编译数据结构的数据结构为数组,所述将所述原始激励文件中的文本内容转换为预设数据格式的可编译数据结构,包括:
9、对所述原始激励文件中的文本内容进行识别和分割,得到预设分割格式的分割数组;
10、将所述分割数组中的元素内容转换为所述预设数据格式,得到所述可编译数据结构。
11、在另一方面,所述原始激励文件中文本内容的格式为16进制,所述原始激励文件中每行存储4字节的文本内容;所述分割数组中的各元素内容为32位,所述预设数据格式为16进制。
12、在另一方面,所述根据所述目标数据结构和预设编程模板,生成二进制测试文件,包括:
13、根据所述目标数据结构和目标编程模板,生成测试激励代码;其中,所述目标编程模板为任一预设编程模板,不同的预设编程模板采用的编程语言不同,所述测试激励代码中所述目标数据结构中的元素内容写入到目标位置,所述目标位置包括所述原始激励文件对应的芯片内存地址的位置;
14、根据所述测试激励代码,利用所述目标编程模板对应的编译框架,生成所述二进制测试文件;其中,所述编译框架与所述目标编程模板采用相同的编程语言。
15、在另一方面,所述触发所述待验证芯片执行所述二进制测试文件,得到所述原始激励文件对应的固件问题验证报告,包括:
16、将所述目标数据结构对应的芯片内存地址写入到所述待验证芯片,以触发所述待验证芯片读取所述芯片内存地址中的内容进行固件问题验证。
17、在另一方面,该方法还包括:
18、获取固件配置文件和芯片配置文件;其中,所述固件配置文件包括所述待验证芯片的固件触发问题时的芯片配置参数,所述芯片配置文件包括预设芯片配置参数;
19、按照预设模块内存地址范围,对所述固件配置文件和所述芯片配置文件中的模块操作进行分类,得到所述待验证芯片中各模块各自对应的模块操作;其中,所述模块操作为对所述模块进行的配置操作;
20、分别对各所述模块各自对应的所述固件配置文件的模块操作与所述芯片配置文件的模块操作进行对比,得到差异化对比报告。
21、在另一方面,所述分别对各所述模块各自对应的所述固件配置文件的模块操作与所述芯片配置文件的模块操作进行对比,得到差异化对比报告,包括:
22、识别所述固件配置文件中当前模块对应的当前内存地址的模块操作和所述芯片配置文件中当前模块对应的当前内存地址的模块操作;其中,当前模块为任一所述模块,所述当前内存地址为当前模块对应的预设模块内存地址范围内的任一内存地址;
23、若所述固件配置文件中存在当前模块操作,则判断所述芯片配置文件中当前模块对应的当前内存地址的模块操作中是否存在当前模块操作;其中,当前模块操作为所述固件配置文件中当前模块对应的当前内存地址的模块操作中的任一模块操作;
24、若不存在当前模块操作,则判断芯片配置文件中当前模块对应的当前内存地址的模块操作中是否存在当前模块操作对应的同类模块操作;其中,所述同类模块操作与当前模块操作均能配置当前模块实现同一功能;
25、若不存所述同类模块操作,则生成当前模块操作对应的错误配置信息;其中,所述差异化对比报告包括所述错误配置信息;
26、若存在当前模块操作或所述同类模块操作,则确定当前模块操作不为错误配置。
27、本发明还提供了一种芯片的固件问题定位装置,包括:
28、获取单元,用于获取待验证芯片的原始激励文件;其中,所述原始激励文件包括所述待验证芯片的固件触发问题时的内存数据;
29、激励产生单元,用于获将所述原始激励文件中的文本内容转换为预设数据格式的可编译数据结构;
30、激励适配单元,用于将所述可编译数据结构中预设位置的元素内容替换为目标元素内容,得到目标数据结构;其中,所述目标元素内容包括运行环境内存信息;
31、编译生成单元,用于根据所述目标数据结构和预设编程模板,生成二进制测试文件,并将所述二进制测试文件下载到所述待验证芯片;
32、激励下发单元,用于触发所述待验证芯片执行所述二进制测试文件,得到所述原始激励文件对应的固件问题验证报告。
33、本发明还提供了一种芯片的固件问题定位设备,包括:
34、存储器,用于存储计算机程序;
35、处理器,用于执行所述计算机程序时实现如上述所述的芯片的固件问题定位方法的步骤。
36、此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的芯片的固件问题定位方法的步骤。
37、本发明所提供的一种芯片的固件问题定位方法,包括:获取待验证芯片的原始激励文件;其中,原始激励文件包括待验证芯片的固件触发问题时的内存数据;将原始激励文件中的文本内容转换为预设数据格式的可编译数据结构;将可编译数据结构中预设位置的元素内容替换为目标元素内容,得到目标数据结构;其中,目标元素内容包括运行环境内存信息;根据目标数据结构和预设编程模板,生成二进制测试文件,并将二进制测试文件下载到待验证芯片;触发待验证芯片执行二进制测试文件,得到原始激励文件对应的固件问题验证报告;
38、可见,本发明通过将原始激励文件中的文本内容转换为预设数据格式的可编译数据结构,能够将复现问题的测试激励转换为编译器可识别的可编译数据结构,从而能够自动调整测试激励并转换为芯片可识别的二进制文件,实现芯片运行环境的自动适配,提高了芯片固件问题的定位分析速度。此外,本发明还提供了一种芯片的固件问题定位装置、设备及计算机可读存储介质,同样具有上述有益效果。
1.一种芯片的固件问题定位方法,其特征在于,包括:
2.根据权利要求1所述的芯片的固件问题定位方法,其特征在于,所述可编译数据结构的数据结构为数组,所述将所述原始激励文件中的文本内容转换为预设数据格式的可编译数据结构,包括:
3.根据权利要求2所述的芯片的固件问题定位方法,其特征在于,所述原始激励文件中文本内容的格式为16进制,所述原始激励文件中每行存储4字节的文本内容;所述分割数组中的各元素内容为32位,所述预设数据格式为16进制。
4.根据权利要求1所述的芯片的固件问题定位方法,其特征在于,所述根据所述目标数据结构和预设编程模板,生成二进制测试文件,包括:
5.根据权利要求1所述的芯片的固件问题定位方法,其特征在于,所述触发所述待验证芯片执行所述二进制测试文件,得到所述原始激励文件对应的固件问题验证报告,包括:
6.根据权利要求1至5任一项所述的芯片的固件问题定位方法,其特征在于,还包括:
7.根据权利要求6所述的芯片的固件问题定位方法,其特征在于,所述分别对各所述模块各自对应的所述固件配置文件的模块操作与所述芯片配置文件的模块操作进行对比,得到差异化对比报告,包括:
8.一种芯片的固件问题定位装置,其特征在于,包括:
9.一种芯片的固件问题定位设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的芯片的固件问题定位方法的步骤。
