我正在寻找可以包含在嵌入式系统中的脚本语言,以允许用户根据系统事件(I / O端口更改,时间事件......)预先配置单元行为。所需的控制是
if (some_event)
{
do some stuff
delay N seconds
do more stuff
if (some condition)
{
do something
}
else
{
delay until condition
do something else
}
}
每个“do stuff”部分通常是改变IO的状态或允许/禁止处理一个或多个事件。
除非脚本语言实现在内部需要,否则不需要文本处理或文件处理。
我正在使用的处理器在构建正常操作代码后有大约8K的RAM和20K的程序存储。固件是用C语言编写的,因此脚本语言的任何源代码也必须在C中。
答案 0 :(得分:20)
我们使用Squirrel来完成这项工作。它类似于Lua,但引用计数而不是收集垃圾,因此it tends to work better in very tight memory。在不利方面,它的社区要小得多。
我也成功地看到Lisp embedded,特别是类似Scheme的派生词。
另请参阅其他StackOverflow问题:What are the available interactive languages that run in tiny memory?
答案 1 :(得分:10)
Lua是我作为嵌入式语言的首选。它是用C语言编写的,很容易将自己的函数暴露给Lua,并且通过它的外观已经完成了一些工作以使它在embedded systems上工作。
答案 2 :(得分:7)
对于嵌入式系统,请尝试eLua。
答案 3 :(得分:7)
传统的选择是Forth。微控制器等小型嵌入式系统是Forth的首选平台。有许多实现具有各种功能,目标平台和许可。 Forth Interest Group有一个commercial implementation和non-commercial implementations的列表。
答案 4 :(得分:4)
我会给Lua一个镜头,因为它是一种非常小的脚本语言。它可以完全嵌入
Lua是一种快速语言引擎,占用空间小,可以嵌入 轻松进入您的应用程序Lua有一个简单且记录良好的API 允许与其他语言编写的代码强大集成。 使用其他语言编写的库很容易扩展Lua。它 使用Lua也很容易扩展用其他语言编写的程序。 Lua已被用于扩展不仅用C和C ++编写的程序, 而且还有Java,C#,Smalltalk,Fortran,Ada,Erlang,甚至还有 其他脚本语言,例如Perl和Ruby。
答案 5 :(得分:2)
我在以前的项目中使用pawn(http://www.compuphase.com/pawn/pawn.htm)有很好的经验。它的衍生物也用于“E17”桌面环境,他们称之为“胚胎”。 (https://trac.enlightenment.org/e/wiki/Embryo)。
答案 6 :(得分:1)
您也可以尝试使用JavaScript,来自Google的V8 engine非常容易嵌入。语言本身也非常小,所以你几乎可以把它塑造成适合你域名的东西。
答案 7 :(得分:1)
嵌入有四种相当常见的语言(无特定顺序):
其中,Lisp和Forth可以说是最不友好的终端用户。 Lua目前似乎是最受欢迎的(它在游戏世界非常流行),Tcl可以说是最简单的学习(整个语言只有12条规则),并且是EDA世界中的事实语言。
答案 8 :(得分:0)
希望这些可以帮到你 在c应用程序中嵌入perl脚本
http://www.ibm.com/developerworks/linux/tutorials/l-perlscript/index.html
只是谷歌搜索更多信息。我相信perl可以帮助你进行模式(字符串)搜索。 要学习perl,请阅读本教程
http://mj12net.org/courses/perl/Teach%20Yourself%20Perl%20in%2021%20Days.pdf
这是一个很好的教程,你可以探索比你想象的更多。 谢谢