0

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

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

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

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

4

1 回答 1

0

感谢@user3528438 给我正确的提示。我写这个以备将来参考。

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


编写我自己想在 Rocket 芯片上执行的C 代码。

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

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

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

在插入 ZedBoard的 sd 卡上复制生成的 myhello 可执行文件。

打开 ZedBoard 并登录。

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

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

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

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

切换回 /home/root 目录并通过前端服务器在 Rocket Chip 上执行你的 myhello 文件!

$ ./fesvr-zynq pk myhello

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

Hello Rocket!
于 2017-02-02T17:33:45.690 回答