SDIO驱动SD卡的写多块的问题
有个地方不是很明白,就是disk_write这里,写完之后为什么是调用SD_WaitReadOperation这个函数进行检查是否完成,而不是调用SD_WaitWriteOperation进行监测呢?驱动文件上写的是用SD_WaitWriteOperation。
*
* E - Programming Model (Selecting DMA for SDIO data Transfer)
* ============================================================
* Status = SD_Init(); // Initialization Step as described in section A
*
* // SDIO Interrupt ENABLE
* NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
* NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
* NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
* NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
* NVIC_Init(&NVIC_InitStructure);
* // DMA2 STREAMx Interrupt ENABLE
* NVIC_InitStructure.NVIC_IRQChannel = SD_SDIO_DMA_IRQn;
* NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
* NVIC_Init(&NVIC_InitStructure);
*
* // Write operation as described in Section C
* Status = SD_WriteBlock(buffer, address, 512);
* Status = SD_WaitWriteOperation();
* while(SD_GetStatus() != SD_TRANSFER_OK);
*
* Status = SD_WriteMultiBlocks(buffer, address, 512, NUMBEROFBLOCKS);
* Status = SD_WaitWriteOperation();
* while(SD_GetStatus() != SD_TRANSFER_OK);
这个问题提的好,这么多年一直在用读操作完成,竟然也工作这么多年了:L
eric2013 发表于 2019-7-16 20:40
这个问题提的好,这么多年一直在用读操作完成,竟然也工作这么多年了
可能是现在的sd卡的速度都很快了,那个等待函数其实没什么用处。。。等同于NOP()而已。 caicaptain2 发表于 2020-5-12 08:19
可能是现在的sd卡的速度都很快了,那个等待函数其实没什么用处。。。等同于NOP()而已。
跟快慢没关系,是大批量数据读写稳定性的保证。
太重要了,是相当重要。
这个非常重要
页:
[1]