gpt4 book ai didi

Lua 共存于裸机嵌入式 c 应用程序中

转载 作者:行者123 更新时间:2023-12-05 01:20:57 26 4
gpt4 key购买 nike

我正在调查是否可以让 lua 与我的实时嵌入式应用程序共存。我想使用 lua,以便客户可以在应用程序中制作自定义命令。所有的 I/O 都由主应用程序完成。所以 lua 只需要与主 C 应用程序通信。据我了解,这不是问题。
我在想主应用程序生成一个事件,然后启动一个自定义 lua 应用程序。

如何防止它使用所有 cpu 时间,例如在无限循环中。我该如何解决? (超时错误什么的)
是否可以减少 lualib 的代码大小?

谢谢,
电动汽车

最佳答案

How do I prevent it to use all the cpu time, for example in an endless loop. how do I solve that? (timeout error or something)



以尽可能低的线程优先级运行 Lua 进程,这样如果用户代码有“忙循环”,它可能会被任何其他线程抢占。如果您有其他具有相同优先级的线程,则需要确保尽可能在调度程序中启用时间片。

你也可以实现一个 Lua 进程看门狗——一个更高优先级的任务,它监视 Lua 进程的事件,如果它忙于等待,可以终止它。这可以在不以任何方式改变 Lua 的情况下实现,方法是在空闲任务循环中增加一个计数器,并按如下方式安排任务优先级:
 -----------------
| All other tasks |
| ... |
|-----------------|
| Lua watchdog |
|-----------------|
| Lua |
|-----------------|
| Idle |
-----------------

如果 Lua 看门狗观察到空闲计数器停止增加的时间过长,那么 Lua 进程就会停止并且看门狗必须采取纠正措施 - 杀死 Lua 进程/线程,恢复资源或发出警告消息。

And is it possible to reduce the code size of the lualib?



考虑使用 eLua与其自己移植Desktop Lua,不如考虑 NodeMCU project FAQ 中描述的技术。 .

关于Lua 共存于裸机嵌入式 c 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com