修改时间 11-10-2020 05:39 PM
Xilinx 的 各位老师你们好,我这边基于XC7Z100这个片子做了一个自己的电路板,PL部分工作完全正常,但是PS部分不工作。
具体现象是我在vitis 新建Hello world 的 例程,在build 之后,执行 run as -> launch on Hardware 的时候,系统提示:
Error while launching program: Memory write error at 0x100000. APB Memory access port is disabled Memory write error at 0x100000. APB Memory access port is disabled
当试图执行reset的时候会提示:
Error while launching program:
Cannot reset APU. AP transaction error, DAP status 0xF0000021
Cannot reset APU. AP transaction error, DAP status 0xF0000021
我检查了PS端的电压,都是正常的,检查了时钟,也基本是33.333MHz的时钟,同时PL端工作是完全正常的。PS_SRST_B 这个信号我直接拉高了,PS_POR_B信号是由一个看门狗芯片产生以满足上电时序(但是不能保证下电顺序),求教各位老师指点迷津啊。。
11-11-2020 09:47 AM - 编辑日期 11-11-2020 09:50 AM
你好 @niu_zun ,
由于是自定义板卡,一般来说这类问题和底层Zynq core配置有关系。
1. 你需要检查一下Zynq core中的PS时钟和PCB上晶振时钟频率是否相同
2. 排除一下DDR配置的问题,新建一个简单的hello world工程,修改linkscript,将程序的代码段数据段等都放到OCM上跑,不使用DDR
另外PS_SRST_B外部的系统复位,一般用作调试,可以通过连接按键来控制复位,不使用的话可以直接拉高到VCCO_MIO1
11-11-2020 09:47 AM - 编辑日期 11-11-2020 09:50 AM
你好 @niu_zun ,
由于是自定义板卡,一般来说这类问题和底层Zynq core配置有关系。
1. 你需要检查一下Zynq core中的PS时钟和PCB上晶振时钟频率是否相同
2. 排除一下DDR配置的问题,新建一个简单的hello world工程,修改linkscript,将程序的代码段数据段等都放到OCM上跑,不使用DDR
另外PS_SRST_B外部的系统复位,一般用作调试,可以通过连接按键来控制复位,不使用的话可以直接拉高到VCCO_MIO1
修改时间 11-11-2020 10:38 AM
@niu_zun 你好,
debug顺序可以按照:
PS侧电源-->DDR硬件设计是否存在问题-->PS侧配置信息与实际电路是否匹配这几个方向先看一下,另外就是确认下reset信号的极性。
从这个报错来看像是读取DDR空间出错,导致读取不到运行程序导致的