/** * @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 */