非易失性可编程Flash ROM 拥有比一次性编程存储器(例如EPROM)更多的优势。最明显的是不用物理上更换芯片就能够在已售出的嵌入式设备上实现软件升级。Flash ROM 还能够为参数数据提供非易失性存储,例如定制产品设置和配置信息。
更多的Flash ROM在读操作的时候更像一个一般的只读存储器。但写操作你要注意到它的根本体系结构。
请注意不同的产品存在差异,所以在使用Flash ROM时一定要精读数据表格得到精确的信息。
块结构一个Flash ROM通常被分为很多块或扇区(例如64KB块)每个块可以被单独的擦除,在写入,以及保护不被意外的擦除或重编程。你不能对块中的单个字节编程除非先擦除整个块。Flash ROM需要特殊的软件次序来控制擦写和块保护。
理解块的体系结构可以让你知道代码在Flash ROM中的位置。Flash ROM最小被分为3个独立的区域,每个区包括一个或多个块,能够被独立的保护或再编程。
这样的破坏一边由于升级主块失败,或者在升级的时候掉电。主块的破坏还是能够处理的事件,而启动块的破坏将导致嵌入式设备不能启动或恢复。因此启动块需要特殊对待,包括硬锁保护,大多数的Flash ROM能够保护该区域的意外破坏。
一旦设备产品被初始化,就将启动代码限制为只读是一种非常好的方法。客户端对启动块的任何解锁和再编程尝试都可能意外地导致嵌入式产品的不可用。
顶部和底部启动设备启动代码和定制数据的大小一般比标准块小很多,为了避免浪费宝贵的空间,很多Flash ROM把第一块或最后一块分割为更小的子块,例如8KB。这是你更好的控制这些块的内容。
依赖于启动代码在ROM中的所在位置,这些设备有两种风格:顶部启动和底部启动设备。这取决于CPU在重启动/加电后从哪里获取指令:不论是存储空间顶部(例如Intel)或者存储空间底部(例如Motorola)。一些Flash ROM 可通过外部端脚来配置顶部或底部启动。
举例说明top和bottom的区别:
总结:Top boot类型的Flash的小块(block)放在高地址位上,而Bottom boot类型的flash的小块(block)起始位置为0x000000
文章评论(0条评论)
登录后参与讨论