Code Monkey home page Code Monkey logo

fs_sample's Introduction

.. 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 build 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 build for hifive_unmatched or bl5340_dvk_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
   :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.

fs_sample's People

Contributors

mkvenkit avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.