嵌入式 Lua 在 FreeRTOS 环境中移植多线程操作(三)
发布时间
阅读量:
阅读量
然而,将前文所述方式应用于FreeRTOS系统后,结果却未能达到预期效果。
经过反复尝试与调整,持续耗费了数周时间,最终仍成功达成目标,现将实际运行效果进行展示。
压力测试中配置了11个线程,LED以100ms的间隔进行闪烁,同时10个打印线程均能正常运作。

中途遇到的问题记录
在频繁执行lua文件的过程中,系统会反馈以下错误提示:
[#err : execute fail(1) cannot open 0:/TEST.LUA: No error (errno = 0)]
产生该问题的主要因素在于文件开启操作过于迅速,从而引发读取过程中的冲突现象。因此,在进行文件相关操作时,应当引入互斥锁机制以确保操作的有序性。此外,需要特别注意的是,lua语言中所涉及的锁定函数lua_lock与解锁函数lua_unlock也必须被正确实现,否则将导致系统运行紊乱。实际上,仅需配置一个独立的互斥信号量即可有效解决此类问题。
实现说明
仅依靠前文所述的函数形式,无法达成Lua多线程功能的实现。
在gethua平台上发现了一段开源代码 [Lua-RTOS-ESP32](ht
全部评论 (0)
还没有任何评论哟~
