跳到主要内容

博客

随时看到来自 RuyiSDK 团队的重大消息

RV64ILP32 裸机工具链与 profile 现已可用

· 阅读需 2 分钟
xen0n
ruyi 包管理器负责人

为了您的跟踪前沿开发动态方便,RuyiSDK 团队现已打包了 RV64ILP32 这一实验性 ABI 的裸机工具链供您使用。 由于是裸机工具链,此工具链不自带 sysroot,且未开启 multilib:可用的 ABI 为 ilp32d

使用示例

给定如下的 C 程序:

// test.c
long long add(long long *a, long long b)
{
return *a + b; // Should be realized with `ld` and `add`
}

void check(int);

void check_sizes(void)
{
check(sizeof(int)); // a0 should be 4
check(sizeof(long)); // a0 should be 4
check(sizeof(long long)); // a0 should be 8
check(sizeof(void *)); // a0 should be 4
}

使用相应的工具链包与 profile,我们将可编译出符合 RV64ILP32 ABI 的目标代码:

$ ruyi update
$ ruyi install gnu-plct-rv64ilp32-elf
$ ruyi venv -t gnu-plct-rv64ilp32-elf --without-sysroot baremetal-rv64ilp32 /tmp/venv
$ source /tmp/venv/bin/ruyi-activate
$ /tmp/venv11/bin/riscv64-plct-elf-gcc -O2 -c -o test.o test.c

检查目标代码是否符合预期:

$ riscv64-plct-elf-readelf -h test.o | grep 32
Class: ELF32
Flags: 0x25, RVC, X32, double-float ABI
$ riscv64-plct-elf-objdump -dw test.o

test.o: file format elf32-littleriscv


Disassembly of section .text:

00000000 <add>:
0: 6108 ld a0,0(a0)
2: 952e add a0,a0,a1
4: 8082 ret

00000006 <check_sizes>:
6: 3141 addiw sp,sp,-16
8: 4511 li a0,4
a: e406 sd ra,8(sp)
c: 00000097 auipc ra,0x0
10: 000080e7 jalr ra # c <check_sizes+0x6>
14: 4511 li a0,4
16: 00000097 auipc ra,0x0
1a: 000080e7 jalr ra # 16 <check_sizes+0x10>
1e: 4521 li a0,8
20: 00000097 auipc ra,0x0
24: 000080e7 jalr ra # 20 <check_sizes+0x1a>
28: 60a2 ld ra,8(sp)
2a: 4511 li a0,4
2c: 2141 addiw sp,sp,16
2e: 00000317 auipc t1,0x0
32: 00030067 jr t1 # 2e <check_sizes+0x28>

可见,此工具链确实生成了指针宽度为 32 位,但利用了 RV64 能力的目标代码。

新增板卡支持 (2024-01-29)

· 阅读需 1 分钟
xen0n
ruyi 包管理器负责人

现已为以下板卡新增了镜像包。

您可用 RuyiSDK 设备安装向导 ruyi device provision 自动初始化您的设备,或通过 ruyi install 手动安装它们:镜像文件会被自动解压或符号链接到 ~/.local/share/ruyi/blobs/<包名>-<包版本号> 的位置。

感谢您对 RuyiSDK 的支持!

Sipeed LicheeRV & Allwinner 哪吒 D1

此两种型号在硬件层面大体兼容,但也有细微差别,仅体现在设备树层面。

  • board-image/oerv-awol-d1-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-awol-d1-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI

StarFive VisionFive

  • board-image/oerv-starfive-visionfive-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-starfive-visionfive-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI

StarFive VisionFive2

  • board-image/oerv-starfive-visionfive2-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-starfive-visionfive2-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI

RuyiSDK 0.4 版本更新说明

· 阅读需 2 分钟
xen0n
ruyi 包管理器负责人

RuyiSDK 0.4 现已发布,对应的包管理器版本也为 0.4.0。您可前往 RuyiSDK 包管理器的 GitHub Releases 页面: https://github.com/ruyisdk/ruyi/releases 下载。

本次更新主要包含了以下内容,祝您使用愉快!

RuyiSDK 包管理器

  • ruyi device provision 会将 fastboot 的调用以 sudo 包装了。
  • ruyi self uninstall --purge 不会忘记删除 ~/.local/state/ruyi 目录了。
  • 从软件源下载文件失败时,会提供一些有助于用户自助排查问题的提示讯息了。
  • 为提供更稳定的服务,RuyiSDK 软件源仓库现已搬迁至 GitHub。 视您所在地区或组织所可能设置的网络访问限制,您可能需要采取一些措施, 以便能继续与 RuyiSDK 软件源同步。

原先位置的 RuyiSDK 软件源仓库将在 2024-02-01 前后停止更新。请尽早更新您的 ruyi 版本以自动迁移到最新配置。

RuyiSDK 软件源

  • 为 RISC-V 架构的系统,新增提供了 DynamoRIO 套件 analyzer/dynamorio-riscv
  • 为 AMD64 架构的系统,新增提供了 QEMU 系统模拟器 emulator/qemu-system-riscv-upstream
  • 上游版的 QEMU 版本现已升级至 8.2.0。

新增板卡支持 (2024-01-15)

· 阅读需 2 分钟
xen0n
ruyi 包管理器负责人

现已为以下板卡新增了镜像包。

您可用 ruyi install 安装它们:镜像文件会被自动解压或符号链接到 ~/.local/share/ruyi/blobs/<包名>-<包版本号> 的位置。

感谢您对 RuyiSDK 的支持!

Milk-V Duo

64M RAM 版本

  • board-image/buildroot-sdk-milkv-duo: 官方 Buildroot SDK
  • board-image/buildroot-sdk-milkv-duo-python: 官方 Buildroot SDK,含 Python 环境

256M RAM 版本

  • board-image/buildroot-sdk-milkv-duo256m: 官方 Buildroot SDK
  • board-image/buildroot-sdk-milkv-duo256m-python: 官方 Buildroot SDK,含 Python 环境

Milk-V Pioneer

  • board-image/oerv-sg2042-milkv-pioneer-base: openEuler RISC-V 系统镜像,基础系统
  • board-image/oerv-sg2042-milkv-pioneer-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI
  • board-image/revyos-sg2042-milkv-pioneer: RevyOS 系统镜像

Sipeed LicheePi 4A

系统镜像:

  • board-image/oerv-sipeed-lpi4a-headless: openEuler RISC-V 系统镜像,不含 GUI
  • board-image/oerv-sipeed-lpi4a-xfce: openEuler RISC-V 系统镜像,含 XFCE GUI
  • board-image/revyos-sipeed-lpi4a: RevyOS 系统镜像

引导器(U-Boot):

  • board-image/uboot-oerv-sipeed-lpi4a-16g: 适用 Sipeed LicheePi 4A (16G RAM) 的 openEuler 系统
  • board-image/uboot-oerv-sipeed-lpi4a-8g: 适用 Sipeed LicheePi 4A (8G RAM) 的 openEuler 系统
  • board-image/uboot-revyos-sipeed-lpi4a-16g: 适用 Sipeed LicheePi 4A (16G RAM) 的 RevyOS 系统
  • board-image/uboot-revyos-sipeed-lpi4a-8g: 适用 Sipeed LicheePi 4A (8G RAM) 的 RevyOS 系统

RuyiSDK 支持展示新闻了

· 阅读需 1 分钟
xen0n
ruyi 包管理器负责人

为方便您及时了解 RuyiSDK 的开发动态,我们为 ruyi 工具新增了新闻支持。

如果您使用 ruyi 0.3 或更高的版本,那么当您完成 ruyi update 之后, 如果软件源中有新增的新闻条目,将在命令输出中提示。 您可用 ruyi news list 列出它们,并用 ruyi news read 阅读它们。

感谢您对 RuyiSDK 的支持!