嵌入式系统/存储单元
一种既便宜又无用的存储器是只读存储器 (ROM)。我说它无用是因为你只能编程一次,然后你就永远无法改变其中的数据。这使得它毫无用处,因为你无法升级ROM芯片上的信息(无论是程序代码还是数据),也无法在出现错误时修复它。……因此,它们通常被称为“可编程只读存储器”(PROM),因为你可以编程一次,但之后就无法再改变它了。
与PROM形成对比的是EPROM(“可擦除可编程只读存储器”)。EPROM芯片有一个小窗口,由玻璃或石英制成,可用于擦除芯片上的存储器。要擦除EPROM,需要打开窗口(它们通常带有某种保护装置或盖子),并将EPROM暴露在紫外线下以擦除存储器,并允许它重新编程。
比EPROM更进一步的是EEPROM(“电可擦除可编程只读存储器”)。EEPROM可以通过暴露在电荷中擦除。这意味着EEPROM可以在电路中擦除(与需要从电路中移除并暴露在紫外线下的EPROM不同)。适当的电荷将擦除整个芯片,因此你无法一次只擦除某些数据项。
许多现代微控制器在板载都有一个EEPROM部分,可用于永久存储系统参数或校准值。这些通常被称为非易失性存储器 (NVM)。它们可以作为单个字节或字节块进行访问 - 读取和写入。与闪存一样,EEPROM只允许有限数量的写入周期,通常是几万次。
对板载NVM的写入访问通常比RAM慢得多。嵌入式软件必须考虑到这一点,并在后台“排队”写入请求。
随机存取存储器 (RAM) 是一种临时的、易失性的存储器,需要持续的电流来保持信息。因此,RAM芯片在关闭电源后将不会存储数据。RAM比ROM更贵,而且往往非常宝贵:嵌入式系统可以有许多KB的ROM(有时是MB甚至更多),但通常它们只有不到 100 **字节** 的RAM可用于程序流程。
闪存结合了RAM和ROM的最佳部分。与ROM一样,闪存可以在关闭电源时保存数据。与RAM一样,闪存可以在程序执行的任何时间,整体或部分地进行电气重新编程。
闪存模块只适合有限数量的读/写循环,这意味着如果使用过度,它们会烧毁。因此,闪存更适合存储持久数据,而RAM应该用于存储易失性数据项。