I'm trying to connect a sd card via sdio on an STM32F4. During sdcConnect the osalThreadSleep function is called (in sdc_init(..)) and the program crashes unexpectedly (the _unhandled_exception handler is not called, neither the hard fault handler). See attached image.
Below is the snippet of my init function, it is called from within a static thread (stack size is 1024 byte).
Code: Select all
palSetPadMode(GPIOC, GPIOC_PIN8, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_HIGHEST); //D0
palSetPadMode(GPIOC, GPIOC_PIN9, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_HIGHEST); //D1
palSetPadMode(GPIOC, GPIOC_PIN10, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_HIGHEST); //D2
palSetPadMode(GPIOC, GPIOC_PIN11, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_HIGHEST); //D3
palSetPadMode(GPIOC, GPIOC_PIN12, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_HIGHEST); //CLK
palSetPadMode(GPIOD, GPIOD_PIN2, PAL_MODE_ALTERNATE(12) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_HIGHEST); //CMD
palClearPad(GPIOE, GPIOE_PIN3);
palSetPadMode(GPIOE, GPIOE_PIN3, PAL_MODE_OUTPUT_OPENDRAIN | PAL_STM32_PUDR_FLOATING | PAL_STM32_OSPEED_LOWEST); //SD Power Enable
sdcStart(&SDCD1, NULL);
sdcConnect(&SDCD1);
Do you have any idea of why this error occours?
regards,
manuel