petalinux vdma 设备树配置 /dev/名称
时间: 2023-12-02 07:05:43 浏览: 79
在完成VDMA的设备树配置后,需要在PetaLinux系统中创建相应的设备节点。可以通过在系统启动时运行脚本或者在启动过程中调用udev工具来创建相应的设备节点。在udev规则中,可以使用以下属性来匹配VDMA设备:
- KERNEL:设备的名称,通常为/dev/下的节点名称。
- SUBSYSTEM:设备所属的子系统,可以为video4linux、dma等。
- DRIVER:设备所使用的驱动程序。
下面是一个udev规则的示例:
```
SUBSYSTEM=="dma", KERNEL=="axi_vdma*", DRIVER=="xilinx-vdma", MODE="0666"
```
该规则指定当一个名为axi_vdma的设备被添加到dma子系统时,如果它使用xilinx-vdma驱动程序,则创建一个权限为0666的设备节点。在PetaLinux系统中,可以将这样的规则保存在/etc/udev/rules.d/目录下,并以.rules为扩展名。这样,在系统启动时,udev会自动加载这些规则,并创建相应的设备节点。
相关问题
petalinux vdma 设备树配置
在PetaLinux中,配置VDMA需要在设备树中进行相应的配置。以下是一个VDMA设备树节点的示例:
```
vdma@43c00000 {
compatible = "xlnx,axi-vdma-1.00.a";
reg = <0x43c00000 0x10000>;
interrupt-parent = <&axi_intc>;
interrupts = <0 59 4>;
clocks = <&clkc 2>;
clock-names = "s_axi_lite_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk";
xlnx,dma-type = <0x1>;
xlnx,addrwidth = <0x20>;
xlnx,flush-fsync = <0x0>;
xlnx,include-sg = <0x0>;
xlnx,use-memops = <0x1>;
xlnx,gen-lock-enable = <0x1>;
xlnx,num-fstores = <0x1>;
xlnx,maddrwidth = <0x20>;
xlnx,mm2s-memsize = <0x10000000>;
xlnx,s2mm-memsize = <0x10000000>;
};
```
该节点的属性包括:
- compatible:指定VDMA IP核的兼容性字符串。
- reg:指定VDMA IP核的地址和大小。
- interrupt-parent:指定VDMA IP核中断的父节点。
- interrupts:指定VDMA IP核中断的编号、中断触发类型和中断标志。
- clocks:指定VDMA IP核所使用的时钟。
- clock-names:指定时钟的名称。
- xlnx,dma-type:指定VDMA IP核的类型。
- xlnx,addrwidth:指定VDMA IP核的地址位宽。
- xlnx,flush-fsync:指定是否使用Flush和Fsync信号。
- xlnx,include-sg:指定是否使用Scatter-Gather模式。
- xlnx,use-memops:指定是否使用Memory-Mapped I/O操作。
- xlnx,gen-lock-enable:指定是否启用Gen-Lock功能。
- xlnx,num-fstores:指定帧缓冲区的数量。
- xlnx,maddrwidth:指定内存地址位宽。
- xlnx,mm2s-memsize:指定MM2S通道的内存大小。
- xlnx,s2mm-memsize:指定S2MM通道的内存大小。
根据实际需求,可以修改这些属性的值。完成设备树配置后,需要重新编译设备树并重新生成BOOT.bin文件。
Can't locate FindBin.pm in @INC (you may need to install the FindBin module) (@INC contains: /home/yk/sdk/sysroots/x86_64-petalinux-linux//usr/lib/perl/site_perl/5.24.4 /home/yk/sdk/sysroots/x86_64-petalinux-linux//usr/lib/perl/vendor_perl/5.24.4 /home/yk/sdk/sysroots/x86_64-petalinux-linux//usr/lib/perl/5.24.4 /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/site_perl/5.24.4/ /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/site_perl/5.24.4 /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/vendor_perl/5.24.4/ /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/vendor_perl/5.24.4 /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/5.24.4/ /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/5.24.4 /opt/petalinux/2019.1/sysroots/x86_64-petalinux-linux/usr/lib/perl/5.24.4 .) at ./Configure line 15. BEGIN failed--compilation aborted at ./Configure line 15
这个错误提示表明你的Perl运行环境中缺少FindBin模块,而你的代码中使用了该模块。你需要安装FindBin模块,可以使用以下命令:
```
cpan FindBin
```
如果你没有安装CPAN,可以使用以下命令安装:
```
sudo apt-get install cpanminus
```
安装完成后,再执行上面的命令即可安装FindBin模块。