The eXecute In-Place File System. More...
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 :
Modules | |
xipfs integration | |
RIOT integration of xipfs. | |