Flash、eeprom、rom、ram

存储器

  • ram
  • rom
    • rom: 不能编程
    • prom: 可以写入一次
    • eprom: 多次擦写, 需要在紫外线照一下
    • eeprom: 任意修改
      • 狭义EEPROM:
      • 广义EEPROM: flash
        • nor flash: 字节读, 块擦除
        • nand flash: 页读取, 块擦除

ROM&RAM

Flash、eeprom、rom、ram_第1张图片
Flash、eeprom、rom、ram_第2张图片

EEPROM

  • 可随机访问/修改任意字节, 可向每个bit写入0/1, 掉电不丢失
  • 电路复杂成本高, 通常几k字节, 很少超过512k

flash

  • nor flash

    • 数据线与地址线分开, 像ram一样随机寻址, 可读取任一字节(无页), 按块擦除
    • 小容量(2~12M居多)
    • 损坏无法使用
    • 字节寻址, 程序可在nor flash中运行: 嵌入式系统常用小容量的nor flash存储引导代码, 用大容量的nand flash存放文件系统和内核
  • nand flash

    • 数据线与地址线复用, 不能随机寻址, 读取只能按页读取, 按块擦除
    • 读取速度慢, 擦写速度块
    • 数据密度大, 体积小, 成本低
    • 大容量居多
    • 擦除次数是norflash数倍
    • 可标记坏块, 使软件跳过坏块
  • flash

  • 每页: 256 Byte (2048 bit)

  • 每扇区: 16页

  • 每块: 16扇区

  • 最小擦除单位:扇区

  • 可选择擦除单位:扇区、块、全片

  • 最大编程(写入)单位:页( 256 Byte),大于256 Byte则需要循环写入。

  • 最小编程(写入)单位:1 Byte,即一次可写入 1~256 Byte的任意长度字节。

  • 未写入时FLASH里面的数据为全1,即0xFF。

  • 只能由 1 —> 0 写入,不能由 0 —> 1 写入,即如果已经写入过了,则需要先擦除(擦除后数据变为全1)再写入。

  • 示例:0xF0(1111 0000),即高4位可写入,低4位不可写入。

ref

  • EEPROM和flash的区别
  • 程序存储和运行时的内存分布

你可能感兴趣的:(单片机,嵌入式硬件)