microblaze与zynq共存情形(之七)‐‐只有这种情况mb可以读取higher_ocm - minichao9901/TangNano-20k-Zynq-7020 GitHub Wiki

测试:配置模式

基于之五,将HP0_HIGH_OCM换成GP0_LOW_OCM,这个时候,mb的Data全部都是GP0访问,没有HP0访问。mb的cache地址范围为0x10000000--0x1fffffff。目标是寻找寻找为什么ocm_higher_addr不能访问?

image image image

特点:mb的data总线全部是通过DP->GP0访问,不通过DC->HP0访问。

测试结果

mb+zynq,其中zynq程序为执行ocm_remap,mb执行打印和led点灯实验。
结果,通过修改ld地址:

  • 程序在ddr中运行,可以运行。打印ddr, ocm_lower_addr正常;打印ocm_hihger_addr正常。
  • 程序在local memory中运行,可以运行。打印ddr, ocm_lower_addr正常;打印ocm_hihger_addr正常。
  • 程序在ocm_higher_addr中运行,不能运行。
  • 程序在ocm_lower_addr中运行,可以运行。打印ddr, ocm_lower_addr正常;打印ocm_hihger_addr正常。

image

以上是ddr/local_memory/ocm_lower_addr中运行的结果。在ocm_higher_addr中不能运行,因此没有结果

总结:只有这种情况,mb才能读写ocm_higher_addr的结果,但不能执行程序。