| .. zephyr:code-sample:: fs |
| :name: File system manipulation |
| :relevant-api: file_system_api disk_access_interface |
| |
| Use file system API with various filesystems and storage devices. |
| |
| Overview |
| ******** |
| |
| This sample app demonstrates use of the file system API and uses the FAT or Ext2 file |
| system driver with SDHC card, SoC flash or external flash chip. |
| |
| To access device the sample uses :ref:`disk_access_api`. |
| |
| Requirements for SD card support |
| ******************************** |
| |
| This project requires SD card support and microSD card formatted with proper file system |
| (FAT or Ext2) See the :ref:`disk_access_api` documentation for Zephyr implementation details. |
| Boards that by default use SD card for storage: ``arduino_mkrzero``, ``esp_wrover_kit``, |
| ``mimxrt1050_evk``, ``nrf52840_blip`` and ``olimexino_stm32``. The sample should be able |
| to run with any other board that has "zephyr,sdmmc-disk" DT node enabled. |
| |
| Requirements for setting up FAT FS on SoC flash |
| *********************************************** |
| |
| For the FAT FS to work with internal flash, the device needs to support erase |
| pages of size <= 4096 bytes and have at least 64kiB of flash available for |
| FAT FS partition alone. |
| Currently the following boards are supported: |
| ``nrf52840dk/nrf52840`` |
| |
| Requirements for setting up FAT FS on external flash |
| **************************************************** |
| |
| This type of configuration requires external flash device to be available |
| on DK board. Currently following boards support the configuration: |
| ``nrf52840dk/nrf52840`` by ``nrf52840dk_nrf52840_qspi`` configuration. |
| |
| Building and Running FAT samples |
| ******************************** |
| |
| Boards with default configurations, for example ``arduino_mkrzero`` or |
| ``nrf52840dk/nrf52840`` using internal flash can be built using command: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/subsys/fs/fs_sample |
| :board: nrf52840_blip |
| :goals: build |
| :compact: |
| |
| Where used example board ``nrf52840_blip`` should be replaced with desired board. |
| |
| In case when some more specific configuration is to be used for a given board, |
| for example ``nrf52840dk/nrf52840`` with MX25 device over QSPI, configuration |
| and DTS overlays need to be also selected. The command would look like this: |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/subsys/fs/fs_sample |
| :board: nrf52840dk/nrf52840 |
| :gen-args: -DEXTRA_CONF_FILE=nrf52840dk_nrf52840_qspi.conf -DDTC_OVERLAY_FILE=nrf52840dk_nrf52840_qspi.overlay |
| :goals: build |
| :compact: |
| |
| In case when board with SD card is used FAT microSD card should be present in the |
| microSD slot. If there are any files or directories present in the card, the |
| sample lists them out on the debug serial output. |
| |
| .. warning:: |
| In case when mount fails the device may get re-formatted to FAT FS. |
| To disable this behaviour disable :kconfig:option:`CONFIG_FS_FATFS_MOUNT_MKFS` . |
| |
| Building and Running EXT2 samples |
| ********************************* |
| |
| Ext2 sample can be built for ``hifive_unmatched/fu740/s7`` or ``bl5340_dvk/nrf5340/cpuapp``. Because |
| FAT is default file system for this sample, additional flags must be passed to build |
| the sample. |
| |
| .. zephyr-app-commands:: |
| :zephyr-app: samples/subsys/fs/fs_sample |
| :board: hifive_unmatched/fu740/s7 hifive_unmatched/fu740/u74 |
| :gen-args: -DCONF_FILE=prj_ext.conf |
| :goals: build |
| :compact: |
| |
| A microSD card must be present in a microSD card slot of the board, for the sample to execute. |
| After starting the sample a contents of a root directory should be printed on the console. |