How 1811htsang/uedp works
μEDP is an embedded event-driven framework, with a Python PLTF pipeline that turns Kconfig and YAML/μE-LS descriptions into application code. The runtime workflow is application tasks and signals entering the core, where messages are scheduled and handled with timers and state machines; PAL implementations provide platform services. The README also describes logging, memory reporting, fatal-error handling, and out-of-context execution. Some runtime modules were not sampled, so their links are included only where the README or source index supports them.
Main entry points: uedp_task.c Task scheduler · uedp_msg.c Message pools · fpregen.py Code generation · usrinp.py Kconfig inputs
Components 24
PLTF generation
- Kconfig inputs
pltf/kconfigspec/usrinp.py - Config parsing
pltf/pycdscriptor/attribarse/dotcfg.py - YAML models
pltf/pycdscriptor/lstaxer/lukupmodel.py - Logic validation
pltf/pycdscriptor/lstaxer/strucjec.py - Code generation
pltf/pycdscriptor/jnerator/pregen/fpregen.py - Generated C
pltf/pycdscriptor/jnerator/postgen/cgen.py
Application
- Application logic
sources/app/app.c - Task declarations
sources/app/declaration/app_decl.h - Runtime configuration
sources/app/config/app_cfg.h
μEDP core
- Task scheduler
sources/core/src/uedp_task.c - Message pools
sources/core/src/uedp_msg.c - Task queues
sources/common/container/fifo/fifo.c - Timer service
sources/core/src/uedp_timer.c - FSM control
sources/core/inc/uedp_fsm.h - TSM control
sources/core/src/uedp_tsm.c - Out-context execution
sources/core/src/uedp_ocesvc.c - Fatal error handling
sources/core/inc/uedp_fcr.h - Internal logging
sources/core/src/uedp_itnlog.c
Platform services
- Architecture adapters
sources/pal/arch/linux/linux.c - Log dispatcher
sources/pal/service/logdp/pal_logdp.c - Redirectable printf
sources/pal/service/rprintf/pal_rprintf.c - Memory reporting
sources/pal/service/memrp/pal_memrp.c - Formatted output
sources/common/xprintf/xprintf.c
Other components
- Developer
Connections 25
- Developer → Kconfig inputs: defines config
README.md - Developer → YAML models: describes logic
README.md - Kconfig inputs → Config parsing: reads settings
README.md - Config parsing → Code generation: supplies context
README.md - YAML models → Logic validation: provides models
README.md - Logic validation → Code generation: validated input
README.md - Code generation → Generated C: generates code
README.md - Generated C → Application logic: produces app.c
README.md - Runtime configuration → Task scheduler: configures core
README.md - Task declarations → Task scheduler: declares tasks
sources/app/declaration/app_decl.h - Application logic → Task scheduler: uses event API
README.md - Task scheduler → Message pools: posts messages
sources/core/src/uedp_task.c - Task scheduler → Task queues: queues messages
sources/core/src/uedp_task.c - Message pools → Task queues: uses queue
sources/core/src/uedp_msg.c - Task scheduler → FSM control: dispatches state logic
- Task scheduler → TSM control: manages modes
- Timer service → Task scheduler: triggers work
- Task scheduler → Out-context execution: runs out-context tasks
README.md - Task scheduler → Fatal error handling: reports failures
README.md - Task scheduler → Internal logging: records events
README.md - Internal logging → Log dispatcher: forwards logs
README.md - Log dispatcher → Redirectable printf: selects backend
README.md - Redirectable printf → Formatted output: formats output
sources/pal/service/rprintf/pal_rprintf.c - Architecture adapters → Task scheduler: provides hardware services
README.md - Message pools → Memory reporting: reports pool usage
sources/core/src/uedp_msg.c