平时用手机、电脑或者路由器,总会听到“只读存储器”这个词。比如刷固件时提示空间不够,或者系统升级失败,很可能就跟只读存储器(ROM)的容量有关。那这个只读存储器大小到底怎么看?其实方法没那么复杂,关键得知道从哪儿下手。
先搞清楚什么是只读存储器
只读存储器,英文叫 Read-Only Memory,简称 ROM。它和我们常说的运行内存(RAM)不一样,主要用来存放固定的程序或数据,比如设备的启动代码、系统引导程序、BIOS 或者嵌入式设备里的固件。这类存储器一般不能随便改写,断电后数据也不会丢。
举个例子,你家的智能门锁,按下指纹就能开门,背后就是 ROM 里存着识别程序在起作用。如果这个 ROM 太小,可能连更多用户指纹都存不下。
常见设备怎么看ROM大小
不同设备查看方式差别挺大。拿安卓手机来说,很多系统信息工具能直接读出来。可以试试在拨号界面输入 *#*#4636#*#*,进入“测试”菜单,点“手机信息”,里面有个“总内部存储”或“系统存储”的数值,这部分就包含了 ROM 的可用空间。
如果是开发板或者单片机这类硬件,比如常用的 STM32,ROM 大小通常看芯片型号就能判断。像 STM32F103C8T6,后面的 ‘C8’ 就代表 64KB 的闪存(Flash),也就是它的 ROM 容量。这时候不需要进系统,查手册就行。
通过命令行查看嵌入式设备
有些 Linux 路由器或者开发板跑的是 OpenWRT 这类系统,可以通过 SSH 登录后执行命令查看。打开终端,输入:
cat /proc/mtd
输出结果会列出各个分区,其中 mtd0 通常是 boot 分区,后面的 size 值就是 ROM 的大小,单位是十六进制。比如 size=0x100000,换算成十进制是 1048576 字节,也就是 1MB。
再比如要看 ESP8266 模块的 ROM(准确说是 Flash)大小,可以用 esptool 工具扫描:
esptool.py flash_id
返回结果里会有类似 “Detected flash size: 4MB” 的提示,这就明确了它的只读存储能力。
Windows 设备也能查
老式工控机或者带 BIOS 固件的设备,可以进主板的 DMI 信息里找。按 Win+R 输入 wmic,回车后再输入:
baseboard get serialnumber,product,manufacturer
虽然不直接显示 ROM 大小,但结合主板型号去官网查规格书,基本都能找到 BIOS 芯片对应的容量,常见的有 8MB、16MB 甚至 32MB。
还有一种情况是看软件烧录工具。比如用 STC-ISP 烧单片机程序时,选择型号后界面会自动显示“程序存储器”大小,比如“8K”,这就是该芯片的 ROM 容量。
别把 ROM 和硬盘搞混了
有人会把电脑的硬盘当成 ROM,其实不是一回事。硬盘是可读写的外部存储,而 ROM 是固化程序用的内部存储。比如你的 U 盘插上去能删文件,那肯定不是 ROM。真正的只读存储器,普通用户根本没法直接往里写东西,除非用专用编程器。
再打个比方,就像电影 DVD,买回来内容就定死了,你能看但不能改,这跟 ROM 的特性很像。而硬盘更像是你可以不断录新节目的录像带。