System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及芯片,特别是涉及一种代码编译平台、方法、装置和计算机设备。
技术介绍
1、芯片验证是芯片研发过程中至关重要的环节,而对于系统级芯片(system onchip,soc)来说,需要从验证层次的角度出发,分别进行模块验证、子系统验证、系统验证等不同级别的芯片验证。除此之外为了在节约成本的前提下提高芯片的集成度以及性能,异构芯片的需求度也越来越高。因此面向多架构的核心以及针对不同的测试级别以及复杂的测试场景,单一的芯片验证平台无法支撑所有测试,因此在soc芯片的验证过程中会应用到多种验证平台,包括软件仿真验证平台(simulator)、硬件仿真器(emulator)、现场可编程门阵列(field programmable gate array,fpga)等。
2、然而,无论是哪种验证平台,都需要将编写好的测试程序代码烧录到芯片中,目前市面上缺少统一的代码开发框架,软硬件协同开发成本较高,芯片开发验证效率低。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种代码编译平台、方法、装置和计算机设备,适用于多个芯片验证平台,提高了芯片开发验证效率。
2、第一方面,本申请实施例提供了一种代码编译平台,所述代码编译平台包括:
3、函数库,包括基于编程语言编写的多个函数;
4、文件库,包括多个脚本文件;
5、编译环境组件,分别与所述函数库、所述文件库连接,用于对待测试芯片的测试源代码进行编译生成编译文件,并根据多个所述脚本
6、在其中一个实施例中,所述待测试芯片包括不同架构的主核心和从核心,所述编译环境组件包括:
7、主编译环境模块,用于对所述主核心的第一测试源代码进行编译生成第一编译文件,并根据部分所述脚本文件对所述第一编译文件进行格式转换,对应生成具有不同格式的多个第一验证文件;其中,所述第一测试源代码是基于所述函数库开发的;
8、从编译环境模块,用于对所述从核心的第二测试源代码进行编译生成第二编译文件,并根据部分所述脚本文件对所述第二编译文件进行格式转换,对应生成具有不同格式的多个第二验证文件;其中,所述第二测试源代码是基于所述函数库开发的,所述第一验证文件和所述第二验证文件用于所述芯片验证平台对所述待测试芯片进行验证。
9、在其中一个实施例中,所述主编译环境模块包括主代码存储单元,所述主代码存储单元用于存储所述第一测试源代码;
10、所述从编译环境模块包括从代码存储单元,所述从代码存储单元用于存储所述第二测试源代码;其中,
11、目标编译环境模块包括启动存储单元,所述启动存储单元用于存储所述待测试芯片的上电启动代码;其中,所述目标编译环境模块包括所述主编译环境模块或所述从编译环境模块,所述目标编译环境模块对应的目标核心用于执行所述上电启动代码。
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、获取模块,用于获取待测试芯片的测试源代码,所述测试源代码是基于预先构建的代码编译本文档来自技高网...
【技术保护点】
1.一种代码编译平台,其特征在于,所述代码编译平台包括:
2.根据权利要求1所述的代码编译平台,其特征在于,所述待测试芯片包括不同架构的主核心和从核心,所述编译环境组件包括:
3.根据权利要求2所述的代码编译平台,其特征在于,所述主编译环境模块包括主代码存储单元,所述主代码存储单元用于存储所述第一测试源代码;
4.根据权利要求2所述的代码编译平台,其特征在于,所述从编译环境模块用于在不存在分散加载文件的情况下,采用默认编译模式对所述第二测试源代码进行整体编译,并生成所述第二编译文件;
5.根据权利要求1所述的代码编译平台,其特征在于,所述函数库包括:
6.一种代码编译方法,其特征在于,所述方法包括:
7.根据权利要求6所述的代码编译方法,其特征在于,所述待测试芯片包括不同架构的主核心和从核心,所述获取待测试芯片的测试源代码包括:
8.根据权利要求6所述的代码编译方法,其特征在于,所述验证文件包括十六进制文件和内存初始化文件中的至少一种;
9.一种代码编译装置,其特征在于,所述代码编译装
10.一种计算机设备,其特征在于,所述包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求6至8中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种代码编译平台,其特征在于,所述代码编译平台包括:
2.根据权利要求1所述的代码编译平台,其特征在于,所述待测试芯片包括不同架构的主核心和从核心,所述编译环境组件包括:
3.根据权利要求2所述的代码编译平台,其特征在于,所述主编译环境模块包括主代码存储单元,所述主代码存储单元用于存储所述第一测试源代码;
4.根据权利要求2所述的代码编译平台,其特征在于,所述从编译环境模块用于在不存在分散加载文件的情况下,采用默认编译模式对所述第二测试源代码进行整体编译,并生成所述第二编译文件;
5.根据权利要求1所述的代码编译平台,其特征在于,所述函...
【专利技术属性】
技术研发人员:马云姣,蒋进松,谭渝,魏中晴,张沈宇,
申请(专利权)人:上海合芯数字科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。