PS Reset PL
PS 可以输出4个独立的复位信号给PL,用于控制PL逻辑的复位。
如何控制呢?
裸机代码如下:
// assert FPGA Reset Signal
#define XSLCR_BASEADDR 0xF8000000U
#define XSLCR_LOCK_ADDR (XSLCR_BASEADDR + 0x00000004U)
#define XSLCR_UNLOCK_ADDR (XSLCR_BASEADDR + 0x00000008U)
#define XSLCR_FPGA_RST_CTRL_ADDR (XSLCR_BASEADDR + 0x00000240U)
/**< SLCR unlock code */
#define XSLCR_LOCK_CODE 0x0000767BU
#define XSLCR_UNLOCK_CODE 0x0000DF0DU
Xil_Out32(XSLCR_UNLOCK_ADDR, XSLCR_UNLOCK_CODE);
Xil_Out32(XSLCR_FPGA_RST_CTRL_ADDR, 0x0F);
// do stuff
// and release the FPGA Reset Signal
Xil_Out32(XSLCR_FPGA_RST_CTRL_ADDR, 0x00);
Xil_Out32(XSLCR_LOCK_ADDR, XSLCR_LOCK_CODE);
system level registers , write lock and unlock first, then access the register
XSLCR_FPGA_RST_CTRL_ADDR
如何在Linux中控制呢?
通过devmem 访问寄存器绝对地址即可,示例如下
devmem 0xf8000008 32 0xdf0d
标签:PS,ZYNQ7000,FPGA,XSLCR,Xil,FCLK,ADDR,PL,define From: https://www.cnblogs.com/xingce/p/18066474