petalinux修改设备树添加vdma生成linux系统

1\]使用硬件生成的xsa文件生成项目工程 petalinux-create --type project --template zynq --name ask_fx2 将工程xsa文件放到ask工程目录下然后运行 petalinux-config --get-hw-description=./ 然后进入 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7848fa1ee12a4b42843a815b2a119616.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cac13cb57fb5434492541a774424356e.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/df817c8281434c258c1de1dc0cdf046a.png) 这样配置SD卡模式,选择后保存退出。 \[2\]编译u-boot 需要使用普通用户,在shell输入petalinux-config -c u-boot(依然要事先输入source /home/hlf/mnt/petalinux/settings.sh命令),然后等待GUI出来,这里暂时不改动啥,直接save(save为u-boot.config,名字随便取但不要留空)。 \[3\]编译kernel 命令petalinux-config -c kernel,操作同上(save为kernel.config) \[4\]编译rootfs 命令petalinux-config -c rootfs,操作同上(save为默认即可) \[5\]编译设备树 修改配置文件 注:这里需要用户进行自定义 工程/project-spec/meta-user/recipes-bsp/device-tree/files/ system-user.dtsi 添加下面的代码: /include/ "system-conf.dtsi" / { chosen { bootargs = "console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait rootfstype=ext4"; }; vdmafb { compatible = "xilinx,vdmafb"; dmas = \<\&axi_vdma_0 0\>; dma-names = "lcd_vdma"; }; }; \&sdhci1 { status = "okay"; disable-wp; bus-width = \<4\>; max-frequency = \<50000000\>; no-1-8-v; }; 然后进入以下目录中修改pl.dtsi文件, /home/v3/hlf/PRO/sig1000/components/plnx_workspace/device-tree/device-tree 主要添加vdmafb部分。 /\* * CAUTION: This file is automatically generated by Xilinx. * Version: * Today is: Wed Mar 18 06:42:09 2026 \*/ / { amba_pl: amba_pl { #address-cells = \<1\>; #size-cells = \<1\>; compatible = "simple-bus"; ranges ; axi_vdma_0: dma@43000000 { #dma-cells = \<1\>; clock-names = "s_axi_lite_aclk", "m_axi_mm2s_aclk", "m_axis_mm2s_aclk"; clocks = \<\&clkc 15\>, \<\&clkc 15\>, \<\&clkc 15\>; compatible = "xlnx,axi-vdma-6.3", "xlnx,axi-vdma-1.00.a"; interrupt-names = "mm2s_introut"; interrupt-parent = \<\&intc\>; interrupts = \<0 29 4\>; reg = \<0x43000000 0x10000\>; xlnx,addrwidth = \<0x20\>; xlnx,flush-fsync = \<0x1\>; xlnx,num-fstores = \<0x1\>; dma-channel@43000000 { compatible = "xlnx,axi-vdma-mm2s-channel"; interrupts = \<0 29 4\>; xlnx,datawidth = \<0x10\>; xlnx,device-id = \<0x0\>; xlnx,genlock-mode ; }; }; }; vdmafb { compatible = "xilinx,vdmafb"; dmas = \<\&axi_vdma_0 0\>; dma-names = "lcd_vdma"; }; }; 编译设备树petalinux-config -c device-tree \[5\]编译工程 输入命令petalinux-build,等待即可,最后生成的文件在 image/linux下 \[6\]生成boot.bin 定位到image/linux目录下运行petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --u-boot u-boot.elf --force \[7\]将文件考入sd卡 将BOOT.BIN与image.ub放入sd卡中启动。 本文章由威三学社出品 对课程感兴趣可以私信联系

相关推荐
其实防守也摸鱼13 小时前
GDB安装与配置(保姆级教程)【Linux、Windows系统】
linux·运维·windows·命令模式·工具·虚拟机·调试
NoSi EFUL18 小时前
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
android·数据库·mysql
Elastic 中国社区官方博客19 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
Agent手记19 小时前
制造业数字化升级:生产全流程企业级智能体落地解决方案 —— 基于LLM+超自动化全栈架构的智改数转深度实战
运维·ai·架构·自动化
云安全助手19 小时前
弹性云服务器+高防IP:让DDoS攻击不再是业务“生死劫”
运维·网络·安全
AC赳赳老秦19 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
深色風信子20 小时前
Docker newapi
运维·docker·容器·newapi
mounter62520 小时前
【内核新动向】告别物理槽位束缚:深度解析 Linux Virtual Swap Space 机制
linux·内存管理·kernel·swap·virtual swap
handler0120 小时前
从零实现自动化构建:Linux Makefile 完全指南
linux·c++·笔记·学习·自动化
安小牛20 小时前
Android 开发汉字转带声调的拼音
android·java·学习·android studio