【问题标题】:Deploy C executable on PetaLinux for Rocket Chip on Zynq FPGA在 PetaLinux 上为 Zynq FPGA 上的 Rocket 芯片部署 C 可执行文件
【发布时间】:2016-12-19 19:27:27
【问题描述】:

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

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

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

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

【问题讨论】:

  • 下载armhf工具链,设置armhf交叉编译环境变量,make all
  • 由于您似乎对交叉编译或一般编译不太了解,因此我假设您的项目很小并且涉及的源文件少于 5 个。如果是这种情况,只需运行arm-linux-gnueabi-gcc 而不是gcc。另外值得一试的是看板上是否有 gcc,如果有,您可以将整个项目复制到板上并在那里编译。如果您没有缺少依赖项,那么应该这样做。

标签: c linux riscv zynq petalinux


【解决方案1】:

感谢@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 可执行文件在您的 sd 卡上,您插入 ZedBoard。

打开 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!

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2019-12-14
    • 1970-01-01
    • 2019-03-02
    • 2015-06-15
    相关资源
    最近更新 更多