Skip to main content
Version: 1.0.0

一、开发环境

1.1 准备物料

物料名称数量说明
EM20-MES20 开发板1软件运行平台
开发板电源1推荐 12V/6A(不低于 2A),带有绿色接线端子,中心为正极的电源适配器。
JTAG 下载器1用于下载和调试 CPU 程序(非必需)
USB 线1作为串口线
以太网线缆1五类或六类网线,接到开发板的 RJ45 网口 0(eth0)。
SD 卡1刷机或调试时使用,推荐 64GB/class10 或更高规格
SD 卡读卡器1用于制作 SD 卡,或者读写 SD 上的文件
串口调试工具(软件)1用于与开发板建立通信,推荐 SecureCRT 或 MobaXterm。

1.2 准备主机环境

您需要准备一台 x86 主机安装 SDK 和配置开发环境,如果该主机主要用于模型编译、量化、仿真等用途,则对硬件配置要求较高,推荐使用内存容量 12GB 以上的硬件配置,操作系统可以采用 Ubuntu 20.04 或更新的版本。如果该主机主要用于交叉编译板端程序,则主流的笔记本电脑或台式机都能满足要求。

1.2.1 下载相关工具

在 Linux 桌面打开终端,输入以下指令下载相关开发所需工具:

sudo apt-get update
sudo apt install -y git git-lfs wget unzip parted fdisk util-linux e2fsprogs dosfstools

1.2.2 安装Docker环境

TACO SDK 的编译环境是以 docker 镜像方式提供的,所以您的主机需要有 docker 环境。如果之前已安装过 docker 可以跳过本节,否则可以参考以下脚本安装 docker 环境以及配置服务

# 安装 docker
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

# docker 命令免 root 权限执行
# 创建 docker 用户组,若已有 docker 组会报错,可忽略
sudo groupadd docker

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 重启 docker 服务
sudo service docker restart

# 切换当前会话到新 group 或重新登录重启会话
newgrp docker

1.2.3 获取 SDK

获取 TACO SDK 包并解压到主机中。

1.2.4 创建并启动 SDK 环境

进入 SDK 代码根目录,然后执行以下命令创建并启动 docker:

./start_workshop_docker.sh

进入 docker 后的工作目录已被设置为与宿主机的共享目录,同时也是 SDK 的解压目录(根目录),所以在 docker 中可以看到完整的 SDK 目录结构。 为了确保 SDK 能够正常工作,我们可以在 docker 中输入以下命令来测试 GCC 工具链是否正常:

/toolchain/bin/riscv64-unknown-linux-gnu-gcc -v

期待的反馈如下:

Using built-in specs.
COLLECT_GCC=/toolchain/bin/riscv64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/toolchain/bin/../libexec/gcc/riscv64-unknown-linux-gnu/14.1.1/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with: /flow/./source/riscv/gcc/configure --target=riscv64-unknown-linux-gnu --with-gmp=/flow/build-gcc-riscv64-unknown-linux-gnu/build-Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1/lib-for-gcc-x86_64-linux --with-zstd=no --with-mpfr=/flow/build-gcc-riscv64-unknown-linux-gnu/build-Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1/lib-for-gcc-x86_64-linux --with-zstd=no --with-mpc=/flow/build-gcc-riscv64-unknown-linux-gnu/build-Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1/lib-for-gcc-x86_64-linux --with-zstd=no --with-libexpat-prefix=/flow/build-gcc-riscv64-unknown-linux-gnu/build-Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1/lib-for-gcc-x86_64-linux --with-zstd=no --with-libmpfr-prefix=/flow/build-gcc-riscv64-unknown-linux-gnu/build-Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1/lib-for-gcc-x86_64-linux --with-zstd=no CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=3.0.1 ' --prefix=/flow/build-gcc-riscv64-unknown-linux-gnu/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1 --with-sysroot=/flow/build-gcc-riscv64-unknown-linux-gnu/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.1/sysroot --with-pkgversion='Xuantie-900 linux-6.6.0 glibc gcc Toolchain V3.0.1 B-20241120' --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --enable-libsanitizer --disable-nls --disable-bootstrap --src=/flow/./source/riscv/gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gc --with-tune=rocket --with-isa-spec=20191213 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medany'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.1.1 20240710 (Xuantie-900 linux-6.6.0 glibc gcc Toolchain V3.0.1 B-20241120)