亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? f29lv160.c

?? 44b0讀寫FLASH的代碼
?? C
字號:
#include "44b.h"
#include "typDef.h"

#define FLASH_START_ADDR          0x0000000
#define FLASH_CHIP_HWORD_SIZE     0x100000              //This flash has 1M Hwords
#define FLASH_SECTOR_HWORD_SIZE   0x8000                //The size of each sector of this flash is 32k hwords (1hword = 2 bytes)

#define FLASH_ADDR_UNLOCK1        0x0555
#define FLASH_ADDR_UNLOCK2        0x02aa
#define FLASH_DATA_UNLOCK1        0xaaaa
#define FLASH_DATA_UNLOCK2        0x5555
#define FLASH_SETUP_WRITE         0xa0a0
#define FLASH_SETUP_ERASE         0x8080
#define FLASH_CHIP_ERASE          0x1010
#define FLASH_SECTOR_ERASE        0x3030


STATUS  flashOpOverDetect(UINT16 *ptr,  UINT16 trueData, ULONG timeCounter)
{
    ULONG timeTmp = timeCounter;
    volatile UINT16 *pFlash = ptr;
    UINT16 buf1, buf2,curTrueData;
	
    curTrueData = trueData & 0x8080;                  
    while((*pFlash & 0x8080) != curTrueData) {
        if(timeTmp-- == 0) break;
    }
	
    timeTmp = timeCounter;
    buf1 = *pFlash & 0x4040;			
    while(1) {
        buf2  = *pFlash & 0x4040;
        if(buf1 == buf2) 
            break;
        else
            buf1 = buf2;
      
        if(timeTmp-- == 0) 
            return ERROR;
	
    }
    
    return OK;
}


void delay(void)
{
    UINT32 i, temp;
    for (i = 0; i < 1000; i++) {
        temp = i;
    }
}

UINT16 *flashWrite(UINT16 *flashAddr, UINT8 *buffer, ULONG length)
{
    ULONG i, cLength;
    volatile UINT16 *flashPtr;
    volatile UINT16 *gBuffer;
	
    flashPtr = flashAddr;
    cLength = (length + 1)/2;			
    gBuffer = (UINT16 *)buffer;      
	
    while (cLength > 0) {
        *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_DATA_UNLOCK1;    
        *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK2) = FLASH_DATA_UNLOCK2;
        *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_SETUP_WRITE;
        *flashPtr = *gBuffer;                                                   
//        delay();		
        if(flashOpOverDetect((UINT16 *)flashPtr, *gBuffer, 0x2000000)) {
            while(1);  
            //Uart_Printf(0,"warning: write flash may failed at:0x%x.\n", (int)flashPtr);
        }
        cLength--;
        flashPtr++;
        gBuffer++;
    }	
	
    flashPtr = flashAddr;
    gBuffer = (UINT16 *)buffer; 
    cLength = length/2;
    for(i=0; i<cLength; i++) {
        if(*flashPtr++ != *gBuffer++) {    
            //Uart_Printf(0,"Error: write failed in FLASH39vf160 at 0x%x on verification.\n", (int)flashPtr);
            while(1);
	   return NULL;
        }
    }
    
    if(length%2) {
        if((*flashPtr++ & 0x00ff) != (*gBuffer++ & 0x00ff)) {
            //Uart_Printf(0,"Error: write failed in FLASH39vf160 at 0x%x on verification.\n", (int)flashPtr);
            while(1);
            return NULL;	    
        }
    }
    
    return (UINT16 *)flashPtr;
}


STATUS flashChipErase(void)
{
    int i;
    volatile UINT16 *flashPtr = NULL;
    
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_DATA_UNLOCK1;			
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK2) = FLASH_DATA_UNLOCK2;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_SETUP_ERASE;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_DATA_UNLOCK1;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK2) = FLASH_DATA_UNLOCK2;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_CHIP_ERASE;			

    flashPtr = (volatile UINT16 *)FLASH_START_ADDR;			  

    if(flashOpOverDetect((UINT16 *)flashPtr, 0xffff, 0x3000000) != OK) {
        //Uart_Printf(0,"warning: Chip Erase time out!\n");	
    }	
	
    flashPtr = (volatile UINT16 *)FLASH_START_ADDR;			  
    for(i=0; i<FLASH_CHIP_HWORD_SIZE; i++,flashPtr++) {
        if(*flashPtr != 0xffff) {
            //Uart_Printf(0,"Debug: Erase failed at 0x%x in FLASH39VF160 on verification.\n", (int)flashPtr);
            while(1);
            return ERROR;
        }
    }
	
    return OK;
}    


STATUS flashSectorErase(UINT16 *pSector)
{
    int i;
    volatile UINT16 *flashPtr = pSector;
    
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_DATA_UNLOCK1;			
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK2) = FLASH_DATA_UNLOCK2;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_SETUP_ERASE;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK1) = FLASH_DATA_UNLOCK1;
    *((volatile UINT16 *)FLASH_START_ADDR + FLASH_ADDR_UNLOCK2) = FLASH_DATA_UNLOCK2;
    *(volatile UINT16 *)flashPtr = FLASH_SECTOR_ERASE;		

    if(flashOpOverDetect((UINT16 *)flashPtr, 0xffff, 0x20000) != OK) {
        //Uart_Printf(0,"warning: Sector Erase time out!\n");	
        while(1);
    }	
	
    for(i=0; i<FLASH_SECTOR_HWORD_SIZE; i++,flashPtr++) {
        if(*flashPtr != 0xffff) {
            //Uart_Printf(0,"Debug: Erase failed at 0x%x in FLASH39VF160 on verification.\n", (int)flashPtr);
            while(1);
	   return ERROR;
        }
    }

    return OK;
}    




void Port_Init(void)
{    //CAUTION:Follow the configuration order for setting the ports. 
    // 1) setting value 
    // 2) setting control register 
    // 3) configure pull-up resistor.  

    //PORT A GROUP
    //GPA9 ADDR23 ADDR22 ADDR21 ADDR20 ADDR19 ADDR18 ADDR17 ADDR16 ADDR0		      
    //  0,    1,     1,    1,     1,     1,     1,      1,     1,    1
    rPCONA=0x1ff;	
    rPDATA=0x0;
    //PORT B GROUP
    //GPB10  GPB9 nGCS3 nGCS2 nGCS1 GPB5 GPB4 nSRAS nSCAS SCLK SCKE
    //  0,    0,    1,	1,    1,    0,    0,	1,    1,   1,   1	
    rPCONB=0x1Cf;
    
    //PORT C GROUP
    //IISLRCK  IISD0 IISDI IISCLK VD7 VD6 VD5 VD4 nXDACK1 nXDREQ1 GPC10 GPC11 TXD1 RXD1 GPC14 GPC15
    //All input
    //  11      11    11    11    11  11   11  11   11      11     01	01     11   11   01    01
    rPDATC=0x8400;
   // rPCONC=0x5F5FFFFF;	
    rPCONC=0xfffaffff;

    rPUPC=0x33ff;	//should be enabled	
   
    //PORT D GROUP
    //VFRAME VM VLINE VCLK VD3 VD2 VD1 VD0
    //    10,10,   10,	10, 10,	10, 10,	10  
    rPCOND=0xaaaa;	
    rPUPD=0xff;

    //PORT E GROUP
    //PE0:FOUT, PE1:TxD0, PE2:RxD0, GPE3, GPE4, GPE5,GPE6,GPE7, CODECLK   
    //	    10       10,      10,    01  , 01,   01,  01,  01,   10
//    rPCONE=0x2552A;	
    rPCONE=0x255a8;	

    rPUPE=0xff;	
    rPDATE=0X68;

    //PORT F GROUP
    //IICSCL IICSDA  nWAIT nXBACK0 nXDREQ0 GPF5 GPF6 GPF7 GPF8 
    //  10     10      10    10      10     0    0    0    0
   // rPCONF=0x2A;
    rPCONF=0x3ea;

    rPUPF=0xff;

    //PORT G GROUP
    //EINT0 EINT1 EINT2 EINT3 GPG4 GPG5 GPG6 GPG7
    //	  0x0
    //  11      11   11     11   01   01   01   01
    rPDATG=0x0;
//    rPCONG=0x55FF;
    rPCONG=0x557f; 
    rPUPG=0xf;
    
    rSPUCR=0x7;  //pull-up disable
    rEXTINT=0x22222022;  //All EINT[7:0] will be falling edge triggered.
}

void Main(void)
{
    UINT8* tonybuf = (UINT8*)(0xc200000);
    //Port_Init();
    flashChipErase();
    flashWrite(0x0, tonybuf, 128*1024);
}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区激情小说| 99久久久精品| 在线欧美日韩国产| 2024国产精品| 日韩影院精彩在线| av在线不卡网| 久久久美女毛片| 日日摸夜夜添夜夜添国产精品| 成人午夜看片网址| 精品少妇一区二区三区日产乱码 | 色婷婷精品久久二区二区蜜臀av| 在线电影欧美成精品| 最新日韩av在线| 国产一区二区三区在线观看免费视频 | 欧美亚洲图片小说| 久久久久久久久99精品| 日本成人中文字幕| 欧美日韩在线亚洲一区蜜芽| 国产精品大尺度| 国产不卡视频在线观看| 久久久精品tv| 极品少妇xxxx精品少妇偷拍| 91精品国产免费久久综合| 一区二区三区不卡在线观看 | 26uuu久久综合| 日本欧美一区二区| 欧美另类高清zo欧美| 一区二区日韩av| 欧美午夜精品一区二区蜜桃 | 7799精品视频| 日韩精品久久久久久| 欧美色老头old∨ideo| 樱桃视频在线观看一区| 91蜜桃传媒精品久久久一区二区| 国产日韩高清在线| www.日本不卡| 综合在线观看色| 欧美在线制服丝袜| 偷拍一区二区三区| 日韩手机在线导航| 精品一区二区免费在线观看| 日韩久久免费av| 国产美女娇喘av呻吟久久| 久久精品亚洲精品国产欧美| 国产大陆亚洲精品国产| 日本一区二区免费在线观看视频| 国产91高潮流白浆在线麻豆| 国产精品国产自产拍高清av| 94-欧美-setu| 午夜久久久久久久久| 欧美一区二区免费| 精品一区二区三区免费观看| 国产精品视频九色porn| 日本道免费精品一区二区三区| 亚洲男人电影天堂| 欧美精品第1页| 懂色av一区二区在线播放| 成人欧美一区二区三区视频网页| 欧美日韩一区二区欧美激情 | 91麻豆6部合集magnet| 亚洲一二三四区不卡| 91精品国产综合久久久久久久| 国产一区二区毛片| 亚洲视频一区二区在线| 91精品国产免费| 成人av在线网站| 日韩影院精彩在线| 国产精品国产三级国产aⅴ中文 | 亚洲综合免费观看高清在线观看| 欧美精品在欧美一区二区少妇| 久久精品国产**网站演员| 久久综合色鬼综合色| 欧美性xxxxxx少妇| 免费日韩伦理电影| 国产欧美精品一区二区色综合| www.日韩大片| 午夜电影久久久| 久久一区二区三区四区| 免费精品视频最新在线| 日韩欧美一级二级三级| 国产黄色成人av| 亚洲.国产.中文慕字在线| 精品999在线播放| 国产精品一区二区免费不卡| 亚洲国产wwwccc36天堂| 久久亚洲综合色一区二区三区 | 国产午夜精品福利| 91黄色在线观看| 国内精品久久久久影院薰衣草| 国产精品嫩草影院av蜜臀| 欧美久久久影院| 成人综合在线观看| 亚洲国产日韩一区二区| 91久久国产最好的精华液| 成人黄色av网站在线| 日韩在线播放一区二区| 国产精品免费免费| 9191久久久久久久久久久| 成人av在线观| 韩日欧美一区二区三区| 亚洲三级在线播放| 国产精品高潮呻吟| 日韩欧美的一区二区| 91社区在线播放| 国产老女人精品毛片久久| 日日夜夜免费精品| 一区二区三区国产豹纹内裤在线| 日韩精品中文字幕一区二区三区| 欧美丰满美乳xxx高潮www| 91猫先生在线| 成人做爰69片免费看网站| 夜夜精品视频一区二区| 国产精品素人视频| 精品国产伦一区二区三区观看体验| 成人在线综合网站| 国产一区视频网站| 麻豆免费精品视频| 肉色丝袜一区二区| 无吗不卡中文字幕| 一区二区三区欧美亚洲| 国产午夜精品久久久久久免费视 | 久久精品一二三| 日韩欧美123| 日韩一区二区三区视频在线观看 | 成人午夜视频在线| 国产精品中文欧美| 国产精品香蕉一区二区三区| 久99久精品视频免费观看| 蜜臀av一区二区| 免费高清不卡av| 奇米综合一区二区三区精品视频| 亚洲成人在线网站| 亚洲电影一级黄| 亚洲国产一区视频| 午夜精品久久久久久久99水蜜桃| 午夜久久久久久电影| 五月激情综合色| 天堂久久一区二区三区| 亚洲成人三级小说| 五月婷婷久久综合| 青青草97国产精品免费观看无弹窗版| 日韩影院在线观看| 久草这里只有精品视频| 国产成人在线视频播放| 成人午夜电影网站| 91在线观看视频| 欧美伊人久久大香线蕉综合69 | 精品国产成人系列| 国产精品全国免费观看高清| 国产精品国产三级国产a| 一区二区在线看| 午夜视频一区二区| 免费成人av资源网| 九色porny丨国产精品| 成人激情动漫在线观看| 色婷婷激情久久| 日韩限制级电影在线观看| 精品卡一卡二卡三卡四在线| 国产欧美一区二区精品仙草咪| 中文字幕av免费专区久久| 亚洲精品欧美专区| 国产传媒一区在线| 91精彩视频在线观看| 日韩精品一区二区三区四区 | 久久看人人爽人人| 亚洲精品免费在线播放| 午夜精品福利久久久| 99精品一区二区三区| 91精品久久久久久久久99蜜臂| 国产亚洲精久久久久久| 久久精品一级爱片| 亚洲青青青在线视频| 亚洲一区二区三区视频在线播放| 亚洲福利视频一区| 成人免费视频国产在线观看| 欧美老女人在线| 亚洲精品欧美专区| 国产精品一区二区男女羞羞无遮挡| 色天使色偷偷av一区二区| 久久天堂av综合合色蜜桃网| 一区二区三区欧美日韩| 国产九九视频一区二区三区| 欧美喷潮久久久xxxxx| 久久精品水蜜桃av综合天堂| 亚洲一区成人在线| 成人av资源在线| 中文字幕精品综合| 美国十次综合导航| 在线观看91视频| 综合分类小说区另类春色亚洲小说欧美| 美日韩一区二区三区| 4438x亚洲最大成人网| 亚洲欧美成人一区二区三区| 国产麻豆视频一区| 欧美福利电影网| 亚洲综合在线免费观看| 国产91精品一区二区麻豆亚洲| 欧美在线|欧美| 亚洲另类在线制服丝袜| av一区二区久久|