Skip to content

Commit

Permalink
Merge pull request #56 from Sebastianhayashi/main
Browse files Browse the repository at this point in the history
edited config.mts and change all folder in docs
  • Loading branch information
ArchFeh authored Jul 1, 2024
2 parents fda6080 + 1aa6144 commit dde85cd
Show file tree
Hide file tree
Showing 45 changed files with 1,226 additions and 95 deletions.
99 changes: 39 additions & 60 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -15,74 +15,54 @@ export default defineConfig({
{ text: '文档', link: '/zh/introduction/' }
],
sidebar: [
{ text: '介绍',
items: [
{ text: 'RuyiSDK 简介', link: '/zh/introduction/' },
{ text: '集成的RISC-V设备', link: '/zh/devices/' },
]
},
{ text: '开始使用', link: '/zh/usedirection/',
items: [
{ text: '开发环境',
items: [
{ text: '准备RISC-V开发环境', link: '/zh/usedirection/developmentside/' },
{ text: '编译器类型', link: '/zh/usedirection/developmentside/typeselection/' },
{ text: '编译环境', link: '/zh/usedirection/developmentside/environments/' },
{ text: '源码包构建', link: '/zh/usedirection/developmentside/sources/coremark/' },
]
{
text: '欢迎',
items: [
{ text: '介绍', link: '/doc/Introduction/index' },
],
},
{
text: 'RuyiSDK',
items:[
{
text:'ruyi 包管理器',
items:[
{text:'功能介绍',link:'/doc/Package-Manager/index'},
{text:'安装',link:'/doc/Package-Manager/installation'},
{text:'环境',link:'/doc/Package-Manager/Enviroment'},
{text:'编译',link:'/doc/Package-Manager/Complie'},
],
},
{ text: '运行环境',
items: [
{ text: '准备RISC-V运行环境', link: '/zh/usedirection/operationside/' },
{
text:'IDE',
items:[
{text:'TODO',link:'/doc/IDE/TODO'},
]
},
{ text: '使用案例', link: '/zh/usecase/' ,
items: [
{ text: 'amd上编译并模拟运行', link: '/zh/usecase/x86pc/' },
{ text: '为RISC-V开发板安装系统镜像', link: '/zh/usecase/setupos/' },
{ text: '在Licheepi4A上编译运行', link: '/zh/usecase/rvbook/' },
{
text:'使用案例',
items:[
{text:'使用编译环境进行 Coremark 构建',link:'/doc/RuyiSDK/case1'},
{text:'为 RISC-V 开发板安装操作系统',link:'/doc/RuyiSDK/case2'},
{text:'在 Licheepi 4A 上编译运行',link:'/doc/RuyiSDK/case3'},
]
},
]
},
{ text: '工具',
items: [
{
text: 'RUYI 包管理器', link: '/zh/ruyi/' ,
items: [
{ text: '开始', link: '/zh/ruyi/getstarted/' },
{
text: '版本更新',
collapsed: true,
items: [
{ text: 'v0.3.0 版本新增特性', link: '/zh/ruyi/updates/0.3.0' },
{ text: 'v0.4.0 版本新增特性', link: '/zh/ruyi/updates/0.4.0' },
{ text: 'v0.5.0 版本新增特性', link: '/zh/ruyi/updates/0.5.0' },
{ text: 'v0.6.0 版本新增特性', link: '/zh/ruyi/updates/0.6.0' },
{ text: 'v0.7.0 版本新增特性', link: '/zh/ruyi/updates/0.7.0' },
{ text: 'v0.8.1 版本新增特性', link: '/zh/ruyi/updates/0.8.1' },
{ text: 'v0.9.0 版本新增特性', link: '/zh/ruyi/updates/0.9.0' },
{ text: 'v0.10.0 版本新增特性', link: '/zh/ruyi/updates/0.10.0' },
{ text: 'v0.11.0 版本新增特性', link: '/zh/ruyi/updates/0.11.0' },
{ text: 'v0.12.0 版本新增特性', link: '/zh/ruyi/updates/0.12.0' },
{ text: 'v0.13.0 版本新增特性', link: '/zh/ruyi/updates/0.13.0' }
]
}
text:'社区',
items:[
{text:'关于我们',link:'/doc/Community/About-us'},
{text:'社区守则',link:'/doc/Community/Rules'},
]
}
]
},
{ text: 'RuyiSDK',
items: [
{
text: 'GNU', link: '/zh/sdk/gnu/',
},
{
text: 'LLVM', link: '/zh/sdk/llvm/',
}
],
},
{
text:'其他说明',
items:[
{text:'RuyiSDK 编译工具',link:'/doc/Other/GNU-type'}
]
}
],
},
],
}
},
en: {
Expand All @@ -100,7 +80,6 @@ export default defineConfig({
base: '/docs/',
themeConfig: {
i18nRouting: true,
// https://vitepress.dev/reference/default-theme-config
search: {
provider: 'local'
},
Expand Down
21 changes: 21 additions & 0 deletions docs/zh/Community/About-us.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@

# 关于我们

## 简介

- RuyiSDK 社区旨在建设一个开放、友善、多样化、包容、健康社区。

- 在参与社区讨论前,请先查阅[社区守则](../Community/Rules.md)以便更好的在社区内交流。

- 如果您有更好的建议请通过以下的联系方式与我们取得联系,谢谢!



## 联系

你可以通过以下方式加入我们的社区:

- 关注微信公众号:RUYISDK
- 微信交流群:添加小助手 ruyisdk_helper
- 发送邮件至 [[email protected]](mailto:[email protected])
- 加入 [Telegram](https://t.me/ruyisdk) 进行进一步讨论
89 changes: 89 additions & 0 deletions docs/zh/Community/Rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@

# 贡献者公约

## 我们的承诺

身为社区成员、贡献者和领袖,我们承诺使社区参与者不受骚扰,无论其年龄、体型、可见或不可见的缺陷、族裔、性征、性别认同和表达、经验水平、教育程度、社会与经济地位、国籍、相貌、种族、种姓、肤色、宗教信仰、性倾向或性取向如何。

我们承诺以有助于建立开放、友善、多样化、包容、健康社区的方式行事和互动。

## 我们的准则

有助于为我们的社区创造积极环境的行为例子包括但不限于:

* 表现出对他人的同情和善意
* 尊重不同的主张、观点和感受
* 提出和大方接受建设性意见
* 承担责任并向受我们错误影响的人道歉
* 注重社区共同诉求,而非个人得失

不当行为例子包括:

* 使用情色化的语言或图像,及性引诱或挑逗
* 嘲弄、侮辱或诋毁性评论,以及人身或政治攻击
* 公开或私下的骚扰行为
* 未经他人明确许可,公布他人的私人信息,如物理或电子邮件地址
* 其他有理由认定为违反职业操守的不当行为

## 责任和权力

社区领袖有责任解释和落实我们所认可的行为准则,并妥善公正地对他们认为不当、威胁、冒犯或有害的任何行为采取纠正措施。

社区领导有权力和责任删除、编辑或拒绝或拒绝与本行为准则不相符的评论(comment)、提交(commits)、代码、维基(wiki)编辑、议题(issues)或其他贡献,并在适当时机知采取措施的理由。

## 适用范围

本行为准则适用于所有社区场合,也适用于在公共场所代表社区时的个人。

代表社区的情形包括使用官方电子邮件地址、通过官方社交媒体帐户发帖或在线上或线下活动中担任指定代表。

## 监督

辱骂、骚扰或其他不可接受的行为可通过 [插入联系方式] 向负责监督的社区领袖报告。
所有投诉都将得到及时和公平的审查和调查。

所有社区领袖都有义务尊重任何事件报告者的隐私和安全。

## 处理方针

社区领袖将遵循下列社区处理方针来明确他们所认定违反本行为准则的行为的处理方式:

### 1. 纠正

**社区影响**:使用不恰当的语言或其他在社区中被认定为不符合职业道德或不受欢迎的行为。

**处理意见**:由社区领袖发出非公开的书面警告,明确说明违规行为的性质,并解释举止如何不妥。或将要求公开道歉。

### 2. 警告

**社区影响**:单个或一系列违规行为。

**处理意见**:警告并对连续性行为进行处理。在指定时间内,不得与相关人员互动,包括主动与行为准则执行者互动。这包括避免在社区场所和外部渠道中的互动。违反这些条款可能会导致临时或永久封禁。

### 3. 临时封禁

**社区影响**: 严重违反社区准则,包括持续的不当行为。

**处理意见**: 在指定时间内,暂时禁止与社区进行任何形式的互动或公开交流。在此期间,不得与相关人员进行公开或私下互动,包括主动与行为准则执行者互动。违反这些条款可能会导致永久封禁。

### 4. 永久封禁

**社区影响**:行为模式表现出违反社区准则,包括持续的不当行为、骚扰个人或攻击或贬低某个类别的个体。

**处理意见**:永久禁止在社区内进行任何形式的公开互动。

## 参见

本行为准则改编自 [Contributor Covenant][homepage] 2.1 版, 参见 [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]

社区处理方针灵感来源于 [Mozilla's code of conduct enforcement ladder][Mozilla CoC]

有关本行为准则的常见问题的答案,参见 [https://www.contributor-covenant.org/faq][FAQ]
其他语言翻译参见 [https://www.contributor-covenant.org/translations][translations]

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

1 change: 1 addition & 0 deletions docs/zh/IDE/TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TODO
34 changes: 34 additions & 0 deletions docs/zh/Other/GNU-type.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# RuyiSDK 编译工具

### RuyiSDK 提供的编译工具链

RuyiSDK 提供了多种类型的编译工具链,适用于不同的 RISC-V 开发板和应用场景。

| 编译工具链类型 | 说明 | 相关链接 |
| -------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **GNU 工具链** | | [仓库](https://github.com/RuyiSDK/riscv-gnu-toolchain) |
| gnu-upstream | 标准 GNU 工具链 | |
| gnu-plct | 支持香山南湖微架构 'gnu-plct(==0.20240324.0)' | |
| gnu-plct-xthead | 适用于玄铁 | |
| gnu-plct-rv64ilp32-elf | 非通用工具链,支持 rv64ilp32 的裸机工具链,目标代码格式是 elf | [仓库](https://github.com/RuyiSDK/riscv-gnu-toolchain-rv64ilp32)<br>[文章](https://mp.weixin.qq.com/s/argIGP4_rUKDm9IRIB-YTg) |
| **LLVM 工具链** | | |
| llvm-upstream | | |
| **QEMU 模拟器** | | [仓库](https://github.com/ruyisdk/qemu) |
| qemu-system-riscv-upstream | | |
| qemu-user-riscv-upstream | | |
| qemu-user-riscv-xthead | | |


### 编译工具链的多样性

如上表, 目前 RuyiSDK 编译工具链由于能够实现不同扩展指令集,进而有了不同版本的情况,这也就使得编译工具链具有多样性。
原因有以下几点:

1. **处理器架构发展**:处理器架构在不断更新迭代的过程中会引进新的指令集扩展以满足不同的需求,为使得这部分新的指令集扩展能够充分运用,编译工具链也会随之进行更新,出现不同的版本。
2. **厂商定制优化**:不同的厂商会针对同一个指令集进行不同程度的定制化,进而对编译工具链进行定制化。
3. **标准和规范的演进**:扩展指令集虽被规范化,但不同版本的工具链在相同标准下也会体现出不同的性能、稳定性以及兼容性。
4. **特定应用需求**:不同的应用领域对扩展指令集有不同的需求,如嵌入式系统、机器学习、图像处理等,不同版本编译工具链会针对特定领域进行优化。

上述原因使得编译工具链出现了多样化,这样的多样化为开发者提供了更多的选择,满足更加复杂的开发场景。


76 changes: 76 additions & 0 deletions docs/zh/Package-Manager/Complie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# 编译工具链安装

通过前置步骤,你已经可以正确使用 ruyi 包管理器,在这个模块中我们更进一步的安装 RISC-V 上相关的编译器。

目前 ruyi 包管理器提供了不同组织所发布的 GNU 以及 LLVM 编译工具链,你可以通过 `ruyi list` 轻松的查看。

若要安装特定的安装包,请使用 `ruyi install``ruyi i` 完成安装。

### 其他说明

编译工具链的版本选择参考[RuyiSDK 编译工具](../Other/GNU-type)

## 编译

### 代码准备

当正确获取了编译工具链后,可以通过 `git` 等任何方式获取源码到本地,同时,RuyiSDK 为新用户提供了一些代码示例,方便用户可以直接从 Ruyi Repo 的软件源中获取源码,可以通过如下指令实现:

```bash
# 从软件源下载并解压指定的源码包

ruyi extract

```
获取源码后,RuyiSDK 包管理器提供了虚拟环境技术,用户可以在系统中创建独立的环境,以确保对于不同版本编译工具链以及库文件进行环境隔离。
保证了用户在同以开发环境中能够安装使用不同的编译工具链版本,提供更好的环境隔离,保证开发过程的高效性。

我们建议在虚拟环境中进行编译操作,步骤如下:


```bash
# 开始编译
# 为隔离化编译创建虚拟环境,使用 ruyi venv -h 查看如何使用

ruyi venv

# 举例:创建一个叫 venv1 的虚拟环境,并指定编译工具链为 gnu-upstream,sysroot 为 generic 类型,使用 qemu-user-riscv-upstream 模拟器

ruyi venv -t gnu-upstream -e qemu-user-riscv-upstream generic venv1


# 激活虚拟环境

. venv1/bin/ruyi-activate

# 编译需要编译的程序源代码
# 此部分没有统一规范,按照待编译程序自身的编译说明执行,这里以 coremark 为例:

#(1)设置 coremark 源码中的编译配置信息
sed -i 's/\bgcc\b/riscv64-unknown-linux-gnu-gcc/g' linux64/core_portme.mak

#(2)执行交叉编译和构建,得到可执行程序 coremark.exe
make PORT_DIR=linux64 link

#(3)查看 rv64 可执行程序文件属性信息,初步检验可执行程序是否 RISC-V 架构
file coremark.exe
```

### 模拟运行

在进入该步骤前,请确保已经安装了编译所需的编译工具链、模拟器,并在虚拟环境中配置了 qemu 模拟器。

为确保 RISC-V 目标可执行程序的正确性,通过模拟器工具(如 qemu)模拟运行环境:

```bash
# qemu user 模式下执行 rv64 coremark 可执行程序
ruyi-qemu coremark.exe

# 在编译和运行结束后,退出虚拟环境
ruyi-deactivate

```

### 调试

> TODO
Loading

0 comments on commit dde85cd

Please sign in to comment.