snikeguo opened a new pull request, #16464:
URL: https://github.com/apache/nuttx/pull/16464

   *Note: Please adhere to [Contributing 
Guidelines](https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md).*
   
   ## Summary
   
   Add DMA Alignment Component and Integrate It into the MMC Driver
   
   ## Impact
   
   I believe DMA management should be handled by device drivers, not by the FAT 
layer. For more details, see: 
@apache/nuttxhttps://github.com/apache/nuttx/issues/16415
   during MMC/TF card enumeration, DMA should not be used because the data 
volume is only a few bytes. Linux is also designed this way.
   
   ## Testing
   MMC Write Logic:
   
   mmcsd_writemultiple() { .... mmcsd_transferready(); ... SDIO_DMASENDSETUP(); 
}
   
   In the current code 
(https://github.com/apache/nuttx/commit/b05ec7729d9b7fe85a6f11bfbb2da979255f44b7),
 I found that after writing multiple sectors, when sending ACMD51 and then 
querying R1, the error rate is very high.
   test code:
   
    int r1_error_cnt=0;
   mmcsd_transferready()
   {
     ...
      ret = mmcsd_get_r1(priv, &r1);
          if (ret != OK)
            {
              ferr("ERROR: mmcsd_get_r1 failed: %d\n", ret);
              return ret;
            }
          /* Now check if the card is in the expected transfer state. */
    
          if (IS_STATE(r1, MMCSD_R1_STATE_TRAN))
            {
              /* Yes.. return Success */
    
              priv->wrbusy = false;
              return OK;
            }
            extern int wm_called;
            if(wm_called)
            {
              r1_error_cnt++;
            }
   }
   
   
   
![image](https://github.com/user-attachments/assets/18a11527-7c68-4645-aec8-ef289657ba8e)
   With my code, the test results show no errors.
   
![image](https://github.com/user-attachments/assets/9732333a-5e22-463d-b8b8-a6672e155ed9)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to