参考ZYNQ7000UG585 在进行对FCLKRESET0N的对应寄存器写数据之前应该把写保护模式关闭,然后再将数据写入FCLKRESET0N的寄存器中,这样才能有效实现想要的功能。最后不要忘记再将写保护模式开启。 对应的开启和关闭写保护的寄存器地址以及FCLKRESET0N的寄存器地址,在UG585文档中都有相应的描述。它分别对应的寄存器名称为:SCLRLOCK(寄存器地址为0xF8000004),SCLRUNLOCK(寄存器地址为0xF8000008)和FPGARSTCTRL(寄存器地址为0xF8000240)。 通过FCLKRESET0N这个PS的端口直接复位PL(1才复位)。这个FCLKRESET0N在PS中对应的寄 存器是0xF8000240的bit0,但在操作这个寄存器之前需要解锁SLCRUNLOCK,所以代码如下: SDK下XilOut32(0xF8000008,0X0DF0D);SLCRUNLOCKKEYXilOut32(0xF8000240,1);发出FCLKRESET0N1XilOut32(0xF8000240,0);发出FCLKRESET0N0XilOut32(0xF8000004,0x0767B);SCLRLOCKKEY Linux下devmem0xf8000008320x0DF0Ddevmem0xf8000240321devmem0xf8000240320devmem0xf8000004320x0767B