Advertisement

嵌入式 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)

还没有任何评论哟~