基于LPC2400系列ARM的NOR FALSH (SST39VF6401B)的文件系统的设计
LPC2400系列的ARM外部存储器控制器(EMC),支持异步静态存储器设备(如RAM,ROM,FLASH)和动态存储器(如SDRAM)。支持8位,16位,32位宽的静态存储器,4个独立的静态存储器片选,CSn0-3。
本文主要讲的是16位宽,片选信号CSn0的的静态存储器NOR FLASH。LPC2400系列的ARM操作16位存储器时,就需要LPC2400系列的ARM的地址线A1连接到存储器的地址A0处,固文件系统的头文件里NOR FLASH的地址定义为:
#define FLASH_ADDR 0x80000000 //CS0
// 转换地址。将要发送给SST39VF640的地址值进行转换,以便于LPC2478输出。
// 由于SST39VF640的A0是与LPC2478的A1相连,所以addr要左移1位。
#define GetAddr(addr) (volatile uint16 *)(FLASH_ADDR|(addr<<1))
在startup.s文件里,初始化静态存储器配置寄存器(EMCStaticConfig0-3),相应位如下:
31:21 |
20 |
19 |
18:9 |
8 |
7 |
6 |
5:4 |
3 |
2 |
1 |
保留 |
写保护(P) |
缓冲区使能(B) |
保留 |
延长等待(EW) |
字节定位状态(PB) |
片选极性(PC) |
保留 |
页模式(PM) |
保留 |
|