--- /dev/null
+from __future__ import print_function
+import os
+import sys
+
+try:
+ import IDF
+except ImportError:
+ test_fw_path = os.getenv('TEST_FW_PATH')
+ if test_fw_path and test_fw_path not in sys.path:
+ sys.path.insert(0, test_fw_path)
+ import IDF
+
+
+@IDF.idf_example_test(env_tag='Example_ExtFlash')
+def test_examples_storage_ext_flash_fatfs(env, extra_data):
+ dut = env.get_dut('ext_flash_fatfs', 'examples/storage/ext_flash_fatfs')
+ dut.start_app()
+
+ dut.expect('Initialized external Flash')
+ dut.expect('partition \'nvs\'')
+ dut.expect('partition \'storage\'')
+ dut.expect('File written')
+ dut.expect('Read from file: \'Written using ESP-IDF')
+
+
+if __name__ == '__main__':
+ test_examples_storage_ext_flash_fatfs()
static esp_flash_t* example_init_ext_flash(void);
static const esp_partition_t* example_add_partition(esp_flash_t* ext_flash, const char* partition_label);
+static void example_list_data_partitions(void);
static bool example_mount_fatfs(const char* partition_label);
static void example_get_fatfs_usage(size_t* out_total_bytes, size_t* out_free_bytes);
const char *partition_label = "storage";
example_add_partition(flash, partition_label);
+ // List the available partitions
+ example_list_data_partitions();
+
// Initialize FAT FS in the partition
if (!example_mount_fatfs(partition_label)) {
return;
return fat_partition;
}
+static void example_list_data_partitions(void)
+{
+ ESP_LOGI(TAG, "Listing data partitions:");
+ esp_partition_iterator_t it = esp_partition_find(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, NULL);
+
+ for (; it != NULL; it = esp_partition_next(it)) {
+ const esp_partition_t *part = esp_partition_get(it);
+ ESP_LOGI(TAG, "- partition '%s', subtype %d, offset 0x%x, size %d kB",
+ part->label, part->subtype, part->address, part->size / 1024);
+ }
+
+ esp_partition_iterator_release(it);
+}
+
static bool example_mount_fatfs(const char* partition_label)
{
ESP_LOGI(TAG, "Mounting FAT filesystem");