版主好!
我使用的D213EC,用户手册上看到QSPI速度可以达到100MHz,通过例程实验时钟能接近100MHz,很好!可是我现在使用QSPI发送大量数据到外部的设备。CPU就被严重占用,虽然我现在已经使用DMA发送数据,但是CPU还是不能释放。查看qspi_master_transfer_dma_sync函数中的qspi_master_wait_dma_done函数才发现,cpu在这里时死循环,一直等到传输结束才能释放CPU。请问这个是为什么呢?我想尝试修改驱动,需要注意什么呢?
另外一个问题:在发送数据时QSPI总线输出的同步时钟,在发送多个字节(32或者64个)后时钟会有一段高电平的时间,猜测是等待fifo中的数据就绪。看手册fifo读写过半会有中断或者标志产生,为什么实际情况是每次都要fifo读空时,CPU或者是DMA才会给fifo补充数据呢?这个是因为对于外设获取DDR3内部数据时,芯片也有设优先级吗?重点是给cpu、显示模块、2D加速器使用的吗?
最近编辑记录 LB_YJY (昨天 19:23:37)
离线