1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-20 03:53:49 +01:00
RIOT/pkg/xipfs/doc.txt
2025-07-23 12:44:38 +02:00

33 lines
1.4 KiB
Plaintext

/**
* @defgroup pkg_xipfs xipfs file system
* @ingroup pkg
* @ingroup sys_fs
* @brief 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 microcontrollers featuring addressable
* flash memory and most operating systems, provided they implement the
* necessary functions to interact with the flash controller.
*
* **To have a viable executable file within XiPFS**, please follow these steps :
* - create a file with executable flag.
* - Fill it with actual compiled code in an appropriate file format, here XiPFS-Format.
* *This is where the actual startup sequence and relocation happen*.
* - Call execute on it with appropriate args *at least the executable filename should be passed along*.
*
* @see https://github.com/2xs/xipfs
* @see https://github.com/2xs/XiPFS_Format
*/