ZYNQ:FPGA_AXI_ARM
文章平均质量分 78
zynq/utrascale/复旦微 PL和PS AXI4总线接口交互。移植RT-thread,ucos,freeRTOS,vxworks,linux等。ISE/vivado/procise和IAR开发。verilog语法,tcl编译,OCM,AMP双核。PCIE,万兆网,光通信,SRIO等高速接口
寒听雪落
这个作者很懒,什么都没留下…
展开
-
petalinux只有串口传输文件到arm
按Ctrl-A,再按s,选择zmoden,会出现一个选择文件的界面,选择你要传输的文件(按一下空格键选择目录,按两下空格键进入目录),回车后出现一个传输界面,传输完成后,便可以在开发板的/tmp目录下找到这个文件了。路径:7035/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/mylsrz/1.0-r0/temp$如果项目在本地存储,TMPDIR为。1,输入:,petalinux-build -c -x do_install。原创 2024-06-13 00:02:03 · 73 阅读 · 0 评论 -
zedboard低版本编译生成linaro系统启动文件
3、修改include/configs/zynq-common.h文件,把sdboot参数修改成如下,即删除了读取ramdisk的操作,并把bootm的第二个参数修改成“-”,表示无ramdisk。下载u-boot源代码 ,官网是https://github.com/Xilinx/u-boot-xlnx.git,直接通过git下载,或者下载zip压缩包。下载系统的链接:https://releases.linaro.org/archive/12.09/ubuntu/leb-panda/原创 2020-03-26 15:49:01 · 631 阅读 · 0 评论 -
ZYNQ PS PETALINUX程序开机自己启动配置
2,建立shell脚本文件的app工程:petalinux-create -t apps --template install -n startup --enable。进入 test_autostart/project-spec/meta-user/recipes-apps/startup中修改startup.bb文件。进入test_autostart/project-spec/meta-user/recipes-apps/startup中修改startup.bb文件。原创 2020-03-25 01:32:11 · 3796 阅读 · 1 评论 -
ZYNQ使用W25Q128BV和W25Q256FVEI芯片flash启动系统
我们编译出来的启动文件大小,BOOT.BIN =13.2M,Image.ub=10M,说明已经两个之和已经超过第一片16M flash的大小,于是把image.ub放到后面第二片16M进行烧写。配置petalinux系统从flahs启动,发现BOO.BIN能启动,BOOT.BIN+image.ub启动不了。其中烧写和配置的时候,image.ub.bin偏移地址都是0x520000。其中烧写配置image.ub偏移地址的时候,image.ub.bin偏移地址都是0x520000,烧写完成串口哦完全没有打印。原创 2023-11-13 15:35:23 · 1105 阅读 · 0 评论 -
vitis dpu kernel编译和docker环境搭建
进入Vitis-AI目录下的docker文件夹,运行该目录下的dpu-compiler-docker-install.sh, 该脚本会将Vitis-AI Docker 的可运行的镜像直接下载到本地,大小为10GB左右,所需时间取决于网络环境。执行完毕后,会在.elf 文件所在的位置生成在目标板运行yolov3所需的.so文件(DPU Kernel 文件),将其拷贝至实验工程目录下的code/deploy_in_board/Alinx_DNN/ tf_yolov3_vehicle_deploy/。原创 2024-02-23 23:56:01 · 360 阅读 · 0 评论 -
VITIS2021编译debian启动文件启动linaro系统
vitis会生成pmufw.elf和system_wrapper.bit这两个文件。pmufw.elf顾名思义就是pmu的管理程序,它负责了板级的电源管理。system_wrapper.bit文件则是PL端的配置文件,通过这个文件我们可以在linux启动时将vivado工程给一并配置至pl端,这样我们就能通过linux与PL端交互了。bit文件不仅会配置pl端,ps端也需要通过bit文件设置,要想让linux系统启动时配置好FPGA 端的逻辑,首先我们得先导出在vivado里设计好的硬件,然后用vitis把原创 2022-10-18 00:13:01 · 3391 阅读 · 0 评论 -
VITIS2021编译petalinux启动文件启动linaro系统
• 对于内核,请选择 “linux-kernel () --->”,然后选择 “(X)ext-local-src”。对于 U-Boot,请选择“u-boot () --->”,然后选择“(X)ext-local-src”。选择“External u-boot local source settings --->”。如果想在Petalinux编译完成后保留Kernel和Uboot源码,则需要在project-spec/meta-user/conf/petalinuxbsp.conf里,添加如下内容,原创 2023-09-01 14:22:25 · 386 阅读 · 1 评论 -
ZYNQ在线更新启动文件步骤
5)选择 BOOT_QSPI.bin 和 zynq_fsbl.elf 进行烧写;更新方式与烧写QSPI版固件一致,只需将固件文件加载为EMMC版BOOT.bin。板卡启动后,输入用户名和密码,进入系统,默认用户名和密码均为root。2)切换拨码开关到QSPI:拨码1设置为ON,拨码2设置为ON。切换拨码开关到QSPI:拨码1设置为OFF,拨码2设置为ON;B.把需要升级文件拖动到相应目录下,完成文件升级。A.使用鼠标点击文件夹进入dts1588目录;2.1 切换板卡到QSPI启动模式。原创 2020-09-20 22:25:31 · 1867 阅读 · 1 评论 -
zynq petalinux编译系统启动文件实战应用
第一种是linaro,我移植过的版本linaro2010~linaro2016,它的交叉编译器是arm-xilinx-linux-gnueabi-,不支持在线编译,支持根文件系统和操作系统两种模式。6,打包:petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force。将系统烧入flash,有多种方式:串口,网口,JTAG下载器,SD卡,U盘等,只要填对FLAH地址或偏移地址,理论上都是可以的。原创 2022-05-13 01:02:53 · 2922 阅读 · 0 评论 -
sdk开发linux应用程序和vitis开发linux应用程序
工程名填写“linux_app”,工程类型选择Others文件夹里面“Xilinx ARM v8 GNU/Linux Executable”“platform project name”栏输入平台工程名“linux_platform”,其他保持默认,next进入下一页面。设备树模板xilinx官方设备树模板的地址:https://github.com/Xilinx/device-tree-xlnx。使用vitis开发Linux应用程序,explorert空白处点击右键“New -> Project…原创 2024-02-01 10:05:17 · 446 阅读 · 0 评论 -
petalinux2022.2启动文件编译配置
petalinux2021之前的版本里,导入目录components/yocto/下的“environment-setup-aarch64-xilinx-linux” 和 “layers/core/oe-init-build-env”的环境,能使用Yocto的devtool工具。(加入下面内容,先petalinux-build下载完成后才能有源码)制作 BOOT.BIN 启动文件:petalinux-package --boot --fsbl --fpga --u-boot --force。原创 2024-01-30 22:20:52 · 327 阅读 · 0 评论 -
ZYNQ VITIS LINUX系统配置流程和网络启动烧写
2、从编译后的Petalinux中获取:执行 petalinux-build -c kernel 命令,将自动获取源码并置于 components/plnx_workspace/sources/ 下。dts编译生成dtb : ./dtc -I dts -O dtb -o system.dtb system.dts。dtb编译生成dts : ./dtc -I dtb -O dts -o system.dts system.dtb。编译SDK:petalinux-build --sdk。原创 2023-12-11 19:49:53 · 1382 阅读 · 0 评论 -
hls搭建ip到vivado中测试
4,选择ZYNQ芯片型号,在下拉列表框中选中对应器件,点击“OK"文件名设置为control_gpio,输入下面代码,点击保存。5,右键Source图标,选择New File。3,设置顶层函数名,然后next->next。1,打开vivado hls,并点击图标。最后点击finnish创建hls完成。2,设置工程名称及选择存放路径。一,创建vivado hls。原创 2020-09-08 19:53:42 · 2624 阅读 · 1 评论 -
vitis2022.2裸机搭建和配置qspi flash启动固化
SD卡启动:直接复制路径下的BOOT.BIN文件并且放到SD卡中,之后插入开发板,设置SD卡模式启动(核心板上模式开关全部设置OFF OFF),接上串口看打印。添加3个文件,顺序必须是fsbl.elf system_wrapper.bit uart_app.elf,之后单击Create Image。制作BOOT.BIN还有一个方式与sdk软件一样,右击需要制作BOOT.BIN文件的SDK APP工程。第二种编译方法,右击编译可以产生 elf 文件,和 BOOT.BIN文件,但是时间较长一些。原创 2020-04-07 01:30:12 · 2022 阅读 · 1 评论 -
复旦微FMSH_Procise安装流程
双击FMSH_Procise_2021.1_full_win64_202103151947.exe选择好安装目录后点击“Next”一路next点install找技术支持代为申请 License,将电脑MAC地址发过去,将获得的 license 拷贝到 procise 安装目录“data”文件夹,即可使用 procise。点license manager和copy license将licence,.lic文件放到这个目录要是报下面错误要...原创 2021-11-03 23:36:59 · 9258 阅读 · 7 评论 -
Procise使用举例
启动 Procise,创建一个名为 system 的 Block design 文件.在 system.bd 的空白处点击右键,单击 Add IP 选项,从 IP 列表里面双击选择processing system7 加入到 block design 中。Procise 会将 block design 的配置信息导出成相应的的工程文件,其中PeripheralTest包含了常用硬件测试,比如EMMC等。点击 Launch SDK,会启动 IAR SDK 并打开 Procise 导出的工程。原创 2020-09-24 22:58:46 · 8047 阅读 · 2 评论 -
ZYNQ 可编程查分晶振Si570使用
1,vivado工程:2, Si570内部结构:其输出就是由晶振内部振荡器产生的固定频率为 f XTAL 的时钟经过 1 次倍频和 2 次分频而获得。输出时钟频率f out 的计算公式为:晶振内部振荡器产生的时钟频率 f XTAL ≈114.285000000MHz。需要说明的是,f XTAL 不是一个完全准确的值,由于生产工艺的限制,对于每一个晶振,f XTAL 都会存在细微的差别。RFREQ 是 38bit 的倍频系数,其高 10bit为整数,低 28bit 为小数。由于 f DCO原创 2020-06-28 14:49:02 · 3456 阅读 · 0 评论 -
用HLS IP实现FFT裸机调用
这里N最大定为1024,也就是2的10次方。假设采样频率Fs,信号频率F,采样点数N,FFT之后的结果就是N点的复数。每一个点就对应着一个频率点,Fn=(n-1)*Fs/N,这个点的模值,就是该频率值下的幅度。其中,setSch(0x2AB)是设置scale,即蝶形算法的每一级右移的位数[2 2 2 2 3],这样确保最后的结果也是16位的,这里scale对应的十进制值是2^(2+2+2+2+3)=2048。setNfft用来设置采样数据长度,这里定义10,表示1024个采样点,也就是2的10次方。原创 2021-11-18 21:09:14 · 2292 阅读 · 1 评论 -
FPGA如何处理浮点运算
FPGA开发遇到碰到浮点数处理,使用浮点数运算IP(Floating-point),这个IP为AXI接口,输入和输出都是IEEE 754格式,就是计算机表示浮点数的格式。配置如图所示:浮点数相乘例化:floating_point_mul mul_vx_time( .aclk(clk_out1), // input wire aclk .s_axis_a_tvalid(s_axis_a_tvalid_v1),// input wire s_axis_a_tvalid);原创 2021-12-09 08:45:00 · 2934 阅读 · 0 评论 -
vivado修改下载器下载速率
直接先从vivado中将bit流下载进FPGA或者在sdk里program fpga。在sdk项目右右键Debug as选择Debug Configurations,最后一项System Debugger把programfpga勾选上,这样在启动时就会先把比特流加载进去。Open New Target或者Auto Connect。Error while launching program:fpga configuration failed. DONE PIN is not HIGH原创 2022-05-06 22:10:06 · 10807 阅读 · 0 评论 -
ZYNQ microblaze boot.bin固化步骤
一,ZYNQ移植软核的原理FPGA规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在开发应用程序的时候就不用直接去写驱动物理硬件的代码,而是直接调用Windows提供的API就行了。原创 2021-06-05 19:21:25 · 2202 阅读 · 0 评论 -
hls图像处理相关操作
在edge_detector(ustream_t &src, ustream_t &dst, unsigned char threshold)函数中,threshold为将结果二值化的配置,为 0 时不进行二值化,其它值时为二值化的阀值。首选将RGB图像转换为灰度图grayimg,讲grayimg分成两份split0、split1分别进行水平和垂直方向的卷积运算,得到sobelImg_x和sobelImg_y,将它们叠加为sobelImg,然后将其二值化,转为RGB输出。2,hls ip核代码。原创 2020-08-21 15:34:20 · 5171 阅读 · 1 评论 -
ZYNQ系列PL配置加载流程
一,FPGA配置引脚说明1,配置相关电源如果VCCO0连接至2.5V或3.3V,CFGBVS连接至VCCO0。如果VCCO0连接至1.5V或1.8V,CFGBVS连接至GND。建议bank0、bank14、bank15的VCCO电压一致,避免出现I/O Transition at the End of Startup 2,配置流程 二,FPGA开启启动加载的方式 1,上电自动加载:就是在FPGA完成上电初始化完成后,由FPGA主导从外部存储器读取位流,此时CCLK为输出;或者由其它主控制器来主导从外部原创 2022-04-25 00:03:34 · 10803 阅读 · 5 评论 -
hls浮点协处理
在应用中如果出现需要进行大量浮点或其它类型数据运算的情况,此时占用大量CPU时间,如果将这类算法放到FPGA,CPU只需要发起请求和读取结果,将缩短时间。这里的hls ip模块由CPU指定float类型数据存放地址和数据长度,求求它们的平均值。计算完成后通过中断方式通知CPU。原创 2021-04-07 19:17:24 · 3616 阅读 · 0 评论 -
FPGA 使用PCIE高速接口
这篇文章主要针对Xilinx家V6和K7两个系列的PFGA,在Linux和Windows两种系统平台下,基于Xilinx的参考案例XAPP1052的基础上,设计实现了总线主控DMA(Bus Master DMA),透明映像内存空间和中断机制,在实际工程实践中得到了良好的应用,主要应用在光纤PCIe数据采集卡、FPGA加速卡、存储子系统等所有需要和主机进行高速数据交互的场所...原创 2020-06-04 09:43:50 · 4095 阅读 · 0 评论 -
vivado 2017.4和vitis2019.2安装步骤
xilinx官网下载地址为:https://www.xilinx.com/support/download.html下载完解压后,如图所示进入Xilinx_Vivado_SDK_2017.4_1216_1,双击xsetup开始安装windows安装Vitis 软件vivado2019.2下载链接:连接开发板和下载器,使用“Open Hardware Manager”测试,正常情况下可以发现芯片,说明 Vivado 和下载器驱动安装成功原创 2020-08-11 00:16:25 · 17817 阅读 · 4 评论 -
VIVADO TCL语法编译生成IP核或block design工程
对tcl来说,它要处理的数据只有一种字符串。(3)打开hdl-2018_r1\projects\adv7511\zed\adv7511_zed.sdk\hdmi\src目录,把下载好的测试程序文件Xilinx\zedboard\no-OS-master\no-OS-master\adv7511\zed目录下的所有文件拷贝过来。语句运行的时候首先分组(分组有三种方法:空格,双引号和花括号),然后替换($的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点),最后运行。原创 2020-10-11 15:13:38 · 1628 阅读 · 1 评论 -
vivado 使用DocNav查xilinx资料
vivado 使用DocNav查xilinx资料docnav全称Xilinx Documentation Navigator ,在搜索栏直接输入docnav便可以打开。1,输入要查的ip核资料4,打开所查询的IP内容资料DocNav DocNav DocNav DocNav原创 2021-04-06 11:38:25 · 1745 阅读 · 1 评论 -
FPGA开发流程synthesis和implementatin的作用
一,FPGA开发流程1,FPGA全程Field-Programmable Gate Array,翻译成中文就是现场可编程门阵列。可重复编程的基础是拥有巨量的可配置逻辑块(CLB)、丰富的布线资源以及其他资源。2, 与软件开发有输入、编译、链接、执行步骤对应的就是设计输入、综合、布局布线、下载烧写。有些步骤由于其在当前项目中条件的宽度允许,可以直接免去,比如静态仿真过程,这样来达到项目时间上的优势。大部分的流程步骤还是需要我们循规蹈矩的去做,因为这些步骤的输入是上一个步骤的结果,输出是下一个步骤的原创 2021-12-09 02:43:42 · 3992 阅读 · 0 评论 -
ZYNQ AX58100 etherCAT从站接口
当数据通过网络中的每个节点时,从设备读取帧并向其添加数据,同时检查是否有另一个从设备进一步位于流的下游。换句话说,EtherCAT主站无需为网络中的每个从站创建新的软件包,从而节省了时间并消除了对集中式I/O的需求。诸 SOEM(简易开放式 EtherCAT 主站)开放式EtherCAT主站,除了标准的以太网设备之外,EtherCAT 从站可以在非常紧凑的时间要求下即时处理帧,它们读取数据并将它们自己的信息添加到同一帧。简单的从设备不需要额外的微控制器,而 更复杂的设备需要处理器来处理协议和应用程序代码。原创 2021-08-09 02:51:52 · 2008 阅读 · 0 评论 -
ZYNQ linux下搭建webserver服务
创建日志文件所在目录/var/log_boa,创建HTML文档的主目录/var/www,创建CGI脚本所在目录/var/www/cgi-bin/,在/var/www中放置一个index.html文件。上述目录若不存在,均需手动创建,这些都是boa运行需要的目录。将生成的boa可执行程序(在/src目录下)拷贝到开发板的/bin目录下,在开发板/etc目录下建boa目录,将boa.conf拷贝到板子的/etc/boa目录。修改为:ScriptAlias /cgi-bin/ /var/www/cgi-bin/原创 2022-05-15 00:20:10 · 1287 阅读 · 0 评论 -
ZYNQ linux调试LCD7789
LVGL是一个开源的图形库,主要用于MCU上屏幕UI的部署,功能完善,封装合理,可裁切性强,也可以实现Linux上fbx的部署。// 兼容性字符串,表示兼容milianke,spidev。// 兼容性字符串,表示兼容milianke,spidev。4,由于设备树不好操作和验证,重新更换SPI接口,axi quad spi->emio spi。结果:编译的启动文件和之前一样,GPIO[0]低,GPIO1[1]高,GPIO[2]-GPIO[5]低。// SPI模式为0(模式0,时钟极性为0,时钟相位为0),原创 2023-10-23 22:00:39 · 630 阅读 · 0 评论 -
烧写pynq镜像到sd卡和yocto环境搭建
PYNQ将ARM处理器与FPGA器件的底层交互逻辑完全封装起来,顶层封装使用python,只需要import对应的模块名称即可导入对应的硬件模块,即可进行底层到上层数据的交互或者为系统提供硬件加速。此处我们选择的 SD卡设备和PYNQ镜像文件:确保选择的 Micro SD 卡里面没有重要的文件,或已做备份。解压缩后运行win32diskimager-1.0.0-install.exe,进入安装界面,勾选“I accept the agreement”并单击“Next ”按钮。由于PYNQ镜像较大会较慢。原创 2023-08-14 07:00:00 · 407 阅读 · 0 评论 -
zynq usb按键裸机和系统下的读写操作
为此,USB OTG应运而生,OTG 是 On-The-Go的缩写,支持 USB OTG 功能的 USB 接口既可以做 HOST,也可以做 DEVICE。USB 是串行通信,需要一位一位的去传输数据, USB传输的时候先将原始数据进行打包,所以 USB 中传输的基本单元就是数据包。主机模式(Host Mode):譬如电脑的 USB 接口可以外接键盘、鼠标、U 盘等等 USB 设备,那么此时电脑的 USB 接口就是工作在主机模式下,与 USB 从机设备进行通信。原创 2020-07-21 10:44:50 · 638 阅读 · 1 评论 -
ZYNQ硬件复位管脚和软件看门狗复位
出于安全考虑,系统重置会删除PS中的所有内存内容,包括OCM,PL也在系统复位中复位,系统复位不会重新采样引导模式分配引脚。答:POR是必须有的,不然只能掉电复位,POR都是画上的。PS_SRST_B(External System Reset)功能和POR类似,主要用于系统软件调试过程,上电复位删除所有调试配置,外部系统复位允许用户复位设备内的所有功能逻辑,而不干扰调试环境。2,none POR复位,并不会复位所有的寄存器,可以通过PSSRST_B管脚,或者系统内部复位,如看门狗复位。原创 2023-08-11 00:22:46 · 1367 阅读 · 0 评论 -
xilinx zynq ps端移植vxworks6.9系统
基于a board support package,选择xlnx_zynq7k BSP,编译工具链选择diab,勾选Enable WDB Target Agent,选择next下一步,VxWorks Image Project Multipage Wizard就配置完成。从the New VxWorks Image Project中,profile选择PROFILE_DEVELOPMENT,单击finish。project中选择open development shell打开vxworks脚本编译窗口。原创 2023-05-30 08:30:00 · 4245 阅读 · 5 评论 -
基于AXI4_LITE的PS与PL的交互专题
1. PS端采用AXI_GP接口,且 PS 端为主机,PL为从机,PS与PL中间传输数据的总线为 AXI4_Lite。2. PS端有4个AXI_GP接口,其实两个PS为主机,PL为从机;另外两个,PS为从机,PL为主机。3. PL端的模块相对于PS就是一个外设。PL 既然是外设,那么 PS 端就有对应的地址和寄存器。① 其中 0x4300_0000 为起始地址,又称之为 基地址;0x4300_FFFF 为结束地址。基地址可以理解为PL端模块的ID号。② 第二个地址为 0x4300_0004,原创 2022-08-12 11:30:00 · 1387 阅读 · 0 评论 -
ZYNQ sdk lwip配置UDP组播收发数据
XEmacPs_SetOptions 函数中添加选项‐——“ XEMACPS_PROMISC_OPTION”至此,组播功能应该可以实现了。新建lwip echo server例程,在bsp环境中加入system.mss->modify BSP’s Settings。5,配置多端口的组播接收或发送,最多可以开启16路不同的端口号接收和16路不同的端口号发送。勾选PS网口或者PL网口的配置,并导入SDK,新建lwip例程库,能ping通。1,vivado搭建。原创 2023-05-22 08:45:00 · 2437 阅读 · 2 评论 -
制作四个文件启动的镜像
将/home/geyuxi/subomb_system/ZYNQ_SUBOMB/linux/dts文件夹下生成的pcw.dtsi,pl.dtsi,system-top.dts 以及 zynq-7000.dtsi 四个文件拷贝到 u-Boot 源码目录。这里安装的路径放在了/home/geyuxi/opt/pkg/xsdk/SDK/2018.3/中,导入交叉编译器就输入source /home/geyuxi/opt/pkg/xsdk/SDK/2018.3/settings64.sh。原创 2023-04-17 09:00:00 · 555 阅读 · 0 评论 -
没有flash启动板子的固化调试步骤记录
综上综下说明,除了flash启动完全失效外,这时候SD硬件和EMMC硬件冲突了的,之前SD能启动完全是因为EMMC勾选错误,但是同时需要的话,两者就都不能用,都启动不起来。2,切为FLASH启动,偏移地址无论写多少,合并与否,vivado烧录进去,要么报错,要么报如下的警告,结果就是板子上电毫无反应,各种情况都说明板子FLASH启动时不正常的,这已经不是文件大小超不超的事情,是最简单的纯flash从来都没有启动过。7,这是用2018启动以后,烧写2022编译的程序BOOT.BIN+SRC,报错如下。原创 2023-03-20 08:45:00 · 1009 阅读 · 0 评论