Merge branch 'bugfix/sdcard_example_format_timeout_v4.2' into 'release/v4.2'

CI: [Examples/Storage] provide sufficient timeout for SD card formatting (v4.2)

See merge request espressif/esp-idf!14912
This commit is contained in:
Mahavir Jain 2021-10-29 09:44:04 +00:00
commit 7097d3c2f4
2 changed files with 10 additions and 5 deletions

View File

@ -75,7 +75,7 @@ void app_main(void)
.max_files = 5, .max_files = 5,
.allocation_unit_size = 16 * 1024 .allocation_unit_size = 16 * 1024
}; };
sdmmc_card_t* card; sdmmc_card_t *card;
const char mount_point[] = MOUNT_POINT; const char mount_point[] = MOUNT_POINT;
ESP_LOGI(TAG, "Initializing SD card"); ESP_LOGI(TAG, "Initializing SD card");
@ -103,6 +103,7 @@ void app_main(void)
gpio_set_pull_mode(12, GPIO_PULLUP_ONLY); // D2, needed in 4-line mode only gpio_set_pull_mode(12, GPIO_PULLUP_ONLY); // D2, needed in 4-line mode only
gpio_set_pull_mode(13, GPIO_PULLUP_ONLY); // D3, needed in 4- and 1-line modes gpio_set_pull_mode(13, GPIO_PULLUP_ONLY); // D3, needed in 4- and 1-line modes
ESP_LOGI(TAG, "Mounting filesystem");
ret = esp_vfs_fat_sdmmc_mount(mount_point, &host, &slot_config, &mount_config, &card); ret = esp_vfs_fat_sdmmc_mount(mount_point, &host, &slot_config, &mount_config, &card);
#else #else
ESP_LOGI(TAG, "Using SPI peripheral"); ESP_LOGI(TAG, "Using SPI peripheral");
@ -134,13 +135,14 @@ void app_main(void)
if (ret != ESP_OK) { if (ret != ESP_OK) {
if (ret == ESP_FAIL) { if (ret == ESP_FAIL) {
ESP_LOGE(TAG, "Failed to mount filesystem. " ESP_LOGE(TAG, "Failed to mount filesystem. "
"If you want the card to be formatted, set the EXAMPLE_FORMAT_IF_MOUNT_FAILED menuconfig option."); "If you want the card to be formatted, set the EXAMPLE_FORMAT_IF_MOUNT_FAILED menuconfig option.");
} else { } else {
ESP_LOGE(TAG, "Failed to initialize the card (%s). " ESP_LOGE(TAG, "Failed to initialize the card (%s). "
"Make sure SD card lines have pull-up resistors in place.", esp_err_to_name(ret)); "Make sure SD card lines have pull-up resistors in place.", esp_err_to_name(ret));
} }
return; return;
} }
ESP_LOGI(TAG, "Filesystem mounted");
// Card has been initialized, print its properties // Card has been initialized, print its properties
sdmmc_card_print_info(stdout, card); sdmmc_card_print_info(stdout, card);
@ -148,7 +150,7 @@ void app_main(void)
// Use POSIX and C standard library functions to work with files. // Use POSIX and C standard library functions to work with files.
// First create a file. // First create a file.
ESP_LOGI(TAG, "Opening file"); ESP_LOGI(TAG, "Opening file");
FILE* f = fopen(MOUNT_POINT"/hello.txt", "w"); FILE *f = fopen(MOUNT_POINT"/hello.txt", "w");
if (f == NULL) { if (f == NULL) {
ESP_LOGE(TAG, "Failed to open file for writing"); ESP_LOGE(TAG, "Failed to open file for writing");
return; return;
@ -182,7 +184,7 @@ void app_main(void)
fgets(line, sizeof(line), f); fgets(line, sizeof(line), f);
fclose(f); fclose(f);
// strip newline // strip newline
char* pos = strchr(line, '\n'); char *pos = strchr(line, '\n');
if (pos) { if (pos) {
*pos = '\0'; *pos = '\0';
} }

View File

@ -13,6 +13,9 @@ def test_examples_sd_card(env, extra_data):
Utility.console_log('peripheral {} detected'.format(peripheral)) Utility.console_log('peripheral {} detected'.format(peripheral))
assert peripheral in ('SDMMC', 'SPI') assert peripheral in ('SDMMC', 'SPI')
# Provide enough time for possible SD card formatting
dut.expect('Filesystem mounted', timeout=60)
# These lines are matched separately because of ASCII color codes in the output # These lines are matched separately because of ASCII color codes in the output
name = dut.expect(re.compile(r'Name: (\w+)'), timeout=5)[0] name = dut.expect(re.compile(r'Name: (\w+)'), timeout=5)[0]
_type = dut.expect(re.compile(r'Type: (\S+)'), timeout=5)[0] _type = dut.expect(re.compile(r'Type: (\S+)'), timeout=5)[0]