MuChenger 8286196d9f [bsp/xuantie][fix] 修正Bsp Kconfig配置 2 ay önce
..
.settings cb4a370c71 [bsp/xuantie] 添加bsp导入rt-studio相关文件 (#10728) 3 ay önce
applications cec2dbd7e9 玄铁全系列RISC-V内核支持(E系列/R系列/C系列) (#10343) 7 ay önce
board bac64cad82 [bsp/xuantie] xuantie系列bsp添加导出CDK工程功能 #10630 4 ay önce
figures cec2dbd7e9 玄铁全系列RISC-V内核支持(E系列/R系列/C系列) (#10343) 7 ay önce
utilities bac64cad82 [bsp/xuantie] xuantie系列bsp添加导出CDK工程功能 #10630 4 ay önce
.config e2aed47b6c [format][version]: synchronize bsp version configuration 2 ay önce
.cproject cb4a370c71 [bsp/xuantie] 添加bsp导入rt-studio相关文件 (#10728) 3 ay önce
.project cb4a370c71 [bsp/xuantie] 添加bsp导入rt-studio相关文件 (#10728) 3 ay önce
Kconfig 8286196d9f [bsp/xuantie][fix] 修正Bsp Kconfig配置 2 ay önce
README.md cec2dbd7e9 玄铁全系列RISC-V内核支持(E系列/R系列/C系列) (#10343) 7 ay önce
SConscript d62f1e46b8 [bsp/xuantie] 修复bsp的dist功能 6 ay önce
SConstruct cec2dbd7e9 玄铁全系列RISC-V内核支持(E系列/R系列/C系列) (#10343) 7 ay önce
objdump.bat cec2dbd7e9 玄铁全系列RISC-V内核支持(E系列/R系列/C系列) (#10343) 7 ay önce
rtconfig.h e2aed47b6c [format][version]: synchronize bsp version configuration 2 ay önce
rtconfig.py cb4a370c71 [bsp/xuantie] 添加bsp导入rt-studio相关文件 (#10728) 3 ay önce
rtconfig_preinc.h cb4a370c71 [bsp/xuantie] 添加bsp导入rt-studio相关文件 (#10728) 3 ay önce
template.cdkproj bac64cad82 [bsp/xuantie] xuantie系列bsp添加导出CDK工程功能 #10630 4 ay önce
template.cdkws bac64cad82 [bsp/xuantie] xuantie系列bsp添加导出CDK工程功能 #10630 4 ay önce

README.md

XuanTie - R910 Series

一 简介

1. 内核

R910 是基于 RISC-V 指令架构的 64 位高性能多核心处理器,主要面向对实时性要求严格的高端 SSD、网络存储器等领域以及对性能要求严格的边缘计算领域,如边缘服务器、边缘计算卡、高端机器视觉、高端视频监控、自动驾驶、移动智能终端、5G 基站等。R910 采用同构多核架构,支持 1~4 个 R910 核心可配置。每个 R910 核心采用自主设计的微体系结构,采用 3 译码 8 执行的超标量架构;并重点针对实时性进行优化,提供多种可配置的实时性功能。

R910 支持灵活可配置的指令紧耦合内存(ITCM)和数据紧耦合内存(DTCM),满足处理器对内存访问延时确定以及快速的需求。系统可通过 128bits 的 AXI4.0 TCM 从接口访问片上 ITCM 和 DTCM,实现外部和 R910 之间快速的数据交互。同时,R910 配置了专用的快速外设访问接口(LLP)和 APB 主设备接口(FPP),分别支持 128bit 的 AXI4.0 和 64bit 的 APB4.0 接口,提高 R910 访问特定私有外设的效率。此外,R910 核心支持实时检测并关断内部空闲功能模块,降低处理器动态功耗。

2.特点

• RISC-V 64GC 指令架构;

• 支持小端模式;

• 9~12 级深流水架构;

• 3 译码 8 执行的超标量架构,对软件完全透明;

• 按序取指,乱序发射,乱序完成和按序退休;

• 两级 TLB 内存管理单元,实现虚实地址转换与内存管理;

• 指令紧耦合内存大小可配置,支持 16KB、32KB、64KB,可配置 ECC 校验;

• 数据紧耦合内存大小可配置,支持 16KB、32KB、64KB,可配置 ECC 校验;

• 指令高缓和数据高缓大小可配置,支持 32KB、64KB,缓存行为 64B;

• 指令高缓可配置奇偶校验,数据高缓可配置 ECC 校验;

• 指令预取功能,硬件自动检测并动态启动;

• 指令高缓路预测的低功耗访问技术;

• 短循环缓存的低功耗执行技术;

• 64Kb 的两级多路并行分支预测器;

• 1024/2048 表项可配置的分支目标缓存器;

• 支持 12 层的硬件返回地址堆栈;

• 256 表项的间接跳转分支预测器;

• 非阻塞发射,投机猜测执行;

• 基于物理寄存器的重命名技术;

• 支持 0 延时 move 指令;

• 双发射、全乱序执行的 load、store 指令;

• 支持读写各 8 路并发的总线访问;

• 支持写合并;

• 支持 8 个通道的数据缓存硬件预取,支持 stride 的预取方式;

• 浮点执行单元可配置,支持半精度、单精度;

3.BSP支持情况

  • 当前BSP支持下述内核:

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

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

4.运行QEMU

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

二 工具

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

三 调试方法

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

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

env

生成可执行文件,可以直接在命令行启动qemu或者配置vscode脚本借助vscode强大的插件进行图形化调试,qemu的相关命令可以查看玄铁qemu的用户手册,下述是启动qemu的命令,在powershell或命令行可直接执行下述命令,注意qemu需要导出至环境变量或者使用绝对路径。

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

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

env

一起为RISC-V加油!