基于xilinx zcu102开发板
我用的开发板的xilinx zcu102开发板,使用xilinx公司提供的petalinux工具制作linux系统。当linux系统加载之后发现,无论如何都不能关闭pcap功能。关闭pcap需要往CSU_PCAP_CTRL寄存器写0才可以。但是在linux系统下无论如何都无法写入0到此寄存器。
后来发现,启动文件BOOT.BIN中包含三个文件分别是fsbl文件、bit文件、uboot文件,而fsbl用以初始化平台,我一直用的是petalinux工具自动生成的,所以导致我无法修改CSU_PCAP_CTRL寄存器。因此使用xilinx sdk软件,生成fsbl文件,在其中的xfsbl_hooks.c文件下,在u32 XFsbl_HookAfterBSDownload()函数中,增加一句XFsbl_Out32(0xffca3008, 0);这样在bit文件加载之后,就自动将CSU_PCAP_CTRL寄存器清零了,这样就关闭了PCAP,可以开心的使用ICAP核实现部分重构功能啦!