Flash ROM分为两种:NOR Flash ROM 和 NAND Flash ROM。NOR Flash ROM 用法类似于SDRAM 内存,有地址总线、数据总线、控制总线,但是容量比较小,价格贵。NAND Flash ROM用法完全不同于SDRAM内存,容量大,价格便宜,现在的U盘实际上都是用NAND Flash ROM 制作的。
根据不同的ARM芯片,使用 Flash ROM 的方法也不尽相同。ARM7 时代,一般使用 NOR Flash ROM,因为软件体积比较小,比如S3C44B0,使用一片2MBytes的NOR Flash ROM,可以放下全部软件:Bootloader、uCLinux内核及文件系统。ARM9的芯片有两种用法:1、有些ARM芯片只能从NOR Flash ROM启动软件,所以扩展两片Flash ROM ,一片NOR Flash ROM存储Bootloader和Linux内核,一片容量大的NAND Flash ROM存储文件系统,常见的有AT91RM9200芯片;2、有些ARM9芯片内有专门的硬件机制,能让Bootloader直接从NAND Flash ROM中启动运行,所以就只需要扩展一片NAND Flash ROM,所有软件都放在这片 NAND Flash ROM 中,常见的有S3C2410、S3C2440。
S3C2440一般扩展联接一片64MBytes以上的NAND Flash ROM芯片,例如 K9F1208。S3C2440能直接从NAND Flash ROM上启动软件的原理是:S3C2440内有一块4KBytes的内置SRAM和NAND Flash ROM的硬件驱动电路,S3C2440上电启动时,将NAND Flash ROM的前4KBytes字节内容拷贝到内置SRAM中,然后运行SRAM中的软件,这样在设计软件时,Bootloader放在NAND Flash ROM的起始处,Bootloader的前4KBytes内容为ARM核心的初始化和NAND Flash ROM的软件驱动,并将整个Bootloader拷贝到SDRAM中运行,Bootloader在SDRAM运行完毕后,再从 NAND Flash ROM 中拷贝Linux内核到SDRAM,然后运行Linux。
NAND Flash ROM芯片(例如K9F1208)的引脚很少,不像SDRAM和NOR Flash ROM那样有专门的地址总线、数据总线、控制总线,而只有8根地址、数据复用的输入/输出线和若干控制线。所以NAND Flash ROM芯片与ARM芯片的联接是专门的方法。
S3C2440和K9F1208的联接方式介绍如下:
1、S3C2440与NAND Flash ROM联接的相关引脚有:数据总线DATA[31:0],OM[1:0],CLE命令锁存,ALE地址锁存,nFCE(NAND Flash 芯片使能)、nFRE(NAND Flash 读使能)、nFWE(NAND Flash 写使能)、NCON(NAND Flash 设置)、FRnB(NAND Flash 芯片状态----就绪/忙),另外还有GPG13、GPG14、GPG15用于 NAND Flash ROM 的设置。
2、K9F1208的引脚:I/O[7:1],CLE、ALE、CE、RE、WE、WP(写保护)、R/B。
3、S3C2440与K9F1208的联接:
S3C2440 K9F1208
DATA[7:0]---------------------I/O[7:0]
CLE------------------------------CLE
ALE------------------------------ALE
nFCE----------------------------CE
nFRE----------------------------RE
nFWE----------------------------WE
FRnB----------------------------R/B
4、特殊引脚
S3C2440:NCON(1)、GPG13(1)、GPG14(1)、GPG15(0),OM[1:0]要设置成“00”以保证S3C2440从NAND Flash ROM 启动。
K9F1208:WP(1)
NAND Flash ROM 芯片引脚较少,与ARM芯片的联接比较简单,当然还需要ARM芯片支持 NAND Flash ROM。
NOR Flash ROM 芯片与ARM芯片的联接类似于SDRAM芯片与ARM芯片联接,不再多说。
上一篇:ARM与Flash ROM
下一篇:ARM裸机程序——跑马灯
推荐阅读最新更新时间:2024-03-16 15:04