作者:付汉杰,hankf@xilinx.com,文章转载自:赛灵思中文社区论坛
1. MicroBlaze AXI访问返回DECODE1C
在ZC702单板上,MicroBlaze通过IC/DC端口连接到PS S_AXI_GP0,MicroBlaze读取OCM,得到值DECODE1C。
DECODE1C is returned by the AXI Interconnect if it doesn't know how to route a requested AXI transaction.
MicroBlaze改为通过DP端口连接到PS S_AXI_GP0,再读取OCM,正常。
2. OCM映射到高地址
Zynq-7000的OCM缺省部分映射到0地址,部分映射到0xFFFF0000。如果要把OCM全部映射到高地址,需要配置OCM_CFG寄存器。MicroBlaze不能访问OCM_CFG寄存器,一定要在A9里访问OCM_CFG寄存器。
/*
Register (slcr) OCM_CFG
Absolute Address 0xF8000910
*/
xil_printf("Original OCM_CFG: 0x%08x\r\n", Xil_In32(0xF8000910) );
Xil_Out32(SLCR_UNLOCK, SLCR_UNLOCK_VAL);
Xil_Out32(0xF8000910, 0x1f);
Xil_Out32(SLCR_LOCK, SLCR_LOCK_VAL);
xil_printf("Updated OCM_CFG: 0x%08x\r\n", Xil_In32(0xF8000910) );
3. 参考文章
https://www.xilinx.com/support/answers/71416.html
https://www.xilinx.com/video/soc/zynq-microblaze-iop-ocm-memory-resourc…
ZYNQ
Zynq是Xilinx公司推出的一系列SoC(System-on-Chip)产品家族,它将传统的FPGA(可编程逻辑器件)与嵌入式处理器相结合,形成了一种集成了硬件和软件处理能力的单一芯片解决方案。Zynq的设计目标是提供更高的性能和灵活性,同时减少系统的功耗和复杂性。
Zynq广泛应用于嵌入式系统设计、通信、图像处理、工业控制、汽车电子等领域,因为它提供了更好的性能和灵活性,同时减小了系统的体积和功耗。