嵌入式系统中eLua与C协作式多任务实现可行性问询
嵌入式C系统集成脚本支持的方案疑问
需求概述
- 现有基于C语言开发的自动化控制器项目,C端已完成各类接口与协议交互开发,需引入脚本支持实现用户自定义逻辑
- 脚本仅负责条件判断、循环、定时事件等逻辑,不直接操作硬件;硬件控制完全由C代码处理(例如脚本仅发送“开启X号灯具”指令,C负责消息封装、传输等核心操作)
- 要求C代码与用户脚本并行执行:C端需持续响应UART输入(硬件为中断驱动,Lua侧处理耗时不影响),脚本逻辑执行不能阻塞C系统运行
当前困境
找到的eLua相关示例存在两种问题:
- 要么完全基于Lua实现所有功能,不符合现有C系统的架构
- 要么脚本执行过程中会阻塞C代码运行,无法满足C端持续处理业务的需求
查阅eLua官方文档及示例后,仍不确定是否能实现脚本与C代码的非阻塞并行,也不清楚是否有更合适的替代方案
核心疑问
是否可以通过eLua实现如下非阻塞的分步执行逻辑:
int main() { initialize_everything(); load_script_from_memory(); while(1) { step_script(); step_other_logic(); if( has_new_script() ) { load_new_script(); } } }
硬件环境
测试硬件为STM32L476G-DISCO评估板,可接受资源占用更高但更优的替代方案
内容的提问来源于stack exchange,提问作者Ou Tsei
相关产品推荐
相关产品推荐

