开发者学堂课程【平头哥剑池 CDK 功能及开发实战:基础概念:模拟器概念及其配置方法】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/61/detail/1120
基础概念:模拟器概念及其配置方法
本节课介绍模拟器在CDK中的提成以及模拟器的配置方法。
在之前的课程中提到在使用CDK进行玄铁CPU的SDK开发的过程中,如果没有CPU的硬件也要做开发的话,其实CDK也是支持的,因为CDK内置了一个能够模拟虚拟芯片平台的模块,这部分就叫做模拟器,可以模拟出一个虚拟的芯片平台,从而在调试中将的程序运行在虚拟的芯片平台中,CDK提供到模拟器,不仅会内置一些现有的虚拟芯片平台,也会提供给开发者一些可以配置的界面,能够让开发者配置出基于选点CPU自定义的一些虚拟平台。
整个先进平台包含三个部分的配置,第一部分是CPU的配置,可以用来选择具体使用到的选点CPU。第二部分是存储空间的配置,可以自定义出芯片所需的FLASH,ROM的存储空间。第三部分是外围设备的配置,对于一些有外设需求的程序来说,可以提供了一些丰富的外设库,能够导入到虚拟芯片平台中,定义出一个具有一定外设功能的模虚拟芯片平台来。这种虚拟平台一旦定义出来以后,在调试中可以配置的程序运行在自定义的虚拟平台中。
演示在CDK中虚拟平台的配置。打开CDK在tools菜单有simulator management,整个虚拟平台的配置都是在窗口中进行。可以看到窗口分为两个节点,第一部分是模拟器提供的所有的心理平台的集合,第二部分是用户可配置的部分。第一部分会把玄铁处理器分为之前的cskyv1、 cskyv2的自主支持架构,也有支持的业内主流的riscv32和riscv64架构的CPU。可以看到任何一个虚拟平台,它都包含CPU、memory、device、description,其中CPU、memory、device是分别对应到之前刚刚提到过的 CPU的配置和存储空间以及外设的配置,description是根据前面的配置关系自动生成的一些信息,在system下面已经内置的一些平台是不允许修改的。
用户需要配置新增平台的话是在User Configs,在User Configs下,需要加一些虚拟平台的话,首先需要加厂商名,然后可以在厂商名下添加自己的信息平台,可以新增一个新的信息平台,也可以从现有的平台中copy一份加到自己的厂商名下。
厂商名下就有了一个平台,在 copy的过程中,可以将自己名下的平台去自定义它的CPU型号以及CPU的一些特性,包括memory存储的空间,可以减掉没有必要的同时可以增加一些需要的存储空间。
外围设备可以将没有必要的外设去掉,增加一些有必要的。所有配置完成以后点击APPLY按钮,如果整个配置有错误,模拟题配置会自动排除错误页,直接定位到错误的位置。
如下图配置的这一块存储区域空间0是不合理的:
而且需要length是必须对齐,也是一个问题。两块地址是有重叠,也是不被允许的,这样可以把它设置到一个这个合理的地址。
需要配置中断控制器才能控制的csky_clic,按照的指引去配置即可,所以所有出现的错误模拟器系统都会给出错误的提示,并且定位到错误的位置。以上就是模拟器的配置方法。