|
本帖最后由 hpdell 于 2024-7-28 10:12 编辑
请教下各位大神,捣鼓 h7 sdmmc2接口 时, mdk ac6 优化等级必须是 >= -O3 才可以才可以 ,这是怎么回事呀 ?
优化等级设置为 -O1 时, 打开文件返回 FR_INT_ERR
uint8_t BSP_SD_Init(void)
{
uint32_t result;
uint32_t sdmmc_clk;
uint8_t sd_state = MSD_OK;
uSdHandle.Instance = SDMMC2;
/* if CLKDIV = 0 then SDMMC Clock frequency = SDMMC Kernel Clock
else SDMMC Clock frequency = SDMMC Kernel Clock / [2 * ClockDiv].
200MHz / (2*2) = 50MHz
*/
uSdHandle.Init.ClockDiv = 2; // sd 分频后得到 50MHz
uSdHandle.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE;
uSdHandle.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING;
uSdHandle.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;
uSdHandle.Init.BusWide = SDMMC_BUS_WIDE_4B;
/* NVIC configuration for SDIO interrupts */
HAL_NVIC_SetPriority(SDMMC2_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(SDMMC2_IRQn);
}
|
|