在 PetaLinux 上为 Zynq FPGA 上的 Rocket Chip 部署 C 可执行文件

Deploy C executable on PetaLinux for Rocket Chip on Zynq FPGA

我目前正在尝试部署一个应用程序(简单的c程序)到Zynq ZedBoard。 我按照 Rocket Chip on Zynq FPGAs github 页面生成了所有必要的文件,将它们放在 SD 卡上并 启动 PetaLinux

在教程中,预先打包了一个hello应用程序,可以在开机后执行

root@zynq:~# ./fesvr-zynq pk hello
hello!

我成功地做到了这一点。但是,我想知道如何将我自己的 c 代码 部署到将出现在内部文件系统中的可执行文件,如 hello上面一个.

感谢@user3528438 给我正确的提示。我正在写这篇文章以供将来参考。

我能够通过执行以下操作来部署和执行我自己的 C 应用程序:


我自己的C代码我想在Rocket Chip上执行

#include <stdio.h>
int main(void) {
    printf("Hello Rocket!\n");
    return 0;
}

编译 riscv 架构的代码并生成可执行文件这当然需要安装riscv工具链!

$ riscv64-unknown-elf-gcc -o myhello hello.c

复制生成的 myhello 可执行文件到您插入 ZedBoard 的 SD 卡

打开 ZedBoard 并登录。

安装 sd 卡 以便能够访问您的 myhello 可执行文件。

$ mkdir /sdcard
$ mount /dev/mmcblk0p1 /sdcard

切换到 /sdcard 目录并将您的可执行文件复制到 /home/root 目录。 (这是您找到标准 hello 可执行文件的地方)

$ cd ../../sdcard
$ cp myhello /home/root

切换回 /home/root 目录并通过 frontend-server!

在 Rocket Chip 上执行你的 myhello 文件
$ ./fesvr-zynq pk myhello

这会将预期的输出打印到控制台。

Hello Rocket!