-
Notifications
You must be signed in to change notification settings - Fork 0
AXI QSPI寄存器调试w25q64的XIP模式(进一步研究)
minichao9901 edited this page May 7, 2024
·
3 revisions
- 这个IP,在普通模式下,用的是模式0; 在XIP模式下,用的是模式3。这是逻辑分析仪解析出来的,很奇怪。
- 普通模式写,fifo深度最大是256(可配置为16或256),因此一次最多写入256 bytes。xip模式下,fifo深度不可以配,固定为64,也就是64bytes。
- xip模式下,不可以用cdma驱动。如果用cdma驱动,虽然接口处逻辑分析仪抓到的波形正确,但是数据写不到ram中去。
- xip模式下,可以按u8或者u32进行读。用for的方式读是可以的。
- xip模式下,4线eb读结果错误。1线和2线读正确。
- 因此,总结:需要用1线或者2线,以for的方式,按照u8/u32进行读。
void xip_for_read_test()
{
for(int i=0; i<64; i++){
*buffer8[i]=Xil_In8(QSPI_XIP_BASE+0x000000+i);
}
for(int i=0; i<64; i++){
*buffer32[i]=Xil_In32(QSPI_XIP_BASE+0x000000+4*i);
}
for(int i=0; i<64; i++){
printf("%x\r\n",*buffer8[i]);
}
for(int i=0; i<64; i++){
printf("%x\r\n",*buffer32[i]);
}
}
这种读最多只能读16个u32,也就是fifo深度是64。(如果读17个则报错,也就是说memory mapped一次只映射了16个u32地址,相当于是一个滑动的窗口)
这是是执行mrd 0x43c00000 16的效果。