diff --git a/components/sdmmc/sdmmc_cmd.c b/components/sdmmc/sdmmc_cmd.c index eb9622521df..a36029306c9 100644 --- a/components/sdmmc/sdmmc_cmd.c +++ b/components/sdmmc/sdmmc_cmd.c @@ -394,7 +394,7 @@ esp_err_t sdmmc_send_cmd_send_scr(sdmmc_card_t* card, sdmmc_scr_t *out_scr) if (err == ESP_OK) { err = sdmmc_decode_scr(buf, out_scr); } - free(buf); + heap_caps_free(buf); return err; } @@ -464,16 +464,15 @@ esp_err_t sdmmc_send_cmd_num_of_written_blocks(sdmmc_card_t* card, size_t* out_n err = sdmmc_send_app_cmd(card, &cmd); if (err != ESP_OK) { - free(buf); + heap_caps_free(buf); ESP_LOGE(TAG, "%s: sdmmc_send_app_cmd returned 0x%x, failed to get number of written write blocks", __func__, err); return err; } - size_t result = __builtin_bswap32(*(uint32_t*)buf); if (out_num_blocks) { - *out_num_blocks = result; + *out_num_blocks = __builtin_bswap32(*(uint32_t*)buf); } - free(buf); + heap_caps_free(buf); return err; } @@ -542,7 +541,7 @@ esp_err_t sdmmc_write_sectors(sdmmc_card_t* card, const void* src, } } if (!use_dma_aligned_buffer) { - free(buf); + heap_caps_free(buf); } } return err; @@ -705,7 +704,7 @@ esp_err_t sdmmc_read_sectors(sdmmc_card_t* card, void* dst, cur_dst += block_size * blocks_per_read; } if (!use_dma_aligned_buffer) { - free(buf); + heap_caps_free(buf); } } return err; diff --git a/components/sdmmc/sdmmc_mmc.c b/components/sdmmc/sdmmc_mmc.c index 24bbe9ef9f5..b76308bbd5f 100644 --- a/components/sdmmc/sdmmc_mmc.c +++ b/components/sdmmc/sdmmc_mmc.c @@ -98,7 +98,7 @@ esp_err_t sdmmc_init_mmc_read_ext_csd(sdmmc_card_t* card) card->ext_csd.sec_feature = ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT]; out: - free(ext_csd); + heap_caps_free(ext_csd); return err; } @@ -194,7 +194,7 @@ esp_err_t sdmmc_mmc_decode_csd(sdmmc_response_t response, sdmmc_csd_t* out_csd) out_csd->read_block_len = MMC_CSD_READ_BL_LEN(response); } else { ESP_LOGE(TAG, "unknown MMC CSD structure version 0x%x", out_csd->csd_ver); - return 1; + return ESP_ERR_NOT_SUPPORTED; } int read_bl_size = 1 << out_csd->read_block_len; out_csd->sector_size = MIN(read_bl_size, 512); @@ -292,7 +292,7 @@ esp_err_t sdmmc_init_mmc_check_ext_csd(sdmmc_card_t* card) } out: - free(ext_csd); + heap_caps_free(ext_csd); return err; } diff --git a/components/sdmmc/sdmmc_sd.c b/components/sdmmc/sdmmc_sd.c index a66b535bb74..dc4019dd6b9 100644 --- a/components/sdmmc/sdmmc_sd.c +++ b/components/sdmmc/sdmmc_sd.c @@ -120,7 +120,7 @@ esp_err_t sdmmc_init_sd_ssr(sdmmc_card_t* card) // read SD status register err = sdmmc_send_app_cmd(card, &cmd); if (err != ESP_OK) { - free(sd_ssr); + heap_caps_free(sd_ssr); ESP_LOGE(TAG, "%s: sdmmc_send_cmd returned 0x%x", __func__, err); return err; } @@ -129,7 +129,7 @@ esp_err_t sdmmc_init_sd_ssr(sdmmc_card_t* card) if (err != ESP_OK) { ESP_LOGE(TAG, "%s: error sdmmc_decode_ssr returned 0x%x", __func__, err); } - free(sd_ssr); + heap_caps_free(sd_ssr); return err; } @@ -320,7 +320,7 @@ esp_err_t sdmmc_enter_higher_speed_mode(sdmmc_card_t* card) } out: - free(response); + heap_caps_free(response); return err; } @@ -515,7 +515,7 @@ esp_err_t sdmmc_select_driver_strength(sdmmc_card_t *card, sdmmc_driver_strength ESP_GOTO_ON_FALSE(supported_mask == driver_strength, ESP_ERR_INVALID_ARG, out, TAG, "fail to switch to type 0x%x", driver_strength); out: - free(response); + heap_caps_free(response); return ret; } @@ -622,7 +622,7 @@ esp_err_t sdmmc_select_current_limit(sdmmc_card_t *card, sdmmc_current_limit_t c ESP_GOTO_ON_FALSE(supported_mask == current_limit, ESP_ERR_INVALID_ARG, out, TAG, "fail to switch to type 0x%x", current_limit); out: - free(response); + heap_caps_free(response); return ret; }