PX5 FILE

PX5 FILE Embedded FAT File System

The embedded FAT File System Used by Professional Developers

PX5 FILE embedded FAT file system is ultrasmall making it ideal for the most memory-constrained embedded devices.

Extensive caching mechanisms—caches for logical sectors, FAT entries, and directory search entries—enable ultrahigh performance. All caching is optional, and the developer controls the size of each cache.

PX5 FILE is rigorously tested for each release with 100% C statement and branch-decision coverage testing. In addition, it leverages pointer data verification (PDV) for integrity verification of stacks and internal system objects during runtime. Finally, optional run-time fault tolerance guarantees file system integrity after power loss.

PX5 FILE is simple to use. It implements the industry-standard FAT file system format:

  • FAT 12/16/32 bit support
  • exFAT support
  • 8.3 and Long File Name (LFN) support
  • A simple read/write sector direct call driver interface
  • Linux file system API (open, close, read, write) is implemented natively
px5 rtos iot
px5 file

  • Small, fast and easy to use
  • Linux File API support
  • Fault-tolerant support
  • Pointer data verification (PDV)
  • FAT 12/16/32 support
  • exFAT support
  • 8.3 and long file name (LFN)
  • Simple r/w sector driver
  • FLASH wear-leveling
  • Arm Cortex-M/R/A & RISC-V
  • IAR, GCC, Arm tools & Renesas RX
  • Full source and no royalties
  • Professional support

Components of PX5 FILE

• Industry standard LINUX file APIs

• Native Implementation

• Automatic scaling

• Less than 6KB for minimal use.

• FAT 12/16/32 Format Support

• exFAT support

• Optional fault tolerance

• Logical sector cache

• FAT entry cache

• Volume APIs: px5_volume_close, px5_volume_open, px5_volume_format

• User-specified maximum path

• No maximum number of subdirectories

• 8.3 Support

• Long file Name (LFN) Support

• Directory entry search cache

• Directory APIs: chdir, closedir, getcwd, mkdir, opendir, rmdir, seekdir

• No maximum number of files

• 8.3 and LFN support

• Up to 4GB file size (16 EB for exFAT)

• File attribute support

• Date/time stamp

• Supports multi-cluster/sector r/w

• File APIs: chmod, close, Iseek, open, px5_rename, read, unlink, write

• Simple r/w sector driver

• Sample RAMdisk driver

• PX5 FLASH

• Easy integration with SDCard drivers

Fast And Efficient

PX5 FILE has extensive caching for optimal run-time performance. The logical sector cache stores the most often used logical sectors, eliminating costly reads from the physical device. The FAT entry cache consists of the most often used FAT entries, which reduces the number of FAT sectors read. The directory entry cache improves searching for files and sub-directories by caching sub-directory entries. All caches (and memory required) are under the complete control of the developer.

Small

PX5 FILE is one of the smallest embedded file systems on the market, requiring less than 6KB of FLASH and 2KB of RAM for minimal use. Equally important, since PX5 FILE is implemented as loosely coupled C functions, the flash memory requirements scale automatically based on precisely what is being used. The linker automatically omits unused code if an API is not being used.

SIMPLE

The PX5 FILE embedded file system comprises one source file, px5_file.c, hich can be easily added to any project. The only additional requirement is to set up the project’s include path so that px5_file.h can be located during compilation. At this point, PX5 FILE is ready for operation—no complicated projects and linker control file changes are necessary.

Sample code:

#include <pthread.h>
#include <px5_file.h>

unsigned char memory[1024];
unsigned char buffer[512];
int file_handle;

int main()
{

ssize_t bytes_read;
unsigned char read_buffer[8];

/* Start PX5 RTOS. */
px5_pthread_start(1, memory, sizeof(memory));
/* Start PX5 FILE. */
px5_file_start();
/* Open a volume. */
px5_volume_open(‘0’, physical_driver, NULL, buffer,sizeof(buffer);
/* Open a file. */ file_handle = open(“TESTFILE.TXT”, O_RDWR);
/* Read 8 bytes from the file. */
bytes_read = read(file_handle, read_buffer, sizeof(read_buffer));
}

Advanced

PX5 FILE uses the global data encapsulation technique used by the RTOS. This technique enables register- relative code generation and makes detecting memory corruption of the PX5 FILE global data easier.

Tool Support

PX5 FILE also supports the most popular embedded development tools, including those from IAR, ARM, and GCC.

Processor Support

PX5 FILE is written in ANSI C, making it highly portable to any embedded MCU or MPU processor supported by the PX5 RTOS, including Arm Cortex-M, Cortex-R, Cortex-A, MicroBlaze, Renesas RX, RISC-V, and TriCore architecture families.

Full Source Code

PX5 FILE is delivered with complete source code designed to be easy to understand. It is also rigorously tested - 100% C statement and branch decision coverage testing for every release. The PX5 FILE source code is genuinely high quality.

Royalty Free

PX5 FILE is offered royalty-free, with simple and easy-to-understand licensing terms.

Professional Support

The embedded software experts on the PX5 support team are always ready to help and promise quick action on every support request.