在 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!
我目前正在尝试部署一个应用程序(简单的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!