| 本帖最后由 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, 下载次数: 156) 
 
 |