This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6455 emifnorfash



最近接手一个很老的项目,需要新增程序远程跟新功能。

芯片是c6455,norflash是S29GL512P10TFIV10,目前对flash的读写擦除都失败的,获取ID也不成功,下面是代码:

void EMIFA_Init (void)

{

EMIFA_BPRIO = 0x000000FE;
EMIFA_CE2CFG = 0x011488ae; //fpga
EMIFA_CE3CFG = 0x00240120; //flash
EMIFA_CE4CFG = 0x8000000F;
EMIFA_CE5CFG = 0x8000000F;
EMIFA_AWCC = 0x000002FF;

}

void norflash_readID()
{
Uint16 Manufacturer_ID = 0;
Uint16 Device_ID_word1 = 0;
Uint16 Device_ID_word2 = 0;
Uint16 Device_ID_word3 = 0;

*((Uint16 *)FLASH_CTL555) = FLASH_CMD_AA;
*((Uint16 *)FLASH_CTL2AA) = FLASH_CMD_55;
*((Uint16 *)FLASH_CTL555) = FLASH_CMD_90;

Manufacturer_ID = *((Uint16 *)FLASH_BASE + 0x000);
Device_ID_word1 = *((Uint16 *)FLASH_BASE + 0x001);
Device_ID_word2 = *((Uint16 *)FLASH_BASE + 0x00E);
Device_ID_word3 = *((Uint16 *)FLASH_BASE + 0x00F);
printf("norflash Manufacturer_ID : 0x%x\n", Manufacturer_ID);
printf("norflash Device_ID_word1 : 0x%x\n", Device_ID_word1);
printf("norflash Device_ID_word2 : 0x%x\n", Device_ID_word2);
printf("norflash Device_ID_word3 : 0x%x\n", Device_ID_word3);

*((Uint16 *)FLASH_BASE_123) = FLASH_RESET;
}

我怀疑是emif初始化的问题,请问flash的初始化与什么有关,还有请问有没有emif norflash的例程。

谢谢~