# Milk-V Duo 运行RT-Thread

开始之前先安装一些必要依赖：

```bash
sudo apt install -y scons libncurses5-dev device-tree-compiler
```

下载libssl1.1 dev库

```bash
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.1.1f-1ubuntu2.23_amd64.deb
```

安装依赖：

```bash
sudo dpkg -i libssl-dev_1.1.1f-1ubuntu2.23_amd64.deb
```

安装时可能会提示缺少libssl 1.1库，解决办法：安装该库

```bash
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb
```

```bash
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb
```

如果安装 libssl1.1 时遇到问题，运行：

```bash
sudo apt-get install -f
```

然后再次尝试安装 libssl-dev：

```bash
sudo dpkg -i libssl-dev_1.1.1f-1ubuntu2.23_amd64.deb
```

如果还有其他依赖问题，再次运行：

```bash
sudo apt-get install -f
```

### RISC-V 大核运行 RT-Thread 标准版

然后克隆RT-Thread仓库：

```bash
git clone https://github.com/RT-Thread/rt-thread.git
```

切换的定制版本：

```bash
cd rt-thread
git reset --hard  a1b01ee86
```

进入`rt-thread/bsp/cvitek/cv18xx_risc-v`：路径下编译

```bash
cd rt-thread/bsp/cvitek/cv18xx_risc-v 
scons
```

编译前请确保安装交叉编译工具：`riscv64-unknown-elf-gcc`，[下载地址](https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1705395512373/Xuantie-900-gcc-elf-newlib-x86_64-V2.8.1-20240115.tar.gz)

下载解压，并将其添加到环境变量。

编译成功后，会在 `bsp/cvitek/output` 对应开发板型号目录下自动生成 `boot.sd` 文件

将 SD 卡分为 2 个分区，第 1 个分区用于存放 bin 文件，第 2 个分区用于作为数据存储分区，分区格式为 `FAT32`。将编译得到的 `boot.sd` 复制到 SD 卡第一个分区中。重新上电可以看到串口的输出信息。

大核输出信息使用的是 uart0 对应的物理引脚为 16（TX） 和 17（RX）

### RISC-V 小核运行 RT-Thread 标准版

操作基本一样，不同的是小核需要在`rt-thread/bsp/cvitek/c906_little`路径下编译

需要注意的是，小核编译后对应的文件为 fip.bin, 输出信息使用的串口为 uart1 对应的物理引脚为 1（TX） 和 2（RX）

### 连接流程

#### 大核：

将开发板引脚16连接到TTL转接器的RX

开发板的引脚17连接到TTL转接器的TX

开发板的引脚18(GND)连接到TTL转接器的GND

#### 小核：

将开发板的引脚1连接到TTL转接器的RX

将开发板的引脚2连接到TTL转接器的TX

开发板的引脚3(GND)连接到TTL转接器的GND

<figure><img src="https://1162625277-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztE2V8982Hhix6DGmMHJ%2Fuploads%2FD6votq4xMH9TDig5km6Y%2Fimage.png?alt=media&#x26;token=aeaeb4e3-cf68-41a8-82ca-b703bb8eddf0" alt=""><figcaption></figcaption></figure>

将开发板与TTL转接器连接好后，将开发板上电，然后TTL转接器也插上电脑

```bash
sudo screen /dev/ttyUSB0 115200
```

就能看到输出
