虚拟机中zynq下BRAM读写和网口测试

发布时间:2026/11/14 17:58:26

虚拟机中zynq下BRAM读写和网口测试 文章目录一、内容介绍二、实现步骤2.1 petalinux和vivado配置步骤2.1.1 vivado配置2.1.2 petalinux配置2.2 linux系统串口2.2.1 u-boot系统2.2.2 linux系统2.3 petalinux和vivado相关2.3.1 TCP服务器程序2.3.2 BRAM读写一、内容介绍ZYNQ的PL端读写BRAM,PS端网口通信相关内容二、实现步骤2.1 petalinux和vivado配置步骤2.1.1 vivado配置zynq串口uart14-15网口ENET 0SD(使用SD卡启动要打开AXI BRAM ControllerBlock Memory Genrator自定义的PL端读取BRAM数据的IP核生成.xsa文件用在petalinux配置中。2.1.2 petalinux配置petalinux-config --get-hw-description /mnt/hgfs/Share/7020_hdf/dds_signal_sd/创建文件夹-基于.xsa配置-file:///mnt/hgfs/Share/downloads/mnt/hgfs/Share/sstate_arm/armsptl-petalinux-build修改设备树/home/zynqxue/workspace/Embedded_vitis/linux_dds/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi修改完成之后重新编译设备树petalinux-build -c device-tree编译整体petalinux-build#includedt-bindings/gpio/gpio.h#includedt-bindings/input/input.h#includedt-bindings/media/xilinx-vip.h#includedt-bindings/phy/phy.h/{modelAlientek Navigator Zynq Development Board;compatiblexlnx,zynq-zc702,xlnx,zynq-7000;leds{compatiblegpio-leds;gpio-led1{labelled2;gpiosgpio00GPIO_ACTIVE_HIGH;default-stateon;};gpio-led2{labelled1;gpiosgpio054GPIO_ACTIVE_HIGH;linux,default-triggerheartbeat;};gpio-led3{labelps_led0;gpiosgpio07GPIO_ACTIVE_HIGH;default-stateon;};gpio-led4{labelps_led1;gpiosgpio08GPIO_ACTIVE_HIGH;linux,default-triggertimer;};};制作BOOT.BIN启动文件petalinux-package --boot --fsbl --fpga --u-boot --force制作SD启动卡cp xxx /media/zynqxue/bootsyncsudo umount /media/zynqxue/*启动流程BootROM—FSBL—bitstream—U-Boot—ZImage—RootFs修改这部分Image Packaging Configuration 菜 单 下 的Root filesystemtype(INITRAMFS)”子菜单下BOOT.BIN的组成会不同。(1) petalinux-config配置INITRD启动。(a) boot块的内容BOOT.BIN 包含 zynq_fsbl.elfu-boot.elfsystem.dtbsystem_wrapper.bitimage.ub 是打包后的 zImage dtb 根文件系统推荐方式boot.scr 是启动脚本非必须看是否启用了把这三个文件放到sd卡的boot分区。(b) rootfs无内容(2) petalinux-config配置ext4(sd)启动。(a) boot块的内容BOOT.BIN 包含 zynq_fsbl.elfu-boot.elfboot.scrsystem.dtbsystem_wrapper.bitZImage(b) rootfs块的内容解压bootfs.tar.gz的内容2.2 linux系统串口2.2.1 u-boot系统查看SD卡的分区1中包含的文件就是在ubuntu中写入的sd卡的启动文件。ls mmc 0:1启动linux内核boot2.2.2 linux系统进入根目录cd /查看根目录下的内容ls查看设备的节点ls /proc/device-tree没有修改设备树设备树是空的,节点情况:对应文件夹里面的节点内容没有修改设备树它也能正常识别petalinux自动识别xsa文件得到的设备树内容这个路径下/petalinux/Bdds-dds/components/plnx_workspace/device-tree/device-treesystem-top.dts顶层设备树包含 AXI 外设等pl.dtsiPL部分Vivado生成的比如 axi_bram_ctrl40000000 )psu.dtsi / zynq-7000.dtsiPS部分标准片上系统外设不能修改system-conf.dtsi默认基础配置文件不能修改pcw.dtsi描述 Vivado PS 外设启用状态system-user.dtsi可以自定义的额外内容project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi2.3 petalinux和vivado相关2.3.1 TCP服务器程序编写应用程序设置交叉编译环境. /opt/petalinux/2020.2/environment-setup-cortexa9t2hf-neon-xilinx-linux-gnueabi生成可执行文件$CC tcp_server.c -o tcp_server把应用程序的可执行文件放在SD卡的第二分区cp tcp_server /media/zynqxue/rootfs/appfile在linux系统下的路径/media/sd-mmcblk0p2/appfile#配置开发板IP192.168.1.10ifconfig eth0 192.168.1.10 up执行TCP服务器程序rootBdds-dds:/media/sd-mmcblk0p2/appfile# ./tcp_server使用网口调试工具进行连接在ubuntu两个终端进行代码验证打开终端 A运行你写的服务器gcc tcp_server.c command_parser.c -o tcp_serve./tcp_server终端 A输出:Received: :FREQ 5.1;:POW 12.5;:FREQ?;:POW?;:FOO–打开终端 B运行客户端测试工具如 ncnc 127.0.0.1 8080在终端 B 输入:FREQ 5.1;:POW 12.5;:FREQ?;:POW?;:FOO终端 B 输出FREQ SET TO 5.100000 MHzPOWER SET TO 12.50 dBmFREQ: 5.100000 MHzPOWER: 12.50 dBmERROR: Unknown Command2.3.2 BRAM读写/dev/mem 使用需要 root 权限一般 rootfs 启动就是 root地址 0x40000000 和 0x43C00000 等应与你的设备树匹配可用 cat /proc/iomem 验证如果你想做内核态驱动方案推荐长期稳定可以将这些 readl/writel 代码改为 platform_driver 驱动方式bram_ptr mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, BRAM_BASEADDR);从 mem_fd 打开的设备如 /dev/mem中以读写权限、共享方式将 BRAM_BASEADDR 开始的物理地址空间映射到用户进程虚拟地址空间中映射大小为 MAP_SIZE 字节例如 0x1000 4KB)
延伸阅读

更多相关文章

2026/11/10 18:53:34

从SMB2流量中提取损坏载荷的Wireshark取证实战

上周在靶场项目收尾阶段,我在一台 Windows Server 的 SMB 共享里发现了一份可疑的incident.pcap。文件不大,导进 Wireshark 之后却是一整段模拟攻击会话的抓包:攻击者通过 SMB2 协议连上共享,期间上传了一个看起来不对头的载荷文件…

2026/11/14 17:57:22

电工证考完查询成绩怎么查?考前押题帮你稳过实操考试

电工证考完查询成绩怎么查?考前押题帮你稳过实操考试 实操考试心里没底怕挂科,尤其是像你这样刚转岗到电工岗位的信阳朋友,对考试流程、评分标准、甚至查询成绩的方式都不太清楚。别急,今天就给你一套完整的备考攻略,帮你 查成绩、稳过考试、顺利取证…

2026/11/14 17:57:22

工地太忙根本没时间复习考试?南京马群低压电工证良心建议全在这里

工地太忙根本没时间复习考试?南京马群低压电工证良心建议全在这里 工地太忙根本没时间复习考试?南京马群低压电工证这事儿,我干了十几年,见过太多人因为时间紧张、资料不清、流程不熟,最后要么考试挂了,要么错过复审时间,搞不好还要担法律责任,真是“…

2026/11/14 17:57:22

电工证陆丰多少钱?学历不高怕报不上名?一文讲透

电工证陆丰多少钱?学历不高怕报不上名?一文讲透 你是不是也担心自己学历不高,电工证陆丰办不下来?别急,这篇文章帮你解决所有疑虑,从报名到复审,一网打尽, 电工证陆丰多少钱 ,流程全在这儿! 电工证陆丰多少钱?普通学历也能报名吗?…

2026/11/14 17:57:22

阳江考低压电工证千万别踩坑,这3步帮你避开中介坑

阳江考低压电工证千万别踩坑,这3步帮你避开中介坑 你是不是在阳江想考低压电工证,但又不知道该去哪报名,怕被中介坑?别急,今天我就从一个老电工的视角,带你一步步搞清楚【阳江考低压电工证】的流程,教你如何避开那些坑,确保你拿到的是正规有效的证书…

2026/11/14 17:57:22

电工证初中高有什么 通过率揭秘 避坑经验全分享

电工证初中高有什么 通过率揭秘 避坑经验全分享 你是不是也这样,看到“电工证初中高有什么”这个关键词就犯愁,不知道去哪报名怕被中介坑?别急,这年头想进工地、上项目、拿高薪,电工证几乎是标配。但问题是,证书分初级、中级、高级,到底哪个适合你?…

2026/11/14 17:52:21

电工证丢失还能上班吗官方报名入口在哪

电工证丢失还能上班吗官方报名入口在哪 怕考不过白交培训费?电工证丢失还能上班吗?很多人一听到证件丢失就慌了,觉得没证就等于失业,其实不然。如果你是南阳转岗的从业者,又或是正在考虑从事电工相关工作,那你必须知道电工证的真正作用和办理流程。本文…

2026/11/13 22:33:32

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/14 0:06:39

土木特种工考证官方报名入口怎么找 之前考的证在外省能不能转过来

土木特种工考证官方报名入口怎么找 之前考的证在外省能不能转过来 之前考的证在外省能不能转过来?这个问题我太熟悉了,作为一名干了十几年的特种作业证书办理从业者,每年都会遇到不少像你一样在外地考了证,回来却发现无法直接使用的学员。别急,今天我就…

2026/11/14 0:06:39

电工证要多久多钱保姆级教程:工地太忙根本没时间复习考试

电工证要多久多钱保姆级教程:工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,你不是一个人。在信阳浉河区,很多刚进入工地的电工都面临这样的困境:工作强度大,时间碎片化,根本没有系统复习考试的机会。但电工证是上岗的硬门槛,…

2026/11/13 22:32:11

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/13 12:14:39

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑