xipfs file system

The eXecute In-Place File System. More...

Detailed Description

The eXecute In-Place File System.

xipfs is a file system designed to streamline post-issuance software deployment.

xipfs allows direct execution of programs from flash memory, eliminating the need for prior copying to RAM.

This approach conserves memory space and accelerates boot times, as the microcontroller can run code directly from storage memory without preloading into RAM.

The xipfs structure is based on a linked list, where each file occupies at least one flash memory page.

To prevent fragmentation, when a file is deleted, subsequent files are shifted to fill the vacant space.

xipfs is compatible with all ARM microcontrollers featuring addressable flash memory and most operating systems, provided they implement the necessary functions to interact with the flash controller.

The filesystem is also capable to run files with memory isolation, thanks to the use of ARMv7-M Memory Protection Unit. Then, the TEXT, DATA and STACK segments of the executable are mapped to MPU regions, isolating the program from the rest of flash and RAM. It can only access to its legitimate contents.

To have a viable executable file within XiPFS, please follow these steps :

See also
https://github.com/2xs/xipfs
https://github.com/2xs/XiPFS_Format

Modules

 xipfs integration
 RIOT integration of xipfs.