固件开发


v-star*위위
2025-03-10 06:29:19 (1月前)
  1. 这个项目。

据我了解,

固件
</跨度>
软件放置在硬件上,以通过某种形式的输入给出指令的自主功能;只要输入…附加设备。

注意:没有引用,所以我知道这可能是不准确的。

我想知道的是如何

固件
</跨度>
或驱动程序放置在设备上而无需通过操作系统或存储安装……

2 条回复
  1. 0# 啊这回彻底死了 | 2019-08-31 10-32



    是的,特别是在较大的组件中。涉及lua的一个例子是

    http://nodelua.org/doc/index/



    但是,固件开发通常是一种极其内存(并且经常是CPU)受限的环境。



    C(或传统上,汇编程序)通常是首选,因为它可以生成极小的可执行文件,并且在堆栈使用方面非常有效。当您以字节或千字节计数内存时,这很重要。



    使用非编译语言意味着您需要包含一个小型解释器,并且您可能无法为此留出足够的内存。





    您已进行编辑,其中您建议“操作系统是一种固件”。
    从某种意义上说,这可能是真的。



    固件本身通常可以包含带有组件的操作系统。例如,某些家庭互联网路由器中的固件将包含一个操作系统(很可能是Linux!),但它仍然被视为固件。在具有“固件的嵌入式设备”的计算机与具有常规软件的“常规计算机”的计算机之间存在一些灰色区域,但是通常固件是在非常有限的环境中运行的计算机系统,通常非常具体用途。



    NetBSD在其内核中包含了Lua。已经开发了许多系统,它们不使用汇编(除了它的一小部分),C或C ++,而是使用其他语言 - 尽管它通常仍然是出于大小和性能原因而编译的。





    至于固件的实际传输(无论其形式如何),这取决于所讨论的设备。



    某些设备要求将固件刻录到组件中。 (在ROM中,虽然有各种类型的ROM,但有些可以重写)。



    其他设备要求在打开设备时传输固件。



    而其他人则拥有SDCard或电池供电的RAM或任何允许在重新启动时存储固件的内容。


登录 后才能参与评论