From 85b5869053e2ba928c3b5553379fa605f85fd491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Rohl=C3=ADnek?= Date: Mon, 5 Aug 2024 14:09:09 +0200 Subject: [PATCH] feat(storage/fatfs): restructure basic example --- examples/storage/.build-test-rules.yml | 8 ------- examples/storage/fatfs/.build-test-rules.yml | 9 ++++++++ .../getting_started}/CMakeLists.txt | 0 .../getting_started}/README.md | 23 ++++++++++--------- .../fatfs/getting_started/main/CMakeLists.txt | 2 ++ .../main/fatfs_getting_started_main.c} | 6 ++--- .../getting_started}/partitions_example.csv | 0 .../pytest_fatfs_getting_started_example.py} | 4 ++-- .../getting_started}/sdkconfig.defaults | 0 .../storage/fatfs_basic/main/CMakeLists.txt | 2 -- 10 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 examples/storage/fatfs/.build-test-rules.yml rename examples/storage/{fatfs_basic => fatfs/getting_started}/CMakeLists.txt (100%) rename examples/storage/{fatfs_basic => fatfs/getting_started}/README.md (67%) create mode 100644 examples/storage/fatfs/getting_started/main/CMakeLists.txt rename examples/storage/{fatfs_basic/main/fat_example_main.c => fatfs/getting_started/main/fatfs_getting_started_main.c} (93%) rename examples/storage/{fatfs_basic => fatfs/getting_started}/partitions_example.csv (100%) rename examples/storage/{fatfs_basic/pytest_fat_example.py => fatfs/getting_started/pytest_fatfs_getting_started_example.py} (81%) rename examples/storage/{fatfs_basic => fatfs/getting_started}/sdkconfig.defaults (100%) delete mode 100644 examples/storage/fatfs_basic/main/CMakeLists.txt diff --git a/examples/storage/.build-test-rules.yml b/examples/storage/.build-test-rules.yml index 5999ae95ea..8ec3101a5a 100644 --- a/examples/storage/.build-test-rules.yml +++ b/examples/storage/.build-test-rules.yml @@ -42,14 +42,6 @@ examples/storage/fatfs_advanced: - if: IDF_TARGET != "esp32" reason: only one target needed -examples/storage/fatfs_basic: - depends_components: - - fatfs - - vfs - disable_test: - - if: IDF_TARGET != "esp32" - reason: only one target needed - examples/storage/nvs_rw_blob: depends_components: - nvs_flash diff --git a/examples/storage/fatfs/.build-test-rules.yml b/examples/storage/fatfs/.build-test-rules.yml new file mode 100644 index 0000000000..f652dd52d8 --- /dev/null +++ b/examples/storage/fatfs/.build-test-rules.yml @@ -0,0 +1,9 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +examples/storage/fatfs: + depends_components: + - fatfs + - vfs + disable_test: + - if: IDF_TARGET != "esp32" + reason: only one target needed diff --git a/examples/storage/fatfs_basic/CMakeLists.txt b/examples/storage/fatfs/getting_started/CMakeLists.txt similarity index 100% rename from examples/storage/fatfs_basic/CMakeLists.txt rename to examples/storage/fatfs/getting_started/CMakeLists.txt diff --git a/examples/storage/fatfs_basic/README.md b/examples/storage/fatfs/getting_started/README.md similarity index 67% rename from examples/storage/fatfs_basic/README.md rename to examples/storage/fatfs/getting_started/README.md index 0ee84f105d..626f9323cb 100644 --- a/examples/storage/fatfs_basic/README.md +++ b/examples/storage/fatfs/getting_started/README.md @@ -1,5 +1,5 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | # FATFS minimal example @@ -29,15 +29,16 @@ Here is the example's console output: ``` ... -I (339) example: Mounting FAT filesystem -I (339) example: Filesystem mounted -I (339) example: Opening file -I (729) example: File written -I (729) example: Reading file -I (739) example: Read from file: 'This is written by the device' -I (739) example: Unmounting FAT filesystem -I (849) example: Done +I (321) example: Mounting FAT filesystem +I (331) example: Filesystem mounted +I (331) example: Opening file +I (731) example: File written +I (731) example: Reading file +I (741) example: Read from file: 'Hello World!' +I (741) example: Unmounting FAT filesystem +I (851) example: Done +... ``` -The logic of the example is contained in a [single source file](./main/fat_example_main.c), +The logic of the example is contained in a [single source file](./main/fatfs_getting_started_main.c), and it should be relatively simple to match points in its execution with the log outputs above. diff --git a/examples/storage/fatfs/getting_started/main/CMakeLists.txt b/examples/storage/fatfs/getting_started/main/CMakeLists.txt new file mode 100644 index 0000000000..fec5d19cad --- /dev/null +++ b/examples/storage/fatfs/getting_started/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRCS "fatfs_getting_started_main.c" + INCLUDE_DIRS ".") diff --git a/examples/storage/fatfs_basic/main/fat_example_main.c b/examples/storage/fatfs/getting_started/main/fatfs_getting_started_main.c similarity index 93% rename from examples/storage/fatfs_basic/main/fat_example_main.c rename to examples/storage/fatfs/getting_started/main/fatfs_getting_started_main.c index 2a57821e70..ae8529160e 100644 --- a/examples/storage/fatfs_basic/main/fat_example_main.c +++ b/examples/storage/fatfs/getting_started/main/fatfs_getting_started_main.c @@ -31,8 +31,8 @@ void app_main(void) .use_one_fat = false, // Use only one FAT table (reduce memory usage), but decrease reliability of file system in case of power failure. }; + // Mount FATFS filesystem located on "storage" partition in read-write mode esp_err_t err = esp_vfs_fat_spiflash_mount_rw_wl(base_path, "storage", &mount_config, &s_wl_handle); - if (err != ESP_OK) { ESP_LOGE(TAG, "Failed to mount FATFS (%s)", esp_err_to_name(err)); return; @@ -46,12 +46,12 @@ void app_main(void) FILE *f = fopen(filename, "wb"); if (f == NULL) { - perror("fopen"); + perror("fopen"); // Print reason why fopen failed ESP_LOGE(TAG, "Failed to open file for writing"); return; } - fprintf(f, "This is written by the device"); + fprintf(f, "Hello World!\n"); fclose(f); ESP_LOGI(TAG, "File written"); diff --git a/examples/storage/fatfs_basic/partitions_example.csv b/examples/storage/fatfs/getting_started/partitions_example.csv similarity index 100% rename from examples/storage/fatfs_basic/partitions_example.csv rename to examples/storage/fatfs/getting_started/partitions_example.csv diff --git a/examples/storage/fatfs_basic/pytest_fat_example.py b/examples/storage/fatfs/getting_started/pytest_fatfs_getting_started_example.py similarity index 81% rename from examples/storage/fatfs_basic/pytest_fat_example.py rename to examples/storage/fatfs/getting_started/pytest_fatfs_getting_started_example.py index 7abafe062d..e7f9d7d78a 100644 --- a/examples/storage/fatfs_basic/pytest_fat_example.py +++ b/examples/storage/fatfs/getting_started/pytest_fatfs_getting_started_example.py @@ -6,12 +6,12 @@ from pytest_embedded import Dut @pytest.mark.esp32 @pytest.mark.generic -def test_examples_fatfs_basic(dut: Dut) -> None: +def test_examples_fatfs_getting_started(dut: Dut) -> None: dut.expect('example: Mounting FAT filesystem', timeout=90) dut.expect('example: Filesystem mounted', timeout=90) dut.expect('example: Opening file', timeout=90) dut.expect('example: File written', timeout=90) dut.expect('example: Reading file', timeout=90) - dut.expect('example: Read from file: \'This is written by the device\'', timeout=90) + dut.expect('example: Read from file: \'Hello World!\'', timeout=90) dut.expect('example: Unmounting FAT filesystem', timeout=90) dut.expect('example: Done', timeout=90) diff --git a/examples/storage/fatfs_basic/sdkconfig.defaults b/examples/storage/fatfs/getting_started/sdkconfig.defaults similarity index 100% rename from examples/storage/fatfs_basic/sdkconfig.defaults rename to examples/storage/fatfs/getting_started/sdkconfig.defaults diff --git a/examples/storage/fatfs_basic/main/CMakeLists.txt b/examples/storage/fatfs_basic/main/CMakeLists.txt deleted file mode 100644 index 827c3c2e8e..0000000000 --- a/examples/storage/fatfs_basic/main/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -idf_component_register(SRCS "fat_example_main.c" - INCLUDE_DIRS ".")