Transcript
Page 1: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Real-Time Library:Flash File System

1

Page 2: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Flash File System - Basics

– The RL-FlashFS allows to create, save, read and modify files

– The library functions provide high level access to file system functionalities

– Usage with the MicroLib runtime library is not supported

4-2

Page 3: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

What is MicroLib

MicroLib is a highly-optimized library for ARM-based embedded applications written in C. When compared to the standard C library included with the ARM Compilation Tools, MicroLib provides significant code size advantages required for many embedded systems.

4-3

Page 4: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Flash File System - Basics

Supported memory devices: External RAM External Flash (SPI) Internal Flash Memory Cards like SD and MMC cards (used in SPI mode)

Default drives: “R:“ external RAM (“Ram Drive“) “S:“ external Flash (“SPI Flash device“) “F:“ internal Flash (“Embedded Flash drive“) “M:“ external Memory Cards (“Memory Card Drive“)

4-4

Page 5: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Flash File System - Basics

Up to 4 GByte memory space is supported Supported file system for memorycards are FAT16 or FAT32 All devices can be used parallel Required components:

RL-FlashFS library file Configuration file File_Config.c

The File system may be used with or without RL-RTX The file system integrates with RL-TCP

TFTP server Webserver upload

The File system integrates with RL-USB Mass Storage Class (MSC)

4-5

Page 6: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Memory Organization

A Flash device is usually divided into flash sectors (Block)

– A Flash sector is a memory page which is written cell after cell

– The size of a memory cell depends on device architecture 8-bit (byte) 16-bit (half word) 32-bit (word)

4-6

Page 7: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Memory Organization

– A big file is separated into multiple blocks – Smaller files are stored together in one block Deleting a file:

The whole flash sector has to be erased Data within this sector which is not to be deleted will be

saved within another sector Changing a file:

Changed data is stored into a new sector The file pointer is actualized The sector with the old file data is erased

4-7

Page 8: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

RAM Device Configuring the file system to use the

internal RAM of a typical ARM based microcontroller.

Not practical in real life - RAM is volatile (unless battery backed)

Basic Configuration file: File_Config.c

Libraries: ARM7 & ARM9: FS_ARM_L.lib Cortex-M3: FS_CM3.lib

4-8

Page 9: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

RAM device

4-9

Page 10: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

RAM RAM Device has to be split into

logical sectors – Usage without Device

Description Table – Device layout is generated

automatically by configuration (File_Config.c) – RAM devices

need special low-level read/write function

– High-level handling is equal to Flash devices

4-10

Page 11: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Flash File system functions

4-11

Page 12: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Flash File system functions

4-12

Page 13: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

SD CARD

Hardware Wear levelling and error correction Giga bytes of low cost storage 100Mbit/sec data transfer rate Write protection Optional copyright protection Standard communication protocol Independent from the underlying flash technology Typically 100K Writes endurance Low cost

4-13

Page 14: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

SD CARD

4-14

Page 15: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

Using Memory Cards

Memory cards can be used in SPI mode or Native mode

Uses the FAT file system Supports no directories or subdirectories

Maximum of 512 directory entries File Information Record of each file stores

time information too fs_get_time() fs_get_date()

4-15

Page 16: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

SD CARD SPI MODE

Uses a SPI Driver for low level functions - spi_init() Initialize the SPI controller spi hi speed() Change between high and low SPI mode

spi_hi_speed for SPI data transfer spi_send() Writes and reads a byte on the SPI interface

4-16

Page 17: Real-Time Library: Flash File System 1. Flash File System - Basics – The RL-FlashFS allows to create, save, read and modify files – The library functions

SD CARD - MCI MODE Uses a MCI Driver for low level functions

mci_init() Initialize the MCI controller mci_read_sect() Reads a sector from the Flash Memory Card (512

byte) mci_write_sect() Write a sector to the Flash Memory Card (512

byte) mci_read_config() Reads Memory Card configuration

Memory Card is handled in hardware

Communication in Native mode is faster than in SPI mode – MCI Driver:

MCI_LPC23xx.c

4-17


Recommended