Extending Zephyr Based Applications at Runtime with LLEXT
summary
LLEXT is a Zephyr subsystem that loads and links ELF files at runtime so firmware extensions can be added as plugins or isolated processes; it implements relocations per architecture (full ARM support, partial for others), manages memory with a dedicated heap for RW and executable regions, and can run extensions in user space via MPU/MMU partitions. Build tooling includes an EDK to package headers and CMake flags. Caveats: no signing, no execute‑in‑place, syscall IDs and some relocations change; no built-in signing run at your own risk.
AI-written summary · about
chapters (19)
- 0:00LLEXT runtime extensions
- 2:10What LLEXT is
- 6:28LLEXT linker and relocation
- 12:45Building LLEXT extensions
- 13:51EDK for packaging
- 14:33LLEXT use cases
- 16:18LLEXT limitations
- 19:05LLEXT collaborators
- 20:10Q&A: ELF preprocessing
- 21:13Q&A: Architecture support
- 23:17Q&A: Complex dependencies
- 27:31Q&A: Disaggregating apps
- 28:40Q&A: Address management
- 30:25Q&A: Security in LLEXT
- 32:34Q&A: Memory config
- 33:58Q&A: CHRE comparison
- 35:01Q&A: WebAssembly vs LLEXT
- 36:28Q&A: Kernel exports
- 37:53Q&A: Dynamic driver loading
related talks
39mZephyr Extensions: How to Dynamically Load an Application
27mZephyr and Trusted Execution Environments
27mZephyr and Trusted Execution Environments
15mExtending Applications Safely and Efficiently
01h 03mZephyr RTOS: Software power tools for constrained devices
35mZephyr OS Memory Protection
27mZephyr Porting Efforts in High Performance SoCs
35mZephyr OS Memory Protection
