我把GPMC配置成8-Bit Nonmultiplexed Memory 模式,然后写地址的时候发现A0~A15不会输出,而在AD0~AD15上输出。下面是CONFIG1_1~CONFIG1_7的配置:
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG1))=0x0000; // 8位模式,非引脚复用
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG2))=0x080800; //片选信号CS OffTime 80ns
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG3))=0x20201; //
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG4))=0x8000800; //读使能#OE、写使能信号#WE持续48ns
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG5))=0x01060d0d;//读取周期 130ns,访问60ns
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG6))=0xe80;// 连续访问周期间隔140ns
*((volatile unsigned int * )(base+ OMAP2420_GPMC_CS1+OMAP2420_GPMC_CONFIG7))=0xf40;//物理地址0x00000000, 16MB window
读写存储器:
#define OMAP_WRITE_FRAM_ADDRESS(addr) (*((volatile uint32_t *)(base+OMAP2420_GPMC_CS1+OMAP2420_GPMC_NAND_ADDRESS)) = addr)
#define OMAP_WRITE_FRAM_DATA(data) (*((volatile uint8_t *)(base+OMAP2420_GPMC_CS1+OMAP2420_GPMC_NAND_DATA)) = data)
#define OMAP_READ_FRAM_DATA() (*((volatile uint8_t *)(base+OMAP2420_GPMC_CS1+OMAP2420_GPMC_NAND_DATA)))
不知道是哪里有问题,希望大侠们帮忙解决一下。谢啦!