QSPI阻塞问题定位
本帖最后由 ercircle 于 2024-11-21 22:55 编辑问题背景:
测试Ai8051U 实验箱例程包72.4例程,C51环境下
问题现象:
flash编程数据超过4Byte时阻塞在QSPI_WRITE_INSTR_SADDR24_SDATA函数QSPI_CheckTransfer循环中
定位过程:
简单粗暴加日志打印:
调试过程中发现,在以下代码段中添加打印或者加NOP(12)则不会阻塞
while (datalen)
{
QSPI_WriteData(*pdat); //写数据到FIFO中
pdat++;
datalen--;
//printf("FIFOLevel:%bd , 0x%02bx\n",QSPI_CheckFIFOLevel() ,QSPI_CheckFIFOLevel() );
//NOP(12);
}
为什么FIFO为空但是一直处于BUSY状态,不懂,发帖请教下,请大佬指点下,谢谢~
触发流程:
下载hex后,给串口助手发送以下flash编程报文触发:
41 49 43 F3 00 00 00 00 00 00 01 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
测试工程:
加延时虽然不阻塞了,但是从W25Q128回读的数据对不上。读取函数里加NOP没变化
测试报文:
写:
41 49 43 F3 00 00 00 00 00 00 01 00 46 41 54 00 00 00 00 0D 00 00 01 00 00 02 59 00 00 04 B1 00 00 07 09 00 00 09 61 00 00 0B B9 00 00 0E 11 00 00 10 69 00 00 12 C1 00 00 15 19 00 00 17 71 00 00 19 C9 00 00 1C 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
读:
41 49 43 F2 00 00 00 00 00 00 01 00
测试工程:
ercircle 发表于 2024-11-21 23:59
加延时虽然不阻塞了,但是从W25Q128回读的数据对不上。读取函数里加NOP没变化
2楼问题是没先发清除指令41 49 43 F5 00 00 00 00
只剩延时问题
传输8字节测试没有发现阻塞的问题
DebugLab 发表于 2024-11-26 12:31
传输8字节测试没有发现阻塞的问题
使用C251模式测试
建议使用C251模式 {:4_196:}{:4_196:}感谢超版回复
页:
[1]