mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-20 03:53:49 +01:00
33 lines
1.4 KiB
Plaintext
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
|
|
*/
|