在微控制器或嵌入式平台上执行自定义脚本

Posted

技术标签:

【中文标题】在微控制器或嵌入式平台上执行自定义脚本【英文标题】:Executing custom scripts on microcontroller or embedded platforms 【发布时间】:2020-06-17 12:55:54 【问题描述】:

我有一个带 SD 读卡器的微控制器 (stm32) 开发板。我想构建一个自定义 LED 系统,用户可以在其中编写简单的脚本并保存在 SD 卡上,然后他们可以选择哪个

作为我想要做的一个非常基本的示例,假设我有 2 个 LED,我会编写一个这样的自定义脚本:

for(int i = 0; i < 10; i++)

 LED_1 = ON;
 DELAY(100);
 LED_1 = OFF;
 LED_2 = ON;
 DELAY(100);
 LED_2 = OFF;

我将它保存在 SD 卡上作为“script01.txt”。

当用户在 MCU 上选择此文件(使用 LCD 和按钮)时,MCU 应该执行脚本中所写的操作,例如切换相应的 GPIO 引脚并进行延迟。

我相信我想要做的是在运行时创建解释器?我确信这是可能的,但我不知道这样的系统叫什么以及从哪里获取更多信息?

我的意思是我可以轻松地编译我想要的例程并在 MCU 本身上对其进行编程,但我真的想让事情变得动态......假设我想把这个系统交给某人,这样他/她就可以轻松地做任何事情他/她想使用自定义脚本!

【问题讨论】:

在更大的 stm32 上你可以运行 lua 解释器 【参考方案1】:

是的,您想创建您的编程语言的解释器。这是一项非常艰巨的任务,在 uC 世界中几乎不使用解释语言。

【讨论】:

小型专用解释器在嵌入式世界中并不少见。例如,我编写了一个简单的类似 FORTH 的基于堆栈的解释器,用于写入 LCD 屏幕,这样我就可以编写文本和变量值以及画线等。它只有大约 300 行 C 代码,并且不使用太多内存。我同意这可能超出了 OP 的技能水平,但并非不可想象。【参考方案2】:

Embedded Lua 有时用作嵌入式系统上的解释器来运行简单的脚本。 这是一个支持 STM32 的实现:http://www.eluaproject.net/

【讨论】:

【参考方案3】:

由于您使用的是stm32,upython可能是一个不错的选择。

https://www.st.com/en/embedded-software/grpl-upython.html#overview

功能列表中提到了“文件系统支持 (FAT),具有自定义块设备和脚本的透明访问”。

它确实支持 cortex-m4 和 cortex-m7 stm32 设备。

【讨论】:

以上是关于在微控制器或嵌入式平台上执行自定义脚本的主要内容,如果未能解决你的问题,请参考以下文章

Moodle,如何添加自定义jQuery脚本以在所有页面上执行

beanshell入门:脚本中引用自定义的变量和方法和定义运行时变量

beanshell入门:脚本中引用自定义的变量和方法和定义运行时变量

zabbix自定义监控

zabbix自定义监控

Ubuntu20.04开机运行自定义脚本