请选择 进入手机版 | 继续访问电脑版

risc-v中文社区

 找回密码
 立即注册
查看: 1716|回复: 0

[经验] MicroBlaze访问Zynq-7000的OCM

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2022-4-7 14:10:38 | 显示全部楼层 |阅读模式
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寄存器。
  1.     /*
  2.     Register (slcr) OCM_CFG
  3.     Absolute Address 0xF8000910
  4.     */
  5.     xil_printf("Original OCM_CFG: 0x%08x\r\n", Xil_In32(0xF8000910) );
  6.         Xil_Out32(SLCR_UNLOCK, SLCR_UNLOCK_VAL);
  7.         Xil_Out32(0xF8000910, 0x1f);
  8.         Xil_Out32(SLCR_LOCK, SLCR_LOCK_VAL);
  9.     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 ... source-sharing.html

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-3-29 18:36 , Processed in 0.015341 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表