sdio: fix missing SDIO IRQHandler
This commit is contained in:
parent
d100258029
commit
df9c5dbb96
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "Arduino.h"
|
||||
|
||||
static SDIOClass *_sdio_this;
|
||||
|
||||
//=============================================================================
|
||||
// Error function and macro.
|
||||
|
@ -96,6 +97,9 @@ uint8_t SDIOClass::begin() {
|
|||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
_sdio_this = this;
|
||||
|
||||
__HAL_RCC_SDIO_CLK_ENABLE();
|
||||
|
||||
stm32AfSDIO4BitInit(SDIO, NULL, 0, NULL, 0,
|
||||
|
@ -137,6 +141,9 @@ uint8_t SDIOClass::begin() {
|
|||
__HAL_LINKDMA(&hsd, hdmatx, hdma_sdio);
|
||||
__HAL_LINKDMA(&hsd, hdmarx, hdma_sdio);
|
||||
|
||||
HAL_NVIC_SetPriority(SDIO_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(SDIO_IRQn);
|
||||
|
||||
if (HAL_DMA_Init(&hdma_sdio) != HAL_OK) {
|
||||
return false;
|
||||
}
|
||||
|
@ -340,3 +347,6 @@ void SDIOClass::useDMA(bool useDMA){
|
|||
}
|
||||
|
||||
|
||||
extern "C" void SDIO_IRQHandler() {
|
||||
HAL_SD_IRQHandler(&(_sdio_this->hsd));
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#define SDIO_CmdInitTypeDef SDMMC_CmdInitTypeDef
|
||||
#define SDIO_SendCommand SDMMC_SendCommand
|
||||
#define SDIO_TypeDef SDMMC_TypeDef
|
||||
#define SDIO_IRQHandler SDMMC1_IRQHandler
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -105,9 +106,9 @@ class SDIOClass {
|
|||
uint32_t errorLine();
|
||||
void useDMA(bool useDMA);
|
||||
|
||||
SD_HandleTypeDef hsd;
|
||||
private:
|
||||
uint32_t cardStatus();
|
||||
SD_HandleTypeDef hsd;
|
||||
DMA_HandleTypeDef hdma_sdio;
|
||||
HAL_SD_CardInfoTypeDef SDCardInfo;
|
||||
HAL_SD_CardStateTypeDef CardState;
|
||||
|
@ -117,6 +118,5 @@ class SDIOClass {
|
|||
|
||||
static uint32_t m_errorLine = 0;
|
||||
static uint8_t m_errorCode = 0x64; //TODO cleanup, SdFat errors do not belong to SDIO driver (SD_CARD_ERROR_INIT_NOT_CALLED);
|
||||
static void (*_sdio_this);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue