以ARM为中心的嵌入式设备,是一种以计算机为中心的产品,有必要要有存储软件的存储器。单片机中软件存储在单片机芯片内的ROM存储器中,单片机的ROM容量很小,一般都小于1MBytes,所以ROM集成在芯片内。PC机要求的ROM比较大,主板上发动计算机用的BIOS存储在主板上一片1MBytes左右的Flash ROM中,操作体系和应用程序存储在硬盘中。ARM产品由于体积的原因,一般都不必硬盘,但软件的体积一般都在几MBytes以上,一般在芯片外扩展联接容量较大的Flash ROM存储软件。
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芯片联接,不再多说。