本帖最后由 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
复制代码
测试工程:
qspiTestC51.7z
(1.2 MB, 下载次数: 43)
|