参考 ZYNQ7000 UG585
在进行对FCLK_RESET0_N的对应寄存器写数据之前应该把“写保护”模式关闭,然后再将数据写入FCLK_RESET0_N的寄存器中,这样才能有效实现想要的功能。最后不要忘记再将“写保护”模式开启。
对应的开启和关闭“写保护”的寄存器地址以及FCLK_RESET0_N的寄存器地址,在UG585文档中都有相应的描述。它分别对应的寄存器名称为:SCLR_LOCK(寄存器地址为0xF8000004),SCLR_UNLOCK(寄存器地址为0xF8000008)和FPGA_RST_CTRL(寄存器地址为0xF8000240)。
通过 FCLK_RESET0_N 这个PS的端口直接复位PL(1才复位)。这个 FCLK_RESET0_N在PS中对应的寄
存器是0xF8000240的bit0,但在操作这个寄存器之前需要解锁SLCR_UNLOCK,所以代码如下:
SDK下
Xil_Out32(0xF8000008,0X0DF0D); //SLCR_UNLOCK KEY
Xil_Out32(0xF8000240,1);//发出FCLK_RESET0_N=1
Xil_Out32(0xF8000240,0);//发出FCLK_RESET0_N=0
Xil_Out32(0xF8000004,0x0767B);//SCLR_LOCK KEY
Linux下
devmem 0xf8000008 32 0x0DF0D
devmem 0xf8000240 32 1
devmem 0xf8000240 32 0
devmem 0xf8000004 32 0x0767B
页面更新:2024-05-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号