NOR FLASH 烧写指南 TWENTYONE WWW.HJTAG.COM 对于硬件工程师和嵌入式软件工程师,在完成设计后,常常需要验证FLASH 是否工作。在应用中,也有很多时候需要对FLASH 进行写操作。这篇文章简单介绍了基于ARM 芯片的 NOR FLASH 烧写,并提供了 2 个具体的实例和源代码,希望对有需要的朋友有点帮助。在开始之前,先声明一下,这篇文章只是介绍了如何写NOR FLASH 的烧写驱动,和H-JTAG/H-FLASHER 没有直接的联系。 在后面的介绍里,如无特别说明,处理器指的是ARM 处理器,FLASH 指的都是NOR FLASH 。另外,BYTE 指的是8-BIT 的数据单元,HALF-WORD 代表的是16-BIT 的数据单元,而 WORD 则代表了 32-BIT 的数据单元。 1. NOR FLASH 的简单介绍 NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失。NOR FLASH 支持 Ex ecu te On Chip ,即程序可以直接在FLASH 片内执行。这点和NAND FLASH 不一样。因此,在嵌入是系统中,NOR FLASH 很适合作为启动程序的存储介质。NOR FLASH 的读取和RAM 很类似,但不可以直接进行写操作。对NOR FLASH 的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作。 从支持的最小访问单元来看,NOR FLASH 一般分为 8 位的和16 位的(当然,也有很多 NOR FLASH 芯片同时支持 8位模式和是16 位模式,具体的工作模式通过特定的管脚进行选择)。 对8 位的 NOR FLASH 芯片,或是工作在8-BIT 模式的芯片来说,一个地址对应一个 BYTE(8-BIT)的数据。例如一块 8-BIT 的 NOR FLASH ,假设容量为 4 个 BYTE。那芯片应该有 8 个数据信号 D7-D0 和2 个地址信号,A1-A0。地址 0x 0对应第 0 个 BYTE,地址 0x 1 对应于第 1BYTE,地址 0x 2 对应于第 2 个 BYTE,而地址 0x 3 则对应于第 3 个 BYTE。. 对16 位的 NOR FLASH 芯片,或是工作在16-BIT 模式的芯片来说,一个地址对应于一个 HALF-WORD(16-BIT)的数据。例如,一块 16-BIT 的 NOR FLASH ,假设其容量为 4 个 BYTE。那芯片应该有 16 个数据信号线 D15-D0 和1 个地址信号 A0。地址 0x 0 对应于芯片内部的第 0 个 HALF-WORD,地址 0x 1 对应于芯片内部的第 1 个 HALF-WORD。 FLASH一般都分为很多个 SECTOR,每个 SECTOR 包括一定数量的存储单元。对有些大容量的 FLASH,还分为不同的 BANK,每个 BANK 包括一...