lt321 发表于 2023-10-31 13:47:32

filex的fx_media_open函数堵塞

本帖最后由 lt321 于 2023-10-31 13:49 编辑

你们有没有遇到这样问题


sd_status =fx_media_open(&sdio_disk, FX_SD_VOLUME_NAME, fx_stm32_sd_driver, (VOID *)FX_NULL, (VOID *) fx_sd_media_memory, sizeof(fx_sd_media_memory));

/* Check the media open sd_status */
if (sd_status != FX_SUCCESS)
{
    /* USER CODE BEGIN SD open error */
    while(1);
    /* USER CODE END SD open error */
}


这个函数会堵塞,但单步去调试的话又可以过,过了之后只要不断电反复烧录都可以通过,一旦断电就又堵塞。在前面有加延时,并且是SD卡初始化之后使用

eric2013 发表于 2023-10-31 15:12:15

是不是卡死在fx_stm32_sd_driver,的接口函数里面了。

lt321 发表于 2023-10-31 16:00:25

eric2013 发表于 2023-10-31 15:12
是不是卡死在fx_stm32_sd_driver,的接口函数里面了。

是的,大哥这怎么解决呀

lt321 发表于 2023-10-31 16:01:40

eric2013 发表于 2023-10-31 15:12
是不是卡死在fx_stm32_sd_driver,的接口函数里面了。

我的这个fx_stm32_sd_driver是cubex自己生成的,不知道该如何下手

lt321 发表于 2023-10-31 16:16:08

eric2013 发表于 2023-10-31 15:12
是不是卡死在fx_stm32_sd_driver,的接口函数里面了。

#if (FX_STM32_SD_CACHE_MAINTENANCE == 1)
    invalidate_cache_by_addr((uint32_t*)media_ptr->fx_media_driver_buffer, num_sectors * FX_STM32_SD_DEFAULT_SECTOR_SIZE);
#endif

    status = FX_SUCCESS;
}就是这个在头几次中会系统崩溃,系统进入HardFault状态时

lt321 发表于 2023-10-31 16:53:22

eric2013 发表于 2023-10-31 15:12
是不是卡死在fx_stm32_sd_driver,的接口函数里面了。

把这个:lol FX_STM32_SD_CACHE_MAINTENANCE制0就好了,但里面的函数说是缓存无效化,暂时没找到方案替代或者解决不堵塞

eric2013 发表于 2023-11-1 10:32:30

lt321 发表于 2023-10-31 16:53
把这个 FX_STM32_SD_CACHE_MAINTENANCE制0就好了,但里面的函数说是缓存无效化,暂时没找到方案替 ...

这样的话,你用的应该是H7系列,Cache没处理好。
页: [1]
查看完整版本: filex的fx_media_open函数堵塞