/* USER CODE BEGIN 0 */
/* Includes ------------------------------------------------------------------*/
#include "bsp_driver_sd.h"
+#include "sd.h"
/* Extern variables ---------------------------------------------------------*/
{
while (HAL_SD_GetState(&hsd) == HAL_SD_STATE_BUSY) {}
- HAL_SD_CardStateTypeDef cardState = HAL_SD_GetCardState(&hsd);
- while (cardState == HAL_SD_CARD_PROGRAMMING)
- {
- // Wait while the SD card is writing buffer to flash
- // The card may remain in the RECEIVING state (even though it's programming) if
- // it has buffer space to receive more data available.
-
- cardState = HAL_SD_GetCardState(&hsd);
- }
+ // Wait while the SD card has no buffer space
+ while (sdIsBusy()) {}
HAL_SD_WriteBlocks_Data(&hsd, pData + (i * 512));
}
SD_state = MSD_OK;
}
+ // Wait while the SD card is in the PROGRAMMING state.
+ while (sdIsBusy()) {}
+
HAL_SD_CardStateTypeDef cardState = HAL_SD_GetCardState(&hsd);
while (cardState == HAL_SD_CARD_PROGRAMMING || cardState == HAL_SD_CARD_RECEIVING)
{
{\r
// Wait while keeping BSY.\r
}\r
- }\r
+ }\r
\r
HAL_SD_CardStateTypeDef cardState = HAL_SD_GetCardState(&hsd);\r
while (cardState == HAL_SD_CARD_PROGRAMMING || cardState == HAL_SD_CARD_SENDING) \r
{\r
cardState = HAL_SD_GetCardState(&hsd);\r
- }\r
+ }\r
\r
// We've finished transferring the data to the FPGA, now wait until it's\r
// written to he SCSI bus.\r
while (j < sectors && !scsiDev.resetFlag)\r
{\r
if (sdActive &&\r
- HAL_SD_GetState(&hsd) != HAL_SD_STATE_BUSY)\r
+ HAL_SD_GetState(&hsd) != HAL_SD_STATE_BUSY &&\r
+ !sdIsBusy())\r
{\r
- HAL_SD_CardStateTypeDef tmpCardState = HAL_SD_GetCardState(&hsd);\r
- if (tmpCardState != HAL_SD_CARD_PROGRAMMING)\r
- {\r
- j += sdActive;\r
- sdActive = 0;\r
- }\r
+ j += sdActive;\r
+ sdActive = 0;\r
}\r
if (!sdActive && ((prep - j) > 0))\r
{\r
}\r
}\r
\r
- HAL_SD_CardStateTypeDef cardState = HAL_SD_GetCardState(&hsd);\r
- while ((cardState == HAL_SD_CARD_PROGRAMMING || cardState == HAL_SD_CARD_RECEIVING) &&\r
+ while (sdIsBusy() &&\r
s2s_elapsedTime_ms(dmaFinishTime) < 180)\r
{\r
// Wait while the SD card is writing buffer to flash\r
// The card may remain in the RECEIVING state (even though it's programming) if\r
// it has buffer space to receive more data available.\r
- cardState = HAL_SD_GetCardState(&hsd);\r
}\r
\r
if (!disconnected && \r
clearBSY = process_MessageIn(0); // Will go to BUS_FREE state but keep BSY asserted.\r
}\r
\r
- cardState = HAL_SD_GetCardState(&hsd);\r
+ // Wait while the SD card is writing buffer to flash\r
+ // The card may remain in the RECEIVING state (even though it's programming) if\r
+ // it has buffer space to receive more data available.\r
+ while (sdIsBusy()) {}\r
+ HAL_SD_CardStateTypeDef cardState = HAL_SD_GetCardState(&hsd);\r
while (cardState == HAL_SD_CARD_PROGRAMMING || cardState == HAL_SD_CARD_RECEIVING) \r
{\r
// Wait while the SD card is writing buffer to flash\r