#define SLCR_UNLOCK_ADDR 0xF8000008 //SLCR_UNLOCK寄存器,绝对地址, #define UNLOCK_KEY 0xDF0D //使能码 #define PSS_RST_MASK 0x01 //复位码 void PsSoftwareReset(void) { Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //写使能 Xil_Out32(PSS_RST_CTRL_REG, PSS_RST_MASK); //复位 } #define...
#define SLCR_UNLOCK_ADDR 0xF8000008 //SLCR_UNLOCK寄存器,绝对地址, #define UNLOCK_KEY 0xDF0D //使能码 #define PSS_RST_MASK 0x01 //复位码 void PsSoftwareReset(void) { Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //写使能 Xil_Out32(PSS_RST_CTRL_REG, PSS_RST_MASK); //复位 } #define...
#define UNLOCK_KEY 0xDF0D //解锁码 #define LOCK_KEY 0x767B //加锁码 #define PL_RST_MASK 0x01//低四位对应FCLK_RESETN[3:0] #define PL_CLR_MASK 0x00 void PlSoftwareReset(void) { Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //解锁 Xil_Out32(FPGA_RST_CTRL, PL_RST_MASK); //复位...
RegisterSLCR_UNLOCK写入解锁密钥0xDF0D,以允许写入slcr寄存器。所有slcr寄存器0xF800_0000可以写入0xF800_0B74,直到使用锁定为止SLCR_LOCK寄存器。读该寄存器返回零。 Register PSS_RST_CTRL处理系统软件复位控制信号。 0:无影响 1:置位PS软件复位脉冲(整个系统时钟发生器除外)不需要写0,硬件每次写入1都会产生一个脉冲。
(StatusReg|SLCR_PCAP_CLK_CTRL_EN_MASK));Xil_Out32(SLCR_UNLOCK,SLCR_LOCK_VAL);}/** Disable the level-shifters from PS to PL.*/if(!PartialCfg){Xil_Out32(SLCR_UNLOCK,SLCR_UNLOCK_VAL);Xil_Out32(SLCR_LVL_SHFTR_EN,0xA);Xil_Out32(SLCR_LOCK,SLCR_LOCK_VAL);}/** Select PCAP ...
#define LOCK_KEY 0x767B //加锁码 #define PL_RST_MASK 0x01//低四位对应FCLK_RESETN[3:0] #define PL_CLR_MASK 0x00 void PlSoftwareReset(void) { Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //解锁 Xil_Out32(FPGA_RST_CTRL, PL_RST_MASK); //复位 ...
0xF800000C SLCR_LOCKSTA ro 0x00000001 SLCR锁定状态寄存器,读为0代表SLCR寄存器为可写状态,读为1代表SLCR为写保护状态 0x00000240 FPGA_RST_CTRL rw 0x01F33F0F 低4位分别为FCLK_RESET0~3的复位控制,写1为复位,写0为解复位FIFO转AXI-Stream模块寄存器定义基地址:0x60000000偏移...
write32(SLCR_LOCK_MAGIC, ZYNQ_SLCR + SLCR_LOCK);/* 写入0x760B,打开写锁定 */uiNum =1; } } ZYNQ7000的时钟频率设置的参数列表,如图 3.1所示。其中PLL_FDIV为PLL的倍频值,PLL CP、PLL RES、LOCK CNT为PLL的配置参数。 图3.1 PLL频率的参数设置列表...
然后main函数调用SlcrUnlock()解锁SLCR寄存器。在ug585 p114有关于SLCR寄存器的描述。 然后在main函数中可以定义宏FSBL_PERF,进行FSBL的性能测试,计算FSBL的运行时间。 调用Xil_DCacheFlush()函数清除D-Cache,调用Xil_DCacheDisable()函数关闭D-Cache。 调用RegisterHandlers()函数注册异常错误代码。在该函数中初始化向...
ZYNQ7000的ARM_PLL_CLK时钟频率修改的具体的代码实现如程序清单 2.1所示。不同平台的解除和锁定写锁定的方式可能不同,对于ZYNQ7000平台,需要写入0xDF0D到SLCR_UNLOCK寄存器解除写锁定,写入0x767B到SLCR_LOCK寄存器可以使相关寄存器的写操作无效。 程序清单21 ZYNQ7000的时钟频率修改代码 ...