
zynq
文章平均质量分 72
lrmlrm
纯野生嵌入式程序猿
展开
-
关于xilinx zynq petalinux 使用32MB(W25Q256)的SPI FLSH无法正常读写16M以上内存的BUG的调试过程
xilinx zynq petalinux 使用32MB(W25Q256)的SPI FLSH无法正常读写16M以上内存的BUG原创 2023-04-04 15:28:16 · 2859 阅读 · 8 评论 -
记录一下如何直接修改zynq petalinux编译出来的rootfs.cpio.gz文件内容
不用重新编译,修改petalinux的rootfs.cpio.gz文件并重新打包成image.ub和BOOT.BIN原创 2023-04-04 14:39:32 · 1774 阅读 · 0 评论 -
骚操作,尝试使用Xilinx XVC协议,通过Jlink来下载调试Xilink zynq FPGA芯片
最近一直在玩zynq芯片,手头使用的Xilinx Platform USB Cable 下载线真是辣鸡,速度慢如蜗牛,每次下载bit文件或者烧写flash文件都要大半天,实在是难以忍受。逻辑分析仪看了下xilinx的下载线,速度只有6.25M,并且数据间隔非常大,不懂这线的开发者咋想的,这总线利用率真是低到爆了上图为xilinx DLC 10下载线波形,惨不忍睹!为了不浪费生命在下载等待时间上,我打算找找看有没有别的仿真调试选择。经过一番查找后发现Xilinx的仿真器好像选择不是很多,要么贵死要原创 2022-04-06 10:53:12 · 9410 阅读 · 12 评论 -
zynq petalinux AMP双核运行linux+ucos(或者裸机)之间进行 IPI 软中断通讯的实现
前几天试验了xilinx官方remotporc AMP程序,运行是运行起来了,但是感觉太复杂了,我只想要一个能启动停止cpu1,能在两个cpu之间方便通讯的功能就行了,看着remotproc框架一堆的代码,编译出来的elf文件体积还超级大心里就非常不爽,想着干脆自己实现一个简单处理驱动程序算了,so...经过几天的痛苦研究,也算完整实现了想要的功能由于linux应用程序不能处理硬件中断,因此这个IPI通讯只能在驱动层进行处理,所以第一步,要编写一个驱动程序,实现cpu1的bin(不是elf)文件加载,控原创 2021-04-14 17:40:32 · 4052 阅读 · 13 评论 -
关于zynq petalinux 2020.2版本交叉编译环境工具链的搭建和使用备忘
用过xilinx zynq petalinux的人都知道petalinux编译一次非常慢,即使下载了sstate和download包之后编译还是很慢很慢,真是让人难以接受了。。。。so....经过我一番艰苦研究之后终于弄明白了如何使用petalinux生成的sdk来编译自己的驱动程序,步骤如下:第一步:vivado搭建硬件环境,编译出xsa,在petalinux下创建工程,按照官方指导步骤最后 petalinux-build 编译一次生成整个linux工程第二步:使用petalinux-buil原创 2021-04-14 17:09:59 · 10470 阅读 · 17 评论 -
关于 在zynq双核AMP 运行linux+ucos,echo_test,remoteproc程序提示use vmalloc=<size> to increase size内存不足的BUG 问题分析
最近在调试zynq7010 上双核运行linux和ucos的程序,经过仔细阅读官方UG1186后测试是可以跑起来了,但是有个严重问题,就是当我反复使用echo start > /sys/class/remoteproc/remoteproc0/stateecho stop > /sys/class/remoteproc/remoteproc0/state这两条命令去反复停止和重启remoteproc cpu2的程序时会内核oops崩溃,提示vmap allocation f.原创 2021-04-02 10:11:19 · 3178 阅读 · 3 评论 -
解决Xilinx zynq vitis 2019.2 环境下添加ucos软件库时编译提示 XPLAT_VERSAL undeclared的问题
这两天尝试在zynq双核运行linux+ucos,在micrium官网下载Xilinx的SDK软件包后倒入到vitis编译时总是提示XPLAT_VERSAL undeclared这个错误,如下图检查错误位置,发现是gpiops文件内有几处判断使用到了XPLAT_VERSAL这个宏定义,但是仔细检查发现程序里面xplatform_info.h这个文件是有XPLAT_VERSAL这个定义的,只不过是XPLAT_versal,后面是小写而已,然后手动改为大写,或者直接在报错的文件内重新自定义一个相同的声.原创 2021-03-24 17:32:03 · 1263 阅读 · 0 评论 -
简单总结下ZYNQ 7000双核AMP运行时如何让CPU0动态加载启动运行CPU1
最近玩起了Xilinx的zynq 7000系列芯片,打算用znyq的双核A9独立运行两个程序,也就是所谓的AMP模式,需求是这样的,cpu0先运行,然后cpu0从外部媒介加载cpu1的代码到特定内存区域,然后cpu0唤醒cpu1,两个cpu同时干活,完了cpu0将cpu1复位停止,等待下一次需要cpu1工作时再重新加载cpu1运行,总的来说就是cpu0代码是固定的,cpu1代码是随时可变的。由于是新接触这个双核芯片,原先对它不太熟,一顿搜索之后大概了解了啥是AMP后就动手测试起了,不得不吐槽一下...原创 2021-03-22 10:41:31 · 5084 阅读 · 9 评论