为什么我们在嵌入式系统中内存有限?

Why we have limited memory in Embedded System?

我不知道为什么我们在嵌入式系统中内存有限。

为什么我们不能使用另一个内存或增加它而不是使用像 Rust&go 这样的高级语言?

技术提供了许多类型的内存,从最低内存到 SD 卡上的 2 TB 内存。

无论如何,为什么内存太重要了?

Space,电源,处理。通常很少space 可以添加到 SD 卡 reader(SD 卡不是内存!它是存储。比 RAM 慢得多),嵌入式系统必须针对功率进行优化(嵌入式系统通常不会不需要额外的 RAM,那么为什么要花这么多钱呢?)而且通常微控制器根本没有处理更大内存池的处理能力。有些处理器仍然限于 8 位!您无法使用 8 位或 16 位指针访问太多内存。

添加内存(以及访问它的总线,总线的芯片引脚,更强的电源为其供电,以及更多的电路板 space,等等),增加了成本;在最严格约束的系统中,每一分钱都很重要,因此如果可以避免的话,您不想在内存上花费更多的钱。

low level languages like Rust&go

这些都不算低级。汇编器和“裸”C 可能是。语言越高(也越舒适),它就越复杂,需要更多的内存。

Anyway why memory is too important

更少的内存意味着更多的时间用于重新计算。请记住,计算机只是在 无尽 纸条上运行的非常简单的机器(图灵机)。许多算法使用此 space 来提高速度和灵活性。

"I don't know why we have limited memory in Embedded System."

它以最最有效 的方式满足特定用户需求列表。它的最终成本必须具有竞争力,并将决定它的适销性。

允许以比工程工作站更低的速度、更少的内存和更少的功率创建嵌入式系统的最大因素在这个 wiki article 的第一句中找到:

"An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system."

这归结为适销性。假设您正在购买一个互联网控制的电灯开关。这是一个具有 专用功能 的设备示例,它允许它足够小以适合 space 不比标准壁挂式电灯开关大,使用小用途有限的微处理器,只使用足以 运行 一个小型应用程序的内存,使其能够响应控制其输出所需的有限数量的请求。 (例如,定时和开关)在比较 IoT 灯控制器时,您会注意到有几个相互竞争。价格都在彼此的几个百分点内。 但是,如果一家制造商选择使用与我们在通用台式计算机(与嵌入式系统相反)上看到的内存相当的内存进行设计,那么它将以巨大的价格差异脱颖而出。它可能具有最令人印象深刻的规格,但它在市场上不可行,并且不会很好地与其他产品竞争。

More is not always better...