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博客

中断:利用GPIO中断实现的I2C温度显示器-CSDN博客

软中断:

中断:AMP 软中断的过程和GPIO中断差别-CSDN博客

硬中断:

中断:PL硬中断,基地址,优先级。_xscugic_setpritrigtypebydistaddr-CSDN博客

Uart中断:

中断:Zynq Uart中断的流程和例程~UG585的CH.19_zynq uart串口中断通信ps-CSDN博客

Zynq Uart中的事件-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

TCP/IP LWIP FPGA 笔记-CSDN博客

上位机建立TCP/IP连接:Matlab实现-CSDN博客

 

查BUG:

 Vitis IDE 2021.1 custom AXI IP core compile error (xilinx.com)

posted @ 2024-02-04 20:33  NoNounknow  阅读(108)  评论(0)    收藏  举报