Wince6使用K9F4G08U0A升级至512MNandFlash

来源:互联网 发布:java 字符串转换成int 编辑:程序博客网 时间:2024/06/06 12:55

1. WINCE600\PLATFORM\SMDKV210\SRC\COMMON\NANDFLASH\FMD\cfnand.h中只需要在这个数组里面增加K9F4G08U0A相关的参数

static NAND_FLASH_SPECg_supportedNAND[] = {{0xEC, 0xDC, SLC_NAND, 4096, 64, 2112, 2048, 64, 7, 7, 7},//K9F4G08U0A{0xEC, 0xDA, SLC_NAND, 2048, 64, 2112, 2048, 64, 7, 7, 7},//K9F2G08U0A{0xEC, 0xF1, SLC_NAND, 1024, 64, 2112, 2048, 64, 7, 7, 7},//K91FG08U0C{0x00, 0x00, SLC_NAND, 0, 0, 0, 0, 0}};

2. WINCE600\PLATFORM\SMDKV210\SRC\BOOTLOADER\STEPLDR\nand.c中,做如下修改:

void NAND_Init(void){    DWORD ReadID;BYTE cMID, cDID;    // Configure BUS Width and Chip Select for NAND Flash    // Initialize NAND Flash Controller    rNFCONF = (TACLS << 12) | (TWRPH0 <<  8) | (TWRPH1 <<  4) | (0<<0);     rNFCONT = (0<<17)|(0<<16)|(0<<10)|(0<<9)|(0<<8)|(1<<7)|(1<<6)|(1<<5)|(1<<4)|(0x3<<1)|(1<<0);    rNFSTAT = (1<<4);    NF_Reset();    // Get manufacturer and device codes.    if (!ReadFlashID(&ReadID))    {        //Uart_SendString("ID Err\n");        //Uart_SendDWORD(ReadID,1);        //Uart_SendString("!\n");    }    cMID = NF_GET_MID(ReadID);    cDID = NF_GET_DID(ReadID);    switch(cMID)    {    case 0xEC:    {    switch(cDID)    {    case 0xDA:// Samsung 2Gbit SLC - K9F2G08U0A    {    g_bLargeBlock = TRUE;    NEED_EXT_ADDR = TRUE;    break;    }case 0xDC:// Samsung 4Gbit SLC - K9F4G08U0A, Brian Liu{g_bLargeBlock = TRUE;NEED_EXT_ADDR = TRUE;    break;}    case 0xF1:// Samsung 1Gbit SLC - K91FG08U0C    {    g_bLargeBlock = TRUE;    NEED_EXT_ADDR = FALSE;    break;    }    default:    // Not supported NANDwhile(1);    break;    }break;        }    default:    // Not supported NAND    while(1);    break;    }}


完毕。

原创粉丝点击