#############################################################################################
【一些宏定义位置】:
新定义的IP,如AXI_TO_LED,的BASEADDR在 "xparameters.h"中;
读写寄存器函数:Xil_In32、Xil_Out8等在 "xil_io.h"中;
DDR_MEM_BASEADDR在 "xparameters_ps.h"中;
#############################################################################################
【EMIO及中断编号】:
ZCU102 EMIO从78开始,默认inout
中断从121开始,ug1085 page314
#############################################################################################
【Cache一致性】:
DMA传输时需考虑Cache一致性。
在裸机开发时,规避Cache最简单的方法就是禁用Cache。
#include "xil_cache.h"
void Xil_DCacheDisable(void);
“Flush就是把Cache里的数据流放出去,清空Cache,也就是将Cache的内容推到DDR中去;”
“而Cache Invalidate表示当场宣布Cache里的内容无效,需要从DDR中重新加载,即把数据从DDR中拉到Cache中来。”
Xil_DCacheFlushRange((u64)TxBuffer, sizeof(data));
Xil_DCacheInvalidateRange((INTPTR)(RxBuffer), RX_NUM);
SDK里添加memory看某地址ddr数据,可能看到的是cache的值?
#############################################################################################
【ZCU102串口】:
UART0只能选MIO18..19,
UART1只能选MIO20..21,因为ZCU102中硬件已经固定连上了;
UART0:在SDK里打开串口,选设备管理器里0,1,2,3中0对应的那个设备号。
(对应顺序可能不是递增;不是选单独那个,那是jtag用)
更新user_IP后,block_design里删掉重新添加一下(比如AWITH16改成17,图里还是16)
#############################################################################################
【Xilinx_ZYNQ官方例程位置】:
D:\Xilinx\SDK\2017.4\data\embeddedsw\XilinxProcessorIPLib\drivers\
#############################################################################################
【ZYNQ复位】:
mwr 0xFF0A0054 0x00000000
mwr 0xFF0A0054 0x80000000 //复位释放
#############################################################################################
【其他】:
【】如何定义一个128bit的变量,一次写到某个地址去?:①结构体②memcpy。
【】DMA_simple_rx时,实际值不足设定的RX_NUM,但是给了tlast,接收完成中断会提前有效。
【】PS配置PL:通过PCAP,从OCM里或者xx搞过去bit。
【】PL-PS中断信号位数怎么由1改为n?
设置完都是1位,连到一个n位的net上,(可能需要重新打开工程)点“validate design”,1改为n。
【】SDK定义初始化数组,最好放在main外;否则会影响其他函数(如DMA初始化)?
【】ARM程序最大能写多大?能否把数组开很大?
【】Cortex-A53:64位(地址线)?(数据线)?
#############################################################################################
【】