Zum Hauptinhalt springen

Blog

Bleiben Sie mit aktuellen Nachrichten vom RuyiSDK-Team auf dem Laufenden

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

· 2 Minuten Lesezeit
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)

· Eine Minute Lesezeit
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 Minuten Lesezeit
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 Minuten Lesezeit
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 支持展示新闻了

· Eine Minute Lesezeit
xen0n
ruyi 包管理器负责人

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

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

感谢您对 RuyiSDK 的支持!