返回首页

启动 RISC-V K1921VG015:工具链和 OpenOCD

设置 riscv-gnu-toolchain 和 OpenOCD 以在 K1921VG015 上启动演示的说明。描述了带 multilib 的构建、DirtyJTAG 和 GCC14 补丁、通过 WSL 刷写。适用于调试 RISC-V 项目。

RISC-V K1921VG015:使用 DirtyJTAG 启动演示
Advertisement 728x90

K1921VG015 RISC-V开发板工具链与OpenOCD配置指南

基于RISC-V架构的K1921VG015微控制器开发板已启动演示项目。这需要DirtyJTAG JTAG适配器、riscv-gnu-toolchain编译器以及NIIET提供的补丁版OpenOCD。本教程在Windows 11的WSL环境中使用Debian 13(trixie)完成。

安装基础软件包确保工具链能够正常构建:

sudo apt install autoconf automake autotools-dev curl python3 python3-pip python3-tomli libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat1-dev ninja-build git cmake libglib2.0-dev libslirp-dev libncurses-dev libusb-1.0-0-dev libusb-1.0-0 cmake

构建riscv-gnu-toolchain编译器

克隆包含递归子模块的代码仓库:

Google AdInline article slot
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
cd riscv-gnu-toolchain
./configure --prefix=/opt/riscv --enable-multilib
sudo make

--enable-multilib标志启用RV32和RV64架构支持。以root权限构建确保安装到/opt/riscv目录。完成后,将/opt/riscv/bin添加到PATH环境变量,即可访问riscv64-unknown-elf-gcc等工具。

编译支持DirtyJTAG的OpenOCD

使用NIIET的OpenOCD分支(提交ed64294116beb6bc335a6c5809b46a87add8042a):

git clone --recursive https://gitflic.ru/project/niiet/openocd.git
cd openocd/
git apply --verbose 0001-jtag-add-support-for-adapter-DirtyJTAG.patch
git apply --verbose 0002-fix-correct-calloc-argument-order-for-GCC-14-compatibility.patch
./bootstrap
./configure --prefix=/usr/
make -j$(nproc)
sudo make install

补丁0001添加了DirtyJTAG适配器驱动。补丁0002修复了calloc参数顺序以兼容GCC 14。将k1921vg015.cfg配置文件复制到/usr/share/openocd/scripts/target/目录——基础NIIET版本未包含该芯片支持。

Google AdInline article slot

构建并烧录演示项目

演示项目在Syntacore Development Toolkit中生成,手动添加了CMakeLists.txt文件。构建项目:

mkdir build
cd build
cmake ../CMakeLists.txt
make

生成的Run_leds.bin文件已准备就绪。在WSL环境中连接USB设备:

usbipd list  # 查找DirtyJTAG的BUSID,例如1-3
usbipd attach --wsl --busid 1-3

通过OpenOCD启动固件:

Google AdInline article slot
sudo openocd -f interface/dirtyjtag.cfg -f target/k1921vg015.cfg -c "program Run_leds.bin 0x80000000 verify reset exit"

该命令在地址0x80000000处编程,验证完整性,重置并退出。在纯Linux系统中,可跳过usbipd步骤。

关键配置步骤列表:

  • 安装Debian软件包以支持工具链
  • /opt/riscv目录构建多架构编译器
  • 为OpenOCD打补丁并编译,添加DirtyJTAG支持
  • k1921vg015.cfg添加到脚本目录
  • 在WSL中构建CMake项目并连接USB设备
  • 烧录固件并进行验证与重置

注意事项

  • --enable-multilib对单一工具链支持RV32/RV64至关重要
  • OpenOCD补丁(DirtyJTAG和GCC14-calloc)必不可少
  • 加载地址0x80000000是K1921VG015的标准地址
  • WSL环境需要usbipd实现JTAG访问
  • k1921vg015.cfg配置文件需手动添加

进一步调试可通过类似工具链步骤深入研究芯片架构。

— Editorial Team

Advertisement 728x90

继续阅读