是的,特别是在较大的组件中。涉及lua的一个例子是 http://nodelua.org/doc/index/
但是,固件开发通常是一种极其内存(并且经常是CPU)受限的环境。
C(或传统上,汇编程序)通常是首选,因为它可以生成极小的可执行文件,并且在堆栈使用方面非常有效。当您以字节或千字节计数内存时,这很重要。
使用非编译语言意味着您需要包含一个小型解释器,并且您可能无法为此留出足够的内存。
您已进行编辑,其中您建议“操作系统是一种固件”。 从某种意义上说,这可能是真的。
固件本身通常可以包含带有组件的操作系统。例如,某些家庭互联网路由器中的固件将包含一个操作系统(很可能是Linux!),但它仍然被视为固件。在具有“固件的嵌入式设备”的计算机与具有常规软件的“常规计算机”的计算机之间存在一些灰色区域,但是通常固件是在非常有限的环境中运行的计算机系统,通常非常具体用途。
NetBSD在其内核中包含了Lua。已经开发了许多系统,它们不使用汇编(除了它的一小部分),C或C ++,而是使用其他语言 - 尽管它通常仍然是出于大小和性能原因而编译的。
至于固件的实际传输(无论其形式如何),这取决于所讨论的设备。
某些设备要求将固件刻录到组件中。 (在ROM中,虽然有各种类型的ROM,但有些可以重写)。
其他设备要求在打开设备时传输固件。
而其他人则拥有SDCard或电池供电的RAM或任何允许在重新启动时存储固件的内容。