diff --git a/README.md b/README.md
index b1efecc2..cd7ba51f 100644
--- a/README.md
+++ b/README.md
@@ -8,14 +8,12 @@
docs仓库采用vitepress技术将Markdown格式的文档自动生成为web页面,结合github-pages 设置,能够自动将文档更新进行发布。
-
### 仓库目录介绍
- docs : Markdown文档;采用分级管理。
- .vitepress/config.mts : 目录索引定义。
- build :根据Markdown文档构建的html网页。
-
### 贡献文档
欢迎大家一起参与RUYISDK文档贡献。贡献方法:
@@ -24,9 +22,8 @@ docs仓库采用vitepress技术将Markdown格式的文档自动生成为web页
2. 在docs/docs/zh 目录下按需新建目录和markdown文档,或者修改已有的markdown文档;
3. 修改docs/docs/.vitepress/config.mts 文档调整目录;
4. 提交修改并创建pull request将文档贡献提交到docs仓库,等待仓库管理员审核合入;
-5. pr被合入后大约几十秒或几分钟后,访问 https://ruyisdk.github.io/docs/zh 检查网页是否更新。
-
+5. pr被合入后大约几十秒或几分钟后,访问 https://ruyisdk.github.io/docs 检查网页是否更新。
## 访问docs网站
-https://ruyisdk.github.io/docs/zh
+网址:https://ruyisdk.github.io/docs
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index 2a79769d..541791a4 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -15,9 +15,13 @@ export default defineConfig({
{ text: '文档', link: '/zh/introduction/' }
],
sidebar: [
- { text: '介绍', link: '/zh/introduction/' },
- {
- text: '工具',
+ { text: '介绍',
+ items: [
+ { text: 'RUYISDK 简介', link: '/zh/introduction/' },
+ { text: '版本规划路线图', link: '/zh/plan/' },
+ ]
+ },
+ { text: '工具',
items: [
{
text: 'RUYI 包管理器',
@@ -49,6 +53,24 @@ export default defineConfig({
}
]
},
+ { text: 'RuyiSDK',
+ items: [
+ {
+ text: 'GNU',
+ link: '/zh/sdk/gnu/',
+ items: [
+ { text: 'GNU Upstream', link: '/zh/sdk/gnu/' },
+ ]
+ },
+ {
+ text: 'LLVM',
+ link: '/zh/sdk/llvm/',
+ items: [
+ { text: 'LLVM Upstream', link: '/zh/sdk/llvm/' },
+ ]
+ }
+ ]
+ }
],
}
},
diff --git a/docs/zh/plan/index.md b/docs/zh/plan/index.md
index 3c1e48fd..e0866651 100644
--- a/docs/zh/plan/index.md
+++ b/docs/zh/plan/index.md
@@ -11,7 +11,7 @@ RUYISDK 目前以每半年为一个里程碑版本周期来推动RUYISDK的不
* V0.3 (计划发布时间:2024年6月)
* V0.4 (计划发布时间:2024年12月)
* V1.0 (计划发布时间:2025年6月)
-
+* V2.0 (计划发布时间:2025年12月)
## RUYISDK 路线图
@@ -19,4 +19,4 @@ RUYISDK 目前以每半年为一个里程碑版本周期来推动RUYISDK的不
### IDE
-### 开发者社区
\ No newline at end of file
+### 开发者社区
diff --git a/docs/zh/sdk/gnu/index.md b/docs/zh/sdk/gnu/index.md
new file mode 100644
index 00000000..eb3b58b0
--- /dev/null
+++ b/docs/zh/sdk/gnu/index.md
@@ -0,0 +1,63 @@
+# RUYISDK GCC 工具链介绍
+
+RUYISDK GCC 工具链是专门用于 RISC-V 架构的 GNU 工具链,它包括一系列工具,如编译器、汇编器、链接器等,用于开发和构建 RISC-V 架构的软件。
+
+## 模块介绍
+
+### GCC(GNU Compiler Collection)
+
+**功能:** RISC-V GNU Toolchain 的核心组件之一,用于将高级编程语言(如 C、C++)的源代码翻译成 RISC-V 架构的目标代码。
+
+**支持:** 提供对不同 RISC-V 位长的支持,包括 RV32(32 位)和 RV64(64 位),以及不同RISC-V 指令集扩展的支持。
+
+**详细使用说明参考:** https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gcc/
+
+### GNU Binutils
+
+包含工具: 汇编器(as)、链接器(ld)、目标文件工具(objdump、objcopy 等),性能分析工具(gprof)。
+
+**功能:** 用于处理生成 RISC-V 架构的目标文件,执行汇编和链接,反汇编等操作。
+
+**详细使用说明参考:** https://sourceware.org/binutils/docs-2.41/
+
+### GDB(GNU Debugger)
+
+**功能:** 提供调试功能,允许开发人员在 RISC-V 目标上调试他们的程序。
+
+### Glibc(GNU C Library)
+
+**功能:** C 语言运行时库,提供许多标准 C 库函数的实现,以支持在 RISC-V 上运行的程序。
+
+### Newlib
+
+**功能:** 一个小型的 C 库,适用于嵌入式系统和其他资源受限的环境。对于一些嵌入式RISC-V 系统,选择使用 Newlib 而不是 Glibc 可以更高效的利用有限的系统资源。
+
+### Libgcc
+
+**功能:** 包含一些与编译**功能:**器紧密相关的支持函数,例如用于浮点数乘除法的模拟运算函数。
+
+目前 RUYISDK 包含三种工具链版本,分别为 GNU upstream 版本,Xuantie 版本以及RUYISDK 版本,不同版本支持的 RISC-V 指令集有所不同。
+
+GNU upstream 工具链适合面向最新 RISC-V 特性的开发者,Xuantie 工具链侧重于使用 Xuantie 系列 CPU 芯片的硬件,RUYISDK 工具链侧重于提供稳定的工具链环境,尽可能的继承目前 RISC-V 的各个扩展与新特性。
+
+## 使用说明
+
+工具链中各个工具的使用方法请参考其使用说明文档,下面重点介绍 RISC-V 架构的一些常见用法:
+
+* -march 选项可以控制工具链开启的 RISC-V 扩展,其默认参数在 64 位工具链中为 `rv64gc`, 32 位工具链中为 `rv32gc`, 若要开启其他扩展,则需利用该选项重新向工具链指定想要开启的扩展,例如打开 V 扩展可以使用-march=rv64gcv,打开 b 扩展可以使用 `-march=rv64gc_zba_zbb_zbc_zbs,`
+ RUYISDK 中不同扩展的工具链已经在-march 中配置了其对应参数,方便用户直接使用,用户可以根据自身需求调整-march 输入,控制不同扩展的使用。
+* -mabi 选项主要控制工具链中所使用的寄存器组,其默认参数在 64 位工具链中为 `lp64d`,32 位工具链中为 `ilp32d`,嵌入式设备中为 `lp64e`, `ilp32e`, 无浮点硬件中为 `lp64`, `ilp32`, 用户可以根据自身硬件和使用场景进行选择。
+ 使用 RVV 向量扩展时,请务必同时使用 `-O3` 选项,在编译器中开启 RVV 的向量化特性,一些 RVV 使用示例请参考:https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=gcc/testsuite/gcc.target/riscv/rvv
+
+下面我们来介绍 RVV 使用时的两个常用参数:
+
+* --param=riscv-autovec-preference=用于告知编译器输入向量的长度,有已知固定向量长度的 `fixed-vlmax`输入与可伸缩向量不固定长度的 `scalable`输入,用户可以更具自己的程序进行调整,以获得更高的程序性能。
+* --param=riscv-autovec-lmul=用于指定一个循环迭代中处理的向量元素的数量,其输入参数可以参考 riscv-v-spec 手册,包括”dynamic,m1,m2,m4,m8”等,对于不熟悉参数的用户,建议使用 `dynamic`选项,由编译器自动配置选取合适的处理数量。
+
+## 扩展支持
+
+| 工具链版本 | 扩展名称 |
+| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Upstream | i, m, a, f, d, c, v, e(注意指定对应的 eABI)`
` zicsr, zifencei, zicond, zawrs, zba, zbb, zbc, zbs `
`zfinx, zdinx, zhinx, zhinxmin(注意指定的 ABI 为 lp64 或 ilp32, 与 f/d 扩展不兼容)`
`zbkb, zbkc, zbkx, zknd, zkne, zknh, zkr, zksed, zksh, zkt `
`zihintntl, zihintpause, zicboz, zicbom, zicbop `
`zfh, zfhmin, zvfh, zvfhmin, zvbb, zvbc, zvkg, zvkned, zvknha, zvknhb, zvksed, zvksh `
`zvknc, zvksc, zvkt, zfa, zmmul, zca, zcb, zce, zcf(仅 RV32)`
`zcd, zcmp(与 zcd 不兼容), zcmt, ztso `
`svinval, svnapot, `
`xcvmac, xcvalu, `
`xtheadba, xtheadbb, xtheadbs, xtheadcmo, xtheadcondmov, xtheadfmv, `
`xtheadint, xtheadmac, xtheadmemidx, xtheadfmemidx, `
`xtheadmempair, xtheadsync, xventanacondops |
+| Xuantie | 对 xtheadba, xtheadbb, xtheadbs, xtheadcmo, xtheadcondmov, xtheadfmv,`
`xtheadint, xtheadmac, xtheadmemidx,`
`xtheadfmemidx, xtheadmempair, xtheadsync, xventanacondops `
`有特定优化,不支持 Zfinx, K, V, Zc, Xcv 等系列扩展 |
+| RUYISDK | 额外支持 RV64-ILP32, Profiles(RV20/22), zpn, zpsfoperand, zbpbo |
diff --git a/docs/zh/sdk/llvm/index.md b/docs/zh/sdk/llvm/index.md
new file mode 100644
index 00000000..f423fd11
--- /dev/null
+++ b/docs/zh/sdk/llvm/index.md
@@ -0,0 +1,3 @@
+# RUYISDK LLVM 工具链介绍
+
+> todo