ZYNQ笔记
Zynq的启动顺序
我和AMP写在了一起,因为这两个息息相关。
1.BootRom启动基本程序;
1.5.从各个设备中搜索可加载的程序;
2.从FSBL中加载程序,完成PL的配置等;
3.加载PS程序;
正常的JTAG启动的是安全模式。
ZYNQ的程序固化~AMP跑双核_zynq amp固化-CSDN博客
PS和PL的互联
一些细节:
GP Lite口:32位位宽无突发的接口,低速信号从这里走,常用的操作:
1.配置寄存器用来操作某些东西,通过PS端输入参数方便解包(PL解包好麻烦);
1.1 I2C配置5640的寄存器,某些温度传感器,
1.2 Uart打印信息,接收数据解包,发送或接受中断;
1.3 通过GPIO完成写完数据的通知,释放脉冲等(写完一帧图像发一次脉冲作为场同步信号);
1.4 SPI配置寄存器;
2. 开发思想:多看XILINX的官方demo,可以抄很多,不抄网上其他地方资料很少,自己看可以但是有例子更适合学习;
3. arm通过axi lite接口访问pl寄存器列表建立缓存区:使用Axi Lite接口访问寄存器列表作为缓冲区_两个参数共用axi lite中一个寄存器-CSDN博客
使用Axi Lite接口访问寄存器列表作为缓冲区_两个参数共用axi lite中一个寄存器-CSDN博客
HP口:64位位宽的AXI4协议接口,通过Zynq Fclk输出时钟操作的话,7系列可以做到150M,200M会报很多时序错误
1. 我个人用来传视频,就当作普通的AXI接口用就行了,AXI interconnect 在其他家的产品里没有,需要自写仲裁;
ACP口:操作时序和HP口一模一样,仅Awcache参数需要修改:4'b0010-4'b0011;
内存映射
开发的时候在PL里分配好地址以后,记得在Vitis SDK里分配C程序的起始位置,不然后写入的数据可能会覆盖程序所在的空间。
中断:
中断:Zynq Uart中断的流程和例程~UG585的CH.19_zynq uart串口中断通信ps-CSDN博客
GPIO 中断:
PS端GPIO配置和基本介绍_versal gpio-CSDN博客
中断:ZYNQ GPIO_callbackref is the upper layer callback reference -CSDN博客
软中断:
硬中断:
中断:PL硬中断,基地址,优先级。_xscugic_setpritrigtypebydistaddr-CSDN博客
Uart中断:
中断:Zynq Uart中断的流程和例程~UG585的CH.19_zynq uart串口中断通信ps-CSDN博客
AMP
ZYNQ的程序固化~AMP跑双核_zynq boot固化-CSDN博客
Zynq双核通信和中断小结_zynq的双核中断冲突-CSDN博客
Zynq中断与AMP~双核串口环回之通过BRAM实现PS与PL通信_zynq amp bram-CSDN博客
SPI:
Zynq SPI_xspips_setslaveselect-CSDN博客
FAT32:
将文件以指定格式存储~BMP~C的实现~FAT32格式_fatfs系统存储bmp图片-CSDN博客
LWIP:TCP/IP
查BUG:
Vitis IDE 2021.1 custom AXI IP core compile error (xilinx.com)

浙公网安备 33010602011771号