问题标签 [petalinux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
373 浏览

yocto - 如何在 petalinux 的自定义应用程序中使用 axi dma 内核模块?

我正在尝试使用 bperez77 提供的 Xilinx-axidma 驱动程序(Github repo)构建 axidma- benchmark应用程序

我正在使用 Petalinux 20.2 为我的自定义项目构建 Linux。在新版本的内核中,一些功能发生了变化,运行时出现了一些错误petalinux-build我更改了此处提到的驱动程序文件并成功构建了内核模块。

在下文中,我通过运行创建自定义应用程序:

然后我将应用程序文件复制到 recipes-apps 目录,并将所有 C 和头文件附加到 axidma-benchmark.bb 中的 SRC_URI 列表,如下所示:

然后我添加APP_OBJS += util.o到 Makefile 并通过运行构建应用程序:

但我得到了这些错误:

错误:axidma-benchmark-1.0-r0 do_compile:oe_runmake 失败错误:axidma-benchmark-1.0-r0 do_compile:执行'/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64- xilinx-linux/axidma-benchmark/1.0-r0/temp/run.do_compile.21635' 失败,退出代码为 1:aarch64-xilinx-linux-gcc -march=armv8-a+crc -mtune=cortex-a72.cortex- a53 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64- xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot -o axidma-benchmark axidma-benchmark.o util.o -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-需要 -fstack-protector-strong -Wl,-z,relro,-z,现在/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx- linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld:axidma-benchmark.o:在函数中main': /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:491: undefined reference to axidma_init' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx -linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld:/usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark。 c:499: 未定义对axidma_malloc' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx-linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld: /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:505: undefined reference to axidma_malloc'/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/ 的引用usr/bin/aarch64-xilinx-linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld:/usr/src/debug/axidma-benchmark/1.0 -r0/axidma-benchmark.c:514:未定义的引用axidma_get_vdma_tx' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx-linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld: /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:515: undefined reference to axidma_get_vdma_rx' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx -linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld: axidma-benchmark.o: 在函数single_transfer_test': /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:396: undefined reference to axidma_twoway_transfer'/media/fpgaws/projects/DevelopmentLab/ build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx-linux/../../libexec/ aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld:axidma-benchmark.o:在函数中main': /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:558: undefined reference to axidma_free'/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx -linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld:/usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark。 c:560: 未定义对axidma_free' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx-linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld: /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:562: undefined reference to axidma_destroy'/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/ 的引用usr/bin/aarch64-xilinx-linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld:/usr/src/debug/axidma-benchmark/1.0 -r0/axidma-benchmark.c:519:未定义的引用axidma_get_dma_tx' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx-linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld: /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:520: undefined reference to axidma_get_dma_rx' /media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-xilinx -linux/../../libexec/aarch64-xilinx-linux/gcc/aarch64-xilinx-linux/9.2.0/ld: axidma-benchmark.o: in function time_dma': /usr/src/debug/axidma-benchmark/1.0-r0/axidma-benchmark.c:426: undefined reference to axidma_twoway_transfer' collect2: error: ld returned 1 exit status make: *** [Makefile:12: axidma-benchmark] 错误 1 ​​警告:/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64-xilinx-linux/axidma-benchmark/1.0 -r0/temp/run.do_compile.21635:1 exit 1 from 'exit 1' 错误:失败的日志文件存储在:/media/fpgaws/projects/DevelopmentLab/build/apu/ultrazed7ev/build/tmp/work/aarch64- xilinx-linux/axidma-benchmark/1.0-r0/temp/log.do_compile.21635

我的错误是什么?

0 投票
1 回答
342 浏览

embedded-linux - 如何调试 Linux 启动时崩溃 (PetaLinux 2020.1)

我为我的 MicroZed 开发板创建了一个非常通用的 PetaLinux 2020.1 项目,并成功构建了一切。我相信我已经正确配置了 SD 卡,并且我的 RootFS 就位。FSBL/U-Boot 正确加载和运行,但在启动 Linux 时,它会崩溃并在控制台上显示以下输出。

我可以使用一些关于如何追踪潜在问题的建议,可能是我的某种错误配置,因为 Google/StackOverflow 并没有引导我到任何似乎适用的地方。鉴于我试图从开箱即用的设置中改变的很少,看来这可能是一个常见问题。谢谢!

0 投票
1 回答
212 浏览

linux - 未调用 Linux 自定义设备驱动程序探测和初始化函数

我在 Vivado 中为 Xilinx SoC 板构建了一个自定义硬件配置,并使用 petalinux 创建了一个自定义驱动程序来控制硬件逻辑。似乎在运行insmod命令之后,驱动程序从未被初始化并且->probe()函数未被调用。

我是这个领域的新手,想知道是否有人遇到过类似的问题,并且有一些关于在哪里检查以及检查什么以查看问题所在的指示。任何建议都会非常有帮助!

dmesg将驱动程序插入内核后运行命令:

Vivado 创建的设备树实体:

设备驱动代码片段:

完整的设备驱动程序代码:

0 投票
1 回答
149 浏览

linux-kernel - 在设备树中的节点之间共享变量

我正在尝试找到一种方法来从 node_1 访问此设备树中 node_0 中的变量(请参见下面的代码):

主要目标是能够在内核模块之间共享状态。我知道我可以在写入节点中 EXPORT_SYMBOL(variable) ,然后在读取节点中使用 extern *variable ,但想看看我是否可以在设备树本身中完成此操作。node_0 将始终是唯一设置 nodeState 的节点,而 node_1 只会读取。这可能吗?

0 投票
1 回答
1419 浏览

cmake - 用于安装从 cmake 生成的二进制文件的 Yocto 配方

我是 Yocto 和 cmake 的新手。在互联网上查找和搜索后,我能够制作自己的食谱,并能够使用来自 Yocto 食谱的 cmake 成功编译代码。但是编译和生成的二进制文件位于代码源文件所在的 build 文件夹中。使用 Yocto 生成图像时,如何将二进制文件从构建文件夹复制到自定义文件系统路径。

我的 .bb 文件目前如下所示:

这会出错

我可以请人指导我。先感谢您。

0 投票
0 回答
75 浏览

embedded-linux - 在运行 PetaLinux 的 zedboard 上打开 LED 时出现问题

我对整个嵌入式操作系统类型有点陌生。但是对于学校的一个项目,我们需要在 zedboard 上运行 PetaLinux。

我的大学做了所有与 Vivado 相关的事情,我的目标是在 FPGA 上设置操作系统。

使用的程序是从外部 ssd 运行的 Vivado 2020.1、PetaLinux 2020.1 和 Ubuntu 20.04。UART 和 Jtag 电缆都连接到计算机。


所以我按照这个指南——链接——连同 PetaLinux 工具文档——链接——来启动和运行所有东西。但我没有从模板开始,而是从 petalinux 站点 --链接-- 加载了 ZED bsp。我确实使用了从同事那里收到的硬件配置。一切似乎都在工作,甚至 PetaLinux 版本也可以加载petalinux-boot --qemu --kernel.


执行以下两条命令后

我在终端中登录 PetaLinux 版本。

转到GPIO目录时,我可以看到四个gpiochip(gpiochip1003 - gpiochip1011 - gpiochip1019 - gpiochip885)。我试过在每一个上都使用下面的代码,但是 zedboard 上的 LED 永远不会亮起。(xxxx 是芯片编号。)

所以我的问题是,有人知道我如何打开 zedboard 上的 LED 吗?


提前致谢!
亲切的问候,奎因·范登布鲁克



编辑:当我找出它们保持为零的 gpio 值时,似乎没有任何改变。

ps:如果需要,我可以上传不同命令的终端日志。

0 投票
1 回答
354 浏览

c - Petalinux - 多源文件应用程序

我对 Petalinux 的 2020.2 版本还很陌生,我正在尝试使用 C 模板在我的项目中创建一个简单的应用程序。

使用命令创建 helloworld-app 后:

启用默认应用程序并成功构建后,我尝试通过在helloworld-app/files下创建一个名为Ethernet的新目录来添加一些功能,其中包含 2 个文件Etherent.cEthernet.h

最后,我将Ethernet.o对象添加到模块自动生成的 Makefile 内的列表中,为简单起见,我还添加了 VPATH。

不幸的是,构建失败了,实际上 bitbake 告诉我没有为对象 Ethernet.o 指定规则。

  1. 如何修改 makefile 以便编译这个简单的代码?
  2. 我可以编辑.bb文件吗?我不想这样做,因为那样我必须指定每个 src 文件......

谢谢你的支持!以太网.c:

helloworld-app.c:

生成文件:

下面我包含了petalinux-build -c helloworld-app命令的输出: 在此处输入图像描述

0 投票
1 回答
811 浏览

linux - Petalinux2020.2 无法预留内存?

我正在使用 petalinux2020.2 和 RFSOC、zcu111 板构建一个项目,对于我的应用程序,我需要从 petalinux 保留一段内存以与 DMA 一起使用,在 FPGA 的可编程逻辑上实现。我尝试按照本教程进行操作,但在启动时出现错误。 在此处输入图像描述

它以内核恐慌而终止,如下所示: 在此处输入图像描述 我尝试使用 petalinux-config 命令修改内存大小,将内存大小设置为 0x70000000,但没有帮助。

设备树的条目如下所示:

我怎样才能使这项工作?

0 投票
0 回答
105 浏览

fpga - petalinux-package 无法在 /tmp 中找到文件

我正在按照这个相当不错的 YT 教程在一个艺术板上构建和运行 petalinux。一切都很好,直到我尝试使用 petalinux-package 打包构建。

我收到以下错误:

它正在寻找的临时目录尚未创建。我也尝试过明确指定MMI文件的路径(与位文件的路径相同),但同样的问题。

petalinux-package 是否生成任何日志?我已经搜索并没有找到这个奇怪错误的线索。

有任何想法吗?

0 投票
1 回答
1311 浏览

yocto - petalinux 项目构建失败,m4-native-1.4.18-r0 do_compile 在主机 Ubuntu 20.04 LTS 上失败

在尝试将编译 Ubuntu 16 主机的 petalinux 2018.3 项目移植到 Ubuntu 20 主机时。发生以下错误

通过谷歌搜索发现这个补丁需要应用http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/meta/recipes-devtools/m4?h=thud&id=95ca077ab871ceff46c2052f324f879a1d624ff4有人可以帮忙解决这个问题吗在 yocto 中发布并应用此补丁。