参考链接
ZYNQ Ultrascale+ Howto reset the PL
代码实现
Xilinx官方提供了对pl复位的函数,该函数位于[platform project]/zynqmp_fsbl/psu_init.c: unsigned long psu_ps_pl_reset_config_data(void),下面函数为对官方函数的简化,在PS端执行pl_resetn()函数即可控制MPSOC IP核的pl_resetn引脚(引脚位置见下图)对PL端进行复位。
void pl_resetn(){ //调用该函数会将mpsoc的pl_resetn0引脚输出0后置1,即低电平复位
Xil_Out32(0XFF0A0054, 0x00000000U);
usleep(1);
Xil_Out32(0XFF0A0054, 0x80000000U);
}