1、FLASH初始化
先简单介绍下EMC控制器--EMC(external memory controller)外部存储控制器,主要是控制外部的存储设备,包括动态存储设备和静态存储设备。SDRAM属于动态存储设备,而FLASH则属于静态存储设备。初始化的过程主要是使能EMC控制器、配置相应控制flash的管脚、配置EMC控制器关于flash的参数寄存器三部分;
LPC2478针对nand flash初始化函数如下:
void NANDFLASHInit( void )
{
DWORD i;
EMC_CTRL = 0x00000001;//使能EMC控制器
PCONP |= 0x00000800; //使能EMC 的pclk
//-----以下部分是配置LPC2478上关于控制flash的管脚
IODIR0 &=~(1<<10); //配置P010作为FLASH的RB信号,输入
FIO0MASK &= ~(1 << 10);
IODIR0|=(1<<11); //配置P011作为FLASH的CE信号,输出
PINSEL4 |=(0x5<<28);
PINSEL6 = 0x55555555;
PINSEL8 = 0x55555555;
PINSEL9 = 0x50555555;
/* 以下配置EMC控制器关于静态存储器(FLASH)的相关参数 */
EMC_STA_CFG1 = 0x00000080;
EMC_STA_WAITWEN1 = 0x2;//CE