0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Thread BSP全面支持玄铁全系列RISC-V 处理器 | 技术集结

RT-Thread官方账号 2025-07-03 18:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RT-Thread BSP全面支持玄铁全系列RISC-V处理器。玄铁系列RISC-V处理器由阿里达摩院研发,涵盖面向MCU的E系列、面向实时应用的R系列以及面向MPU的C系列。以玄铁QEMU为平台,RT-Thread标准版已全面适配玄铁E、R、C系列内核,并在C906内核上支持RT-Smart微内核操作系统本文将以E906运行RT-Thread和C906运行RT-Smart为例,详细介绍其应用场景与实现。

Xuantie BSP链接:

https://github.com/RT-Thread/rt-thread/tree/master/bsp/xuantie


目录


在E906上运行RT-Thread


配置cubemx在C906上运行RT-Smart

1

在E906上运行RT-Thread


1 简介

E906是一款基于 RISC-V 指令集的高能效嵌入式处理器,是玄铁 RISC-V MCU 产品线中的最高性能处理器。 E906 的设计目标是,使用最低的面积和功耗成本,取得相对较高的性能指标。 E906 主要面向语音、高端 MCU、轻量级 AI、导航、 WiFi 等应用领域。

1.1 特点

E906 处理器体系结构的主要特点如下:

32 位 RISC 处理器;

支持 RISC-V RV32IMA[F][D]C[P] 指令集;

支持 RISC-V 32/16 位混编指令集;

32 个 32 位通用寄存器

整型 5 级/浮点 7 级,单发射,顺序执行流水线;

可选配 BHT 和 BTB;

支持 RISC-V 机器模式和用户模式;

双周期硬件乘法器,基 4 硬件除法器;

可选配指令 cache,两路组相连结构, 2KiB-32KiB 可配置;

可选配数据 cache,两路组相连结构, 2KiB-32KiB 可配置;

兼容 RISC-V CLIC 中断标准,支持中断嵌套,外部中断源数量最高可配置 240 个;

兼容 RISC-V PMP 内存保护标准, 0/4/8/12/16 区域可配置;

支持 AHB-Lite 总线协议,支持三条总线:指令总线,数据总线和系统总线;

支持可配的性能监测单元;

支持玄铁扩展增强指令集

1.2 BSP支持情况

BSP链接:

https://github.com/RT-Thread/rt-thread/tree/master/bsp/xuantie

当前BSP支持下述内核:

E906E906F E906FD E906P E906FP E906FDP

当前BSP默认设置的内核是E906FD,该架构支持[F] [D]扩展,可以通过menuconfig工具选择配置。

当使用其他同类型架构不同扩展时的内核时需修改rtconfig.py文件中的MCPUCPU字段。

2 工具

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

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

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

若上述链接中的编译器与模拟器不能使用,可使用SDK中的编译器与模拟器工具。

3 编译执行

在BSP根目录下启动env工具:

f1ca3444-57f4-11f0-9cf1-92fbcf53809c.png

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

f1d5c098-57f4-11f0-9cf1-92fbcf53809c.png

在BSP根目录下生成rtthread.elf可执行文件后,双击qemu.bat脚本即可启动QEMU模拟器。在Windows环境下首次运行该脚本时,会提示输入QEMU可执行文件的路径;后续若未更改QEMU路径,可直接按回车键跳过此步骤。

f1e1111e-57f4-11f0-9cf1-92fbcf53809c.png

第二步需设置-cpu参数,默认值为e906fd。如需修改,请在:后输入目标内核型号,例如e906。

f1eecbc4-57f4-11f0-9cf1-92fbcf53809c.png

设置参数后,按回车键即可在QEMU上运行rtthread.elf可执行文件。

BSP根目录下包含objdump.bat脚本,双击运行该脚本可在根目录生成反汇编文件。

4调试方法

4.1 命令行调试

当前BSP支持通过命令行启动QEMU,或通过配置VSCode脚本利用其丰富插件实现图形化调试。有关QEMU的详细命令,请参考玄铁QEMU用户手册。以下为启动QEMU的命令,可在PowerShell或命令行中直接执行

注:需将QEMU路径导出至环境变量或使用绝对路径。

qemu-system-riscv32 -machine smartl -nographic -kernel rtthread.elf -cpu e906fd -gdb tcp::23333-S

在PowerShell或命令行中输入并执行上述命令后,即可查看运行结果。

f1fca3b6-57f4-11f0-9cf1-92fbcf53809c.png

在新的PowerShell或命令行中输入并执行以下命令,即可查看运行结果。

注:需将GDB路径导出至环境变量或使用绝对路径。

riscv64-unknown-elf-gdb.exertthread.elf-ex"target remote localhost:23333"

f209ac28-57f4-11f0-9cf1-92fbcf53809c.png

若未设置断点,在命令行中执行c命令即可让程序全速运行,运行时的界面显示如下:

f21bf4fa-57f4-11f0-9cf1-92fbcf53809c.png

4.2 VSCode调试

以下为VSCode调试示例。调试需配置相关脚本,可参考玄铁QEMU用户手册或使用参考脚本进行配置。

f231693e-57f4-11f0-9cf1-92fbcf53809c.png


2

在C906上运行RT-Smart


下文简要介绍在C906上运行RT-Smart系统的步骤,使用玄铁QEMU在C906上运行RT-Smart的快速上手指南已经上线文档中心,详细的系统启动流程与RT-Smart下的应用程序内容可在文档中心查看。

1 下载RT-Thread源码

RT-Smart与RT-Thread的源码位于同一个仓库,使用menuconfig工具配置选择RT-Smart或RT-Thread。

gitclonehttps://github.com/RT-Thread/rt-thread.git

2 配置工具链

开发工具链可从Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2-20250410.tar.gz下载。下载完成后,将其解压到/opt目录,然后编辑~/.bashrc文件,添加以下环境变量配置:

exportRTT_CC="gcc"exportRTT_EXEC_PATH="/opt/Xuantie-900-gcc-linux-6.6.0-musl64-x86_64-V3.0.2/bin/"exportRTT_CC_PREFIX="riscv64-unknown-linux-musl-"exportPATH="$RTT_EXEC_PATH:$PATH"

3 使能RT-Smart

首先进入RT-Thread Kernel配置选项:

f2494cd4-57f4-11f0-9cf1-92fbcf53809c.png

开启RT-Thread Smart选项

f2ed0b94-57f4-11f0-9cf1-92fbcf53809c.png

4 使能 lwext4 软件包(不使用ext4文件系统可不选)

基于RT-Thread仓库的 bsp/xuantie/virt64/c906/ 构建内核镜像,最终生成rtthread.bin/rtthread.elf ,内核默认支持FAT,若需挂载 ext4 的文件系统,则可添加 lwext4 软件包,即使能PKG_USING_LWEXT4 ,不使用则可以不选。

RT-Thread online packages -> systempackages -> lwext4: an excellent choice of ext2/3/4filesystem for microcontrollers

f2fb04a6-57f4-11f0-9cf1-92fbcf53809c.png

5 Scons编译

f30adaa2-57f4-11f0-9cf1-92fbcf53809c.png

6 制作根文件系统

拉取userapps仓库:userapps仓库包含了一些应用程序和配置文件,能够快速生成根文件系统,并为 RT-Thread 操作系统构建所需的应用程序。

gitclonehttps://github.com/RT-Thread/userapps

userapps目录中,将有如下文件:

f33484e2-57f4-11f0-9cf1-92fbcf53809c.png

apps:存放应用程序代码,包管理文件夹及编译产物

env.sh:用于配置环境变量

repo:用于管理软件包的文件夹

执行env.sh脚本配置环境:

sourceenv.sh

拉取工具链和编译根文件系统:为了编译 xuantie 目标平台上的代码,您需要下载并安装交叉编译工具

链:

cdappsxmake f -a xuantiexmakexmake smart-rootfs

7 生成文件系统镜像

生成的文件系统需与内核功能匹配。若配置内核时未启用 EXT4 文件系统,可通过以下命令生成 FAT 格式文件系统,最终在build目录下生成fat.img文件:

cdbuildmkfs.vfat -C fat.img16M

若内核已启用 EXT4 支持(即已配置PKG_USING_LWEXT4),可通过以下命令生成 ext4 格式的文件系统镜像ext4.img

xmakesmart-image

8 运行RT-Smart

在 QEMU 下运行 SMART 需要三个文件:rtthread.bin(内核文件)、ext4.img 或 fat.img(用户程序镜像)和 run.sh(启动脚本)。

run.sh 位于 bsprt-thread/bsp/xuantie/virt64/c906/ 目录。

rtthread.bin 编译内核后与 run.sh 位于同一目录。

ext4.img 或 fat.img 在生成镜像后位于 userapps/apps/build/ 目录。

将上述三个文件放入同一文件夹即可运行 SMART。

运行结果如下:

$bash run.sh ext4.img
OpenSBI v1.4 ____ _____ ____ _____ / __ \ / ____| _ \_ _|| | | |_ __ ___ _ __ | (___ | |_) || || | | |'_ \ / _ \ '_ \ \___ \| _ < | | | |__| | |_) |  __/ | | |____) | |_) || |_  \____/| .__/ \___|_| |_|_____/|____/_____|        | |        |_|
Platform Name : riscv-virtio,qemuPlatform Features : medelegPlatform HART Count :1Platform IPI Device : aclint-mswiPlatform Timer Device : aclint-mtimer@10000000HzPlatform Console Device : uart8250Platform HSM Device :---Platform PMU Device :---Platform Reboot Device : syscon-rebootPlatform Shutdown Device : syscon-poweroffPlatform Suspend Device :---Platform CPPC Device :---Firmware Base :0x80000000Firmware Size :323KBFirmware RW Offset :0x40000Firmware RW Size :67KBFirmware Heap Offset :0x48000Firmware Heap Size :35KB (total),2KB (reserved),9KB (used),23KB (free)Firmware Scratch Size :4096B (total),328B (used),3768B (free)Runtime SBI Version :2.0
Domain0 Name : rootDomain0 Boot HART :0Domain0 HARTs :0*Domain0 Region00 :0x0000000000100000-0x0000000000100fffM: (I,R,W) S/U: (R,W)Domain0 Region01 :0x0000000010000000-0x0000000010000fffM: (I,R,W) S/U: (R,W)Domain0 Region02 :0x0000000002000000-0x000000000200ffffM: (I,R,W) S/U: ()Domain0 Region03 :0x0000000080040000-0x000000008005ffffM: (R,W) S/U: ()Domain0 Region04 :0x0000000080000000-0x000000008003ffffM: (R,X) S/U: ()Domain0 Region05 :0x000000000c400000-0x000000000c5fffffM: (I,R,W) S/U: (R,W)Domain0 Region06 :0x000000000c000000-0x000000000c3fffffM: (I,R,W) S/U: (R,W)Domain0 Region07 :0x0000000000000000-0xffffffffffffffffM: () S/U: (R,W,X)Domain0 Next Address :0x0000000080200000Domain0 Next Arg1 :0x000000008fe00000Domain0 Next Mode : S-modeDomain0 SysReset : yesDomain0 SysSuspend : yes
Boot HART ID :0Boot HART Domain : rootBoot HART Priv Version : v1.10Boot HART Base ISA : rv64imafdcBoot HART ISA Extensions : zicntr,zihpmBoot HART PMP Count :16Boot HART PMP Granularity :2bitsBoot HART PMP Address Bits:54Boot HART MHPM Info :16(0x0007fff8)Boot HART MIDELEG :0x0000000000000222Boot HART MEDELEG :0x000000000000b109heap: [0x003404c0-0x043404c0]
\ | /- RT - Thread Smart Operating System/ | \ 5.2.1build Jun13202509:43:352006-2024Copyright by RT-Threadteam[I/utest] utest is initialize success.[I/utest] total utest testcase num: (1)[I/drivers.serial]Using/dev/ttyS0 as default console[W/DFS.fs]mount/ failed with file systemtype: elmfile system initialization done!Hello RISC-Vmsh />/#/#/# lsbin lib proc sbin usrdev lost+found root services varetc mnt run tmp/#

上述便是在玄铁平台运行RT-Thread与RT-Smart的使用方法,不需要物理硬件在线即可开发与学习,感兴趣的小伙伴行动起来吧!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20148

    浏览量

    246925
  • BSP
    BSP
    +关注

    关注

    1

    文章

    97

    浏览量

    27743
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44249
  • RISC-V
    +关注

    关注

    48

    文章

    2792

    浏览量

    51854
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GD32 RISC-V系列 BSP框架制作与移植

      手把手教你使用RT-Thread制作GD32 RISC-V系列BSP 熟悉RT-Thread的朋友都知道,
    的头像 发表于 06-22 19:44 7223次阅读
    GD32 <b class='flag-5'>RISC-V</b><b class='flag-5'>系列</b> <b class='flag-5'>BSP</b>框架制作与移植

    RT-Thread生成RISC-V BSP的CDK工程开发指南 | 技术集结

    目录开发环境配置工程创建CDK工程运行CDK工程编译工程运行与调试RT-Thread课程上线系列RISC-VBSP上手指南
    的头像 发表于 09-28 10:06 3901次阅读
    <b class='flag-5'>RT-Thread</b>生成<b class='flag-5'>玄</b><b class='flag-5'>铁</b><b class='flag-5'>RISC-V</b> <b class='flag-5'>BSP</b>的CDK工程开发指南 | <b class='flag-5'>技术</b><b class='flag-5'>集结</b>

    RT-Thread Studio(对芯来科技RISC-V处理器内核开发的全面支持

    RISC-V生态仍然存在着不足,配套的软硬件、工具链、OS都需要均衡的发展。在此环境下RT-Thread Studio(物联网一站式开发环境)对芯来科技RISC-V处理器内核开发的
    发表于 11-14 09:26

    VirtualZone:基于RISC-V架构的安全扩展

    以及S-Mode模式环境可以通过更高层的特权来管理。C系列处理器的安全拓展虽然RISC-V架构的处理
    发表于 09-01 14:38

    阿里平头哥宣布开源RISC-V系列处理器

    面临应用碎片化、开发效率低、软硬件适配难等问题,软硬件生态尚未成熟。RISC-V系列处理器采用自研
    发表于 10-20 14:09

    4款RISC-V芯片亮相

    、灵活,与之高度匹配,成为当下炙手可热的芯片指令集架构。多方数据预测,2025年全球RISC-V芯片出货量将超600亿颗,产业新浪潮逼近。目前,平头哥旗下系列
    发表于 03-08 08:16

    读书分享会 | RISC-V处理器入门与实战电子书免费下载!

    开发的一种开放、免费且可定制的指令集架构,其目标是为各种应用提供高效、灵活的计算能力。处理器是由平头哥开发的一种高性能、低功耗的处理器,其基于R
    发表于 04-12 11:16

    读《RISC-V处理器入门与实战》

    。 全方位的介绍,带领我们了解RISC-V之性能强大,不再局限于一个跑马灯、Hello World工程,而是开发高大上的系统级应用。未来RISC-V如果能在应用碎片化、开发效率低、软硬件适配难等问题上不断优化,相信将迎来更大的发展市场空间。 *附件:
    发表于 09-28 11:58

    risc-v峰会亮点 RT-ThreadRISC-V支持

    在第一届RISC-V中国峰会上看点很多,我们来看看risc-v峰会其中一个非常重要的亮点 ;RT-ThreadRISC-V支持。 据悉
    发表于 06-23 11:29 8146次阅读
    <b class='flag-5'>risc-v</b>峰会亮点 <b class='flag-5'>RT-Thread</b>对<b class='flag-5'>RISC-V</b>的<b class='flag-5'>支持</b>

    平头哥宣布开源RISC-V系列处理器

    10月19日,在2021云栖大会上,阿里云智能总裁张建锋宣布,平头哥开源RISC-V系列处理器,并开放
    发表于 12-08 16:21 14次下载
    平头哥宣布开源<b class='flag-5'>玄</b><b class='flag-5'>铁</b><b class='flag-5'>RISC-V</b><b class='flag-5'>系列</b><b class='flag-5'>处理器</b>

    杯全球RISC-V应用创新大赛开赛,RISC-V量产硬件可使用RT-ThreadSmart!

    近日,杯全球RISC-V应用创新大赛正式启动报名。大赛采用内置RISC-V
    的头像 发表于 08-08 21:35 1601次阅读

    加入RT-Thread 高级会员合作伙伴 | 战略新篇

    今天起,XuanTie正式成为RT-Thread高级会员合作伙伴。此次合作标志着双方将在嵌入式操作系统创新、RISC-V生态构建及行业应用落地等领域展开深度协同,加速推动开源
    的头像 发表于 06-23 20:22 868次阅读
    <b class='flag-5'>玄</b><b class='flag-5'>铁</b>加入<b class='flag-5'>RT-Thread</b> 高级会员合作伙伴 | 战略新篇

    RT-Thread携手全面展示 RISC-V 生态最新成果,期待莅临!

    2025年7月16日-19日,第五届RISC-V中国峰会将在上海张江科学会堂举行。作为全球领先的开源实时操作系统(RTOS)提供商,RT-Thread将携手,在大会现场打造专属展位
    的头像 发表于 07-15 11:13 835次阅读
    <b class='flag-5'>RT-Thread</b>携手<b class='flag-5'>玄</b><b class='flag-5'>铁</b>,<b class='flag-5'>全面</b>展示 <b class='flag-5'>RISC-V</b> 生态最新成果,期待莅临!

    RT-Thread× | 硬核直播】RISC-V新核E901发布!RT-Thread手把手带你玩转生态! | 博观讲堂

    重磅消息!下周四!RT-Thread携手阿里巴巴达摩院,带来RISC-V技术深度直播!2025年8月,
    的头像 发表于 10-21 19:47 323次阅读
    【<b class='flag-5'>RT-Thread</b>×<b class='flag-5'>玄</b><b class='flag-5'>铁</b> | 硬核直播】<b class='flag-5'>RISC-V</b>新核E901发布!<b class='flag-5'>RT-Thread</b>手把手带你玩转<b class='flag-5'>玄</b><b class='flag-5'>铁</b>生态! | 博观讲堂

    敢不敢让你的芯片上榜?RT-Thread最全BSP支持清单重磅更新!| 技术集结

    作为全球领先的实时嵌入式操作系统,RT-Thread已经积累了超过400款芯片的成熟板级支持包(BSP),覆盖主流架构Cortex-M/R/A、AArch64、RISC-V(32/64
    的头像 发表于 11-22 09:04 738次阅读
    敢不敢让你的芯片上榜?<b class='flag-5'>RT-Thread</b>最全<b class='flag-5'>BSP</b><b class='flag-5'>支持</b>清单重磅更新!| <b class='flag-5'>技术</b><b class='flag-5'>集结</b>