summaryrefslogtreecommitdiff
path: root/bsp/xuantie/xiaohui/c907/README.md
blob: 1ffc04dc4717ac8c52825a7dc9df0fc25601fa35 (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# XuanTie - C907  Series

## 一 简介

### 1. 内核

C907 是一款基于 RISC-V 指令集架构的入门级 AP 处理器,主要面向家庭视觉、人机交互、网络通信
等领域,例如可视门铃、智能门锁、触屏智能家电等产品。  

### 2.特点

• 支持 RV32 与 RV64 架构;
• 支持 RV64GCB + RV32GCB 指令集,兼容 RVA22;
• 支持 XuanTie Turbo 扩展指令集;
• 可选配浮点指令扩展,支持 FP16/BF16/FP32 运算格式;
• 可选配矢量指令扩展,支持 Vector Extention 1.0 版本,支持 INT8/INT16/INT32/INT64 以及
FP16/BF16/FP32 运算格式,使用 chaining 的优化运算带宽技术;
• 可选配矩阵指令扩展,支持 INT4/INT8/FP16/BF16;
• 支持多核 SMP,可支持 1~4 核心可配置
• 按序部分双发 9 级流水线,支持乱序回写;
• 混合分支预测机制,改进版的 G-Shared 分支预测器和 L0 BTB、 RAS;
• 支持指令融合技术;
• 支持指令和数据的 prefetch;
• 指令 cache,四路组相连结构, 64B 缓存行, 8KB-64KB 可配置, VIPT;
• 数据 cache,四路组相连结构, 64B 缓存行, 8KB-64KB 可配置, VIPT 模拟 PIPT;
• 二级 Cache, 64B 缓存行, 128KB~4MB 可配置;
• 支持 L1、 L2 两级 TLB, Sv39/Sv48 可配置,支持 Sv32;

### 3.BSP支持情况

- 当前BSP支持下述内核:

  ```asciiarmor
  c907 c907fd c907fd-rv32 c907fdv c907fdvm c907fdvm-rv32 c907fdv-rv32 c907-rv32
  ```

- 当前BSP默认设置的内核是c907fd,该架构支持[F] [D]扩展,可以通过menuconfig工具使能[F]扩展或者[F] [D] 扩展。

- 当使用其他内核架构时需要修改,rtconfig.py文件中的`MCPU`字段。

### 4.运行QEMU

- BSP根目录下存在`qemu.bat`脚本,生成可执行文件后可点击该脚本直接启动QEMU.

## 二 工具

- 编译器: https://www.xrvm.cn/community/download?id=4433353576298909696
- 模拟器: https://www.xrvm.cn/community/download?id=4397435198627713024

注:若上述链接中的编译器与模拟器不能使用,可以使用下述CDK中的编译器与模拟器

- SDK:https://www.xrvm.cn/community/download?id=4397799570420076544

## 三 调试方法

**下述调试方法以E906举例,本BSP操作方式一致**,搭建完成RT-Thread开发环境,在BSP根目录使用env工具在当前目录打开env。

![](figures/1.env.png)

使用前执行一次**menuconfig**命令,更新rtconfig.h配置,然后在当前目录执行**scons -j12**命令编译生成可可执行文件。

<img src="figures/2.scons.png" alt="env" style="zoom: 95%;" />

生成可执行文件,可以直接在命令行启动qemu或者配置vscode脚本借助vscode强大的插件进行图形化调试,qemu的相关命令可以查看玄铁qemu的[用户手册](https://www.xrvm.cn/community/download?id=4397435198627713024),下述是启动qemu的命令,在powershell或命令行可直接执行下述命令,注意qemu需要导出至环境变量或者使用绝对路径。

```shell
qemu-system-riscv64 -machine smartl -nographic -kernel rtthread.elf -cpu e906
```

下述是使用vscode调试的展示。

<img src="figures/3.vscode.png" alt="env" style="zoom: 63%;" />

一起为RISC-V加油!