跳到主要内容

RuyiSDK 双周报

每两周获得最新开发进展

第 018 期·2024 年 03 月 26 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

RuyiSDK V0.7 版本今日正式发布。GCC 上游社区合并了 PLCT 提交的香山南湖微架构补丁,RuyiSDK 包管理器正在对最新的 gnu-upstream 进行新版本的打包分发,预计近日将发布;RuyiSDK 官网已公开内测;操作系统安装器新增了 Milk-V Duo S、Milk-V Mars、Milk-V Vega 等产品的集成,截止本版本为止,Milk-V 当前全产品线已经初步集成到 RuyiSDK 包管理器(Milk-V Duo S、Milk-V Mars 设备暂时未到位测试验证后续补充,欢迎有设备的开发者们试用反馈)。

更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.8 版本将在 4 月 9 日发布。

包管理器

RuyiSDK 0.7 对应的包管理器版本也为 0.7.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 修复了在部分系统上找不到 TLS 根证书的问题。
  • Ruyi 设备安装器(ruyi device provision)现在可以帮忙制作安装介质(如 LiveUSB)了。

此外,我们完善了持续集成基础设施:从此版本开始,RuyiSDK 包管理器的所有版本发布将以自动化方式完成了。这有助于我们更高效、更可靠地推进开发工作、解决问题。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

集成开发环境 VSCode 开发部分目前征集到一位内部兼职开发者,开始尝试基于 VSCode 实现 Milkv 开发板的集成开发工作。

GCC

香山南湖的微架构支持已合入 GCC 上游,继续推进 RUYISDK 多版本 GCC 的支持工作,更新了“-march=help”特性的支持。

LLVM

T-Head Vector 拓展

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 13.1. Vector Single-Width Saturating Add and Subtract
    • 13.5. Vector Narrowing Fixed-Point Clip Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.7. Vector Integer Comparison Operations
    • 12.8. Vector Integer Min/Max Operations
    • 12.9. Vector Single-Width Integer Multiply Operations
    • 12.10. Vector Integer Divide Operations
    • 12.11. Vector Widening Integer Multiply Operations
    • 12.12. Vector Single-Width Integer Multiply-Add Operations
    • 12.13. Vector Widening Integer Multiply-Add Operations
    • 12.14. Vector Integer Merge Operations
    • 13.3. Vector Single-Width Fractional Multiply with Rounding and Saturation

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. Reviewed JDK-mainline PRs:
  1. Reviewed JDK21u upstream PRs:
  1. Reviewed JDK11u upstream PRs:
  1. Reviewed riscv-port-jdk11u backport PRs:
  1. riscv-port-jdk11u daily build available at: https://builds.shipilev.net/openjdk-jdk11-riscv/
  2. Troubleshoot GHA linux-cross-build (linux-riscv64) failure (https://bugs.openjdk.org/browse/JDK-8326960 )
  3. OpenJDK PRs

官网

官网访问地址:https://ruyisdk.org/

官网仓库:https://github.com/ruyisdk/ruyisdk-website

官网近期完成了细节的更新、文档更新、i18n 多语言支持相关的工作。目前公开邀请测试中。

操作系统支持矩阵

对 RISC-V 开发板及其支持的操作系统的支持矩阵的内容和文档进行了更新和完善,并增加了 Milk-V Duo S、Milk-V Mars、Milk-V Vega 等新设备的支持调研,Milk-V Duo S、Milk-V Mars 在开发板上的实际测试验证等待采购设备到位后开展。

内容详见:https://github.com/ruyisdk/support-matrix

第 017 期·2024 年 03 月 12 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

RuyiSDK V0.6 版本如期而至,RuyiSDK 官网上线内测,网站各基础板块已具备,文档和内容已初步成型。RISC-V 开发板操作系统支持矩阵一直在持续更新,本期在官网上发布第一版结果。操作系统安装器对已集成的开发板可用操作系统的类型进行了增加。

此外调研了 milkv、矽速、沁恒微电子三家厂商的 RISC-V 产品,开始启动 milkv、矽速全产品线支持计划。

更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.7 版本将在 3 月 26 日发布。

包管理器

RuyiSDK 0.6 对应的包管理器版本也为 0.6.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新主要包含了以下内容:

  • 不再依赖系统提供的 git 命令进行软件源同步了。相应地,您需要确保系统中存在 TLS 根证书(例如名为 ca-certificates 或类似的包),以及 OpenSSL 库;这对我们官方支持的发行版不是问题。
  • ruyi news 展示的新闻内容的标题样式更简洁了。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期暂无进展。

GCC

联合玄铁团队发布了新 32 位产品级开源工具链,利用 64 位指令有效减少 32 位应用的指令数量。 Zabha 扩展 patch 已被上游接受合入,继续推进 gprofng 与 libmvec 库的支持中。

LLVM

T-Head Vector 拓展

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 13.2. Vector Single-Width Averaging Add and Subtract
    • 13.3. Vector Single-Width Fractional Multiply with Rounding and Saturation
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.6. Vector Narrowing Integer Right Shift Operations

此外,第一阶段交给上游的 PR 已经提交,正在等待上游的响应。自上次更新以来的进度如下:

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. Reviewed JDK-mainline PRs:
  1. Testing before Rampdown/CodeFreeze for LTS versions: OpenJDK 21.0.3 and OpenJDK 17.0.11
  • Run OpenJDK tier1-4 regression tests on Unmatched and Licheepi-4A boards.
  • Run MineCraft and typical Apache softwares (Netbeans, Lucene, Tomcat, Hadoop, Spark)
  1. Co-authored JDK-mainline PRs:

官网

官网已于 3 月 1 日开启内部测试,官网支持:

  • RuyiSDK 介绍
  • 查看支持文档
  • 链接社区
  • 新闻发布
  • 订阅 RuyiSDK newsletter
  • RuyiSDK 下载入口
  • 多语言支持

官网访问地址:https://ruyisdk.org/

官网仓库:https://github.com/ruyisdk/ruyisdk-website

操作系统支持矩阵

RISC-V 开发板及其支持的操作系统的支持矩阵公开发布第一版,目前已集成到官网。

内容详见:https://github.com/ruyisdk/support-matrix

第 016 期·2024 年 02 月 27 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

RuyiSDK V0.5 版本如期发布,此版本集成并发布了 PLCT GNU 小队新发布的 GNU RV64ILP32 工具链,并更新了适用 th1520 的 plctxthead-linux-gnu 工具链。继续扩展了系统安装器支持的 RISC-V 开发板,添加了对 SiFive HiFive Unmatched 、Canaan Kendryte K230 两款 RISC-V 开发板的支持,包括镜像信息的维护与下载、开发板系统的安装引导。 此外,在 RuyiSDK 集成到 RISC-V 笔记本方面,完成 ruyi 包管理工具的安装和使用验证,各功能运行正常。还完成了基于 oerv23.09 软件包依赖的 ruyi 包管理器工具的 rpm 打包工作,在 openEuler 上可以通过 yum install python3-ruyi 方式完成安装。

更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.6 版本将在 3 月 12 日发布。

包管理器

RuyiSDK 0.5 对应的包管理器版本也为 0.5.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新主要包含了以下内容:

  • 新增了 RV64ILP32 ABI 的裸机工具链实验性支持。详见 ruyi news
  • 修复了 toolchain/gnu-plct-xthead 工具链输出的可执行程序无法在 RevyOS 运行的问题。
  • Ruyi 设备安装器:新增支持了 Canaan Kendryte K230 与 SiFive HiFive Unmatched 两款板卡。
  • Ruyi 设备安装器现在完全从 RuyiSDK 软件源拉取配置数据了。这意味着您只需运行 ruyi update 便可让 Ruyi 设备安装器支持后续新增的板卡、系统组合。
  • 包管理器在下载文件失败后的断点续传现在更加可靠了。
  • 可以自定义 RuyiSDK 软件源的本地存储位置、远端 URL 以及所用分支了,方便您的测试或其他高级使用场景。详见 ruyisdk/ruyi 项目的 README。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 部分主要开展了 Dart 、Chisel RISC-V 架构上编译和调试现有插件的调研。Dart 目前可以借助 JIT 或 AOT 在 linux 系统本机编译或运行 RISC-V 目标的程序 (实验性),不能在本机进行交叉编译 (除 flutter)。

Chisel 所需的 Verilog 仿真器 Verilator 目前在部分 Linux(如 openEuler)发行版支持还需完善,此外运行过程中遇到一些问题还在继续了解中。Chisel 对 RISC-V 项目的支持目前比较普及,国内很多 RISC-V 处理器设计相关项目均采用的 Chisel,如香山。

GCC

更新了 RV64ILP32 的工具链仓库,同步更新了各个子模块的实现与构建,补充了中文构建使用说明测试文档

LLVM

T-Head Vector 拓展

首先是常规进度更新,RuyiSDK 分支中的 T-Head Vector 拓展的进度如下:

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.7. Vector Integer Comparison Operations
    • 12.8. Vector Integer Min/Max Operations
    • 12.9. Vector Single-Width Integer Multiply Operations
    • 12.10. Vector Integer Divide Operations
    • 12.11. Vector Widening Integer Multiply Operations
    • 12.12. Vector Single-Width Integer Multiply-Add Operations
    • 12.13. Vector Widening Integer Multiply-Add Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.1. Vector Single-Width Integer Add and Subtract
    • 12.2. Vector Widening Integer Add/Subtract Operations
    • 12.3. Vector Integer Add-with-Carry / Subtract-with-Borrow Operations
    • 12.4. Vector Bitwise Logical Operations
    • 12.5. Vector Single-Width Bit Shift Operations

此外,从年后开始,我们已经开始将 RuyiSDK 中的 T-Head Vector 拓展的代码与 LLVM 上游仓库合并, 并准备在近期向上游提交 PR。计划中初次 PR 的内容包含如下:

  • 注册 T-Head Vector 拓展的名字,版本,依赖拓展,以及对应的拓展冲突检测和相关测试(已完成)
  • 包括所有 T-Head Vector 中的汇编指令,即 LLVM MC 支持,以及对应的测试(正在进行)
    • 这部分工作基本以及完成,目前正在进行测试的移植。主要问题为 llvm-objdump 对部分操作数的输出采用了 16 进制格式,但是汇编器的输出是 10 进制格式,导致测试字符串对比不通过。目前正在进行修复。

相关参考链接:https://gcc.gnu.org/pipermail/gcc-patches/2024-January/643490.html

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. 完成阿里提交的 jdk11u linux-riscv64 代码检视和测试, 目前已经合并到了 riscv-port-jdk11u 仓库
  2. 为 OpenJDK 主线 linux-riscv64 后端轻量级锁进行了重入锁实现等
  3. 检视/测试 OpenJDK 社区关于加解密 intrinsic 的实现等

V8

  1. 向 V8 上游提交了 RISCV64 Android 构建的支持,已合并;
  2. 实现了 WebAssembly 的新特性 Out of Bounds Trap Handling 在 RISC-V 后端的支持。

RuyiSDK 集成到 RISC-V 笔记本电脑

  1. 在 RISC-V 笔记本上安装和运行了包管理工具 ruyi,运行正常。
  2. 基于 openEuler 23.09 版本的软件包基础依赖情况,实现了 ruyi 包管理器工具的打包,目前已经将相关 rpm 包提交给 RISC-V 笔记本组。详见:https://gitlab.inuyasha.love/weilinfox/plct-working/-/blob/master/Done/Month08/Week1/ruyi-rpm.md

第 015 期·2024 年 01 月 30 日

· 阅读需 4 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

RuyiSDK V0.4 版本今日正式发布。此版本添加了对 Allwinner Nezha D1、Sipeed Lichee RV、StarFive VisionFive、StarFive VisionFive2 四款 RISC-V 开发板的支持,包括镜像信息的维护与下载、开发板系统的安装引导,为 RISC-V 开发者提供了更加便捷的 OS 获取及安装体验。此外 RuyiSDK 软件源新增提供了 riscv64 平台的 DynamoRIO 二进制软件包的下载和安装。

随着春节的临近,我们即将迈入 2024 年。在此,我们先向大家送上春节的祝福,祝大家新春愉快,万事如意! 另外,需要通知各位的是,RuyiSDK V0.5 版本的发布将稍作延迟,调整为 2 月 27 日。感谢大家的理解与支持,我们将会带来更多精彩的内容。再次祝大家春节快乐!

包管理器

RuyiSDK 0.4 对应的包管理器版本也为 0.4.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新主要包含了以下内容:

  • ruyi device provision 会将 fastboot 的调用以 sudo 包装了。
  • ruyi self uninstall --purge 不会忘记删除 ~/.local/state/ruyi 目录了。
  • 从软件源下载文件失败时,会提供一些有助于用户自助排查问题的提示讯息了。
  • 为提供更稳定的服务,RuyiSDK 软件源仓库现已搬迁至 GitHub。 视您所在地区或组织所可能设置的网络访问限制,您可能需要采取一些措施, 以便能继续与 RuyiSDK 软件源同步。
  • 在 RuyiSDK 软件源中,新增提供了上述四款 RISC-V 开发板的系统镜像包、运行于 amd64 架构的 RISC-V QEMU 系统模拟器二进制包,以及运行于 riscv64 架构的 DynamoRIO 二进制包。

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

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 部分主要开展了 Eclipse 和 VSCode 对 C、Rust、Golang 进行了 RISC-V 架构上编译和调试现有插件的调研,目前整体来说 C、Rust 和 Golang 在 RISC-V 架构下的交叉编译可走通,但是调试插件还或多或少存在一些问题,缺乏成熟插件甚至无可用调试插件支持。

GCC

上游已经接受了 Bitmanip/Scalar Crypto intrinsic 的支持,对 Zcmp/Zcmt 的 patch 提出了新的修改意见,目前正在修改中。 持续推进 RUYISDK GCC 的多版本支持工作,预计下个月提交发布版本进行打包测试。

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. 两个 OpenJDK LTS (OpenJDK 17.0.10 / OpenJDK 21.0.2) 版本完成 release 发版。
  2. 期间向社区提交/检视多个优化的 patch, 并排查解决两起社区使用 OpenJDK 相关的问题。

V8

完成 V8 on Android RISC-V 的英文文档,并向 RISE 汇报了此项任务的完成(https://github.com/riscv-collab/v8/wiki/How-to-Run-v8-on-Android-RISCV)。

第 014 期·2024 年 01 月 16 日

· 阅读需 3 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

RuyiSDK V0.3 版本今日发布,这是 RuyiSDK 项目切换为开发迭代模式后的第一次发版,为了更好的让用户了解版本功能的演进,包管理器提供了软件源新闻消息的功能。此外新增了主流的 3 款 RISC-V 开发板的 可用镜像信息维护与下载、开发板系统安装引导程序,方便 RISC-V 开发者获取指定开发板可用的 OS 并可方便的安装 OS 的安装。欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.4 版本将在 1 月 30 日发布。

包管理器

项目地址:https://github.com/ruyisdk/ruyi

RuyiSDK 包管理器 ruyi 的 0.3.0 版本已于今日发布,您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次的更新内容主要有:

  • 增加了软件源新闻消息功能。ruyi update 后,如有未读的新闻消息,会输出提示信息。 您可用新增的 ruyi news listruyi news read 命令阅读这些消息文章。
  • Issue 32:为 Milk-V Duo、Milk-V Pioneer、Sipeed LicheePi 4A 增加了多种系统镜像,详见 RuyiSDK 官方源的新闻。 由于这些镜像文件并非都直接由 RuyiSDK 团队打包,当您安装它们时,包管理器将从相应的源站下载:ruyi 的版本需要是 0.3.0 或更高。
  • 增加了开发板安装器功能:ruyi device provision。这是个一步步指导您为手头的 RISC-V 开发板烧写系统镜像、引导器等初始数据的向导。 初期支持的硬件范围同样是上述 3 种板卡的所有已知不同版本。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 加强了基于 Eclipse 和 Vscode 的插件调研,本期跑通了 Rust 在 Eclipse 和 Vscode 的交叉编译。

GCC

根据上游的意见,重新提交了 Zc*与 Intrinsic 支持的 patch,继续移植 RUYISDK GCC11/12 版本

第 013 期·2024 年 01 月 02 日

· 阅读需 2 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

2024 年 RuyiSDK 项目将切换为更加敏捷的开发迭代模式,预期每 2 周发布一个开发版本,提供一些新功能,如包管理器能力迭代、RuyiSDK 软件源提供新的软件包或者软件包版本升级、或工具链、板卡的新增适配等等,这些更新将以 release note 的方式公开。下次更新的 RuyiSDK V0.3 版本将在 1 月 16 日发布。

包管理器

在 Ruyi 包管理器方面,近 2 周的工作主要是制定本里程碑的开发计划,以及与包管理器功能开发相关的技术设计,如包管理器对自我更新的支持(涉及软件源结构的新增),以及更容易感知的 Ruyi 软件源数据整体版本等。

此外,2024 年我们将切换为更加敏捷的开发迭代模式:预期每 2 周都将提供一些新功能,如包管理器能力迭代,或工具链、板卡的新增适配等等。 更新大致与双周报的节奏同步:下次更新会发生在 1 月 16 日前后。

IDE

IDE 开发者还在招聘中,开发进度暂无进展。

GCC

开始更新 GCC11/12 分支上的 RISC-V 扩展支持,修复了 Zca option 的冲突问题,添加了 Profiles 支持所需的一些新扩展

第 012 期·2023 年 12 月 19 日

· 阅读需 3 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

RuyiSDK V0.2 版本发布,为大家提供了一个基础的以编译工具链和模拟器运行环境为主的包管理器,并在 12 月 15 日举办的 PLCT Lab OpenDay 2023 线上会议上分享了 RuyiSDK V0.2 的建设成果和未来计划,希望这个版本能够给大家带来不一样的编译环境搭建体验,从文档开始,欢迎大家关注和试用。

包管理器

项目地址:https://github.com/ruyisdk/ruyi

Ruyi 0.2 在上周五成功发布了,可移步 GitHub ReleasesISCAS 镜像源下载体验。发布前做了以下的修复与功能改进:

  • Issue #12 的进一步用户体验优化:在需要用到某个命令如 tarzstd 而当前环境内却未提供的时候,提前报错退出,而不仅仅只是警告然后在实际调用时向用户展示满屏的 Python backtrace。
  • Issue #24:GNU 工具链包中的 GDB 先前非预期地动态链接到了构建环境中的 Python 3.8,导致这些 gdb 二进制在 Python 版本不是 3.8.x 的系统上无法工作。考虑到 Python 版本的多样性,以及目前 Ruyi 所计划支持的宿主发行版均已提供 gdb 包,目前暂时先禁用了软件源中三种 GNU 工具链包的 GDB Python 支持。后续将调研以静态链接的方式恢复支持。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期暂无进展。

GCC

Bitmanip/Scalar Crypto 的 intrinsic patch 收到了 review 意见,开发过程中发现了 gcc upstream 的模板错误,已反馈社区进行了修复。RISC-V Profiles 根据 review 意见重新提交了 patch,目前收到新的反馈意见,等待修改后重新发送。修复了 OpenHW 社区发现的 Zca .option 段冲突问题,目前已被 OpenHW 社区合并。Gprofng/libmvec RISC-V 后端 porting 工作持续推进中。

第 011 期·2023 年 12 月 05 日

· 阅读需 4 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

2023 年即将结束,小伙伴们都开始盘点和总结今年的工作,RuyiSDK 团队则在紧锣密鼓地准备 V0.2 版本的发布。RuyiSDKV0.2 版本很快就将与大家见面,希望能成为 2023 年底的一份小礼物,为大家在寒冬中带来一丝温暖。

包管理器

项目地址:https://github.com/ruyisdk/ruyi

Ruyi 0.2.x 分支的功能开发已完成,代码已冻结,进入测试阶段。

目前已经支持了以下功能:

  • 源代码包的解压式安装。
  • 带或不带 sysroot 的虚拟环境创建。
  • 虚拟环境内自带 CMake、Meson 交叉编译定义文件。
  • LLVM/Clang 工具链的集成;需要搭配 GCC 工具链的 sysroot 以及 gcc 支持库使用。
  • QEMU linux-user 静态模拟器的集成,可以通过 ruyi-qemu wrapper 方便地调用,也在虚拟环境中自带了适用 systemd-binfmt 的配置文件。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 开发者还在招聘中,本期暂无开发进展。

针对 Eclipse 对 RISC-V 的现有支持插件进行了一些试用尝试:

  • 【完成 & 支持】为 Hello World 工程指定 RISC-V Cross Toolchain 并成功完成交叉编译;

  • 【进行中 & 暂未走通】为 Hello World 工程配置 Run Configurations,在 Eclipse 中集成 qemu 环境,并完成可执行程序传递、程序执行、执行结果查看;

    通过串口设置可以在 Eclipse Console 中显示 qemu 加载 oerv 23.09 镜像的过程:成功显示了 qemu 启动 oerv23.09 系统过程并显示系统登录提示信息。后续操作需要手动(或者说还未找到更加便捷的方式打通)。

    qemu user 模式设置配置项可能存在问题,未成功在 Console 中显示打印信息,呈现出预期想要的效果;

  • 【进行中 & 暂未走通】为 Hello World 工程配置 Debug Configurations,在 qemu 中执行交叉调试;

GCC

完成了 Zcmt 扩展的 Rebase 工作,并已向 Binutils 上游提交。完成了 K 扩展的 intrinsics 支持工作,向上游提交了 patch, B 扩展的 intrinsics 工作仍在进行测试中,预计本周内提交支持。RUYISDK 工具链方面提交了 RUYISDK 工具链的介绍文档,包含常用的 RISC-V GNU 工具介绍及支持扩展,常用选项说明,持续更新工具链仓库中。

第 010 期·2023 年 11 月 21 日

· 阅读需 3 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

即将进入年底,各类技术会议密集召开,各种新产品和新动态不断发布,各类社区的技术氛围空前浓厚。RuyiSDK 将在下个月按计划发布 V0.2 版本,欢迎大家关注和试用。

包管理器

需求变更:ruyi v0.2 新增了 sysroot、QEMU 的支持需求,该版本的代码冻结因而未在上周完成。 目前仍然在做 QEMU、LLVM 的打包工作。

完成了从上游源码、平头哥源码构建的 GCC 工具链的打包,期间修复了上游 crosstool-ng 的 multilib 构建问题一处,待提交上游。

为方便未及时升级系统的同学们测试、使用,现已将工具链、ruyi 二进制的构建容器系统版本降低到了 Ubuntu 20.04。 但 ruyi 官方支持的系统版本基线维持不变:仍然为 Ubuntu 22.04、openEuler 23.09。

此外,对 RuyiSDK 软件源结构做了一些更新,详见文档

  • 为使 repo 内的软件包信息有条理,新增了软件包分类的概念,将原先扁平的目录结构加深 1 层;
  • 为方便后续迭代、表达特殊语义等需要,预留了下划线开头的包名,后续再行 case-by-case 定义。

IDE

IDE 部分 10 日提交了一版基于 Eclipse 已有插件集成的 x86_64 的可执行程序,界面定制部分仅完成可执行程序 LOGO 定制和加载界面定制,未按照预期完成所需的定制任务。后因为 IDE 开发人员变动,开发进度再无推进。

现处于 IDE 开发人员招聘中。

GCC

完成了 Profiles 的 gcc 支持,重构了 zcmp 扩展的 binutils 实现,已向上游提交 patch,等待社区审核中。继续进行 B/K 扩展的 intrinsic 开发工作,预计本月完成支持后向上游提交工作。RUYISDK 工具链方面正在重构工具链分支以 RVV 扩展的最新特性,准备补充基础的 riscv-gcc 使用说明,包括支持扩展及常用选项参数等,预计 0.2 版本发布前完成。

第 009 期·2023 年 11 月 07 日

· 阅读需 3 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理

卷首语

天气渐冷,RuyiSDK 双周进展已经来到了第 9 期。从本期开始,RuyiSDK 双周进展将采用全新的内容组织形式,期望能给您带来更好的体验,成为您冬日里的一缕暖阳。

包管理器

项目地址:https://github.com/ruyisdk/ruyi

相比两周前,调整了一部分软件源的元数据格式,联网包管理器的功能也实现了大部分。 目前实现了以下的功能点:

  • 二进制分发:可以打包为单个二进制可执行文件了。 平台适配方面,我们为 amd64 架构适配了 Ubuntu 22.04、openEuler 23.09 两个发行版, 为 riscv64 架构适配了 Debian 的 20231109 快照版本(预期在 Fedora 等发行版上也能正常运行)。
  • 软件源相关:实现了软件源的同步、软件包的安装。
  • 已安装包的管理:可以初步建立类似 Python virtualenv 用法的虚拟环境了: 此做法可广泛兼容多种构建系统的现有集成方式,从而方便开发者使用。 (目前虚拟环境内的命令符号链接仍待完善。)

除此之外,在 ruyi 的软件源相关功能基本完成后,也同步开始了测试工作。 目前与测试同学初步对接了 user story 的前半部分,待虚拟环境的符号链接功能完成后将继续下一步工作。

IDE

前期 RuyiIDE 方面完成了基于 Eclipse 插件开发的技术学习。目前正在开展 Eclipse 定制发行版的制作和安装程序打包工作,具体要求如下:

对标 Eclipse IDE for Embedded C/C++ Developers 包含的主要插件,基于 Eclipse 生成一个自定义的 Eclipse Distribution,形成 RuyiSDK IDE 的初始打包过程/程序。要求首先能够产出功能等同于 Eclipse IDE for Embedded C/C++ Developers 的 Linux 环境下 IDE 安装程序,并在此基础上完成定制界面定制。

GCC

继续开发 RISC-V Profiles,Bitmanip/Scalar crypto intrinsic 在工具链上的支持,开始准备向上游提交 RVV 0.7&1.0 的兼容性 patch。完成了 RVP 向 gcc13 的 porting 工作,目前仍在 review 修改中。