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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? intelflash.c

?? 在55XDSP下寫FLASH的程序
?? C
字號:
/*
 *  Copyright (C) 2001, Spectrum Digital, Inc.  All Rights Reserved.
 */
 
#include "5509.h"
#include "util.h"
#include "data.h"

#define FLASH_NORMALBLOCKS          31
#define FLASH_NORMALBLOCKSIZE       0x8000
#define FLASH_PARAMBLOCKS           8
#define FLASH_PARAMBLOCKSIZE        0x1000
#define FLASH_MFGID                 0x0089
#define FLASH_DEVID                 0x8890  

#define TIMEOUT_PROGRAM             200
#define TIMEOUT_ERASE               5000000

#define CMD_READ_ARRAY	        	0x00ff 	// Intel commands
#define CMD_READ_ID	            	0x0090
#define CMD_READ_STATUS	        	0x0070
#define CMD_CLEAR_STATUS	    	0x0050
#define CMD_WRITE_ARRAY         	0x0040
#define CMD_ALTWRITE_ARRAY      	0x0010
#define CMD_ERASE_ARRAY         	0x0020
#define CMD_CONFIRM_ERASE       	0x00d0
#define CMD_ERASE_SUSPEND       	0x00b0

#define BIT_R                   	0x0001  // Intel status
#define BIT_BLS                	 	0x0002
#define BIT_PSS                 	0x0004
#define BIT_VPPS                	0x0008
#define BIT_PS                  	0x0010
#define BIT_ES                  	0x0020
#define BIT_ESS                 	0x0040
#define BIT_WSMS                	0x0080


int Flash_Poll(unsigned long addr, unsigned short mask, unsigned short maskval, unsigned long usectimeout)
{
    unsigned short i, status;
    
    for (i = 0; i < usectimeout; i++)
    {
        // Read location
        status = Logic_ReadFlash(addr);
        
        // Check for bit
        if ((status & mask) == maskval)
            return 1;
        
        // Wait 1 usec before trying again    
        SWDelayUsec(1);
    }
    
    // Return 0 if timeout
    return 0;
}

unsigned short Flash_CheckMfgId()
{
    unsigned short mfgid, devid;
    
    // Issue Read ID command
    Logic_WriteFlash((unsigned long)0, CMD_READ_ID);

    // Read IDs
    mfgid = Logic_ReadFlash((unsigned long)0);
    devid = Logic_ReadFlash((unsigned long)1);
    
    // Check IDs
    if ((mfgid != FLASH_MFGID) || (devid != FLASH_DEVID))
        return ERR_FLASH_MFGID;
        
    return 0;
}

unsigned short Flash_EraseBlocks()
{
   
   Logic_WriteFlash(0x00020000, CMD_CLEAR_STATUS);
   Logic_WriteFlash(0x00020000, CMD_ERASE_ARRAY);
   Logic_WriteFlash(0x00020000, CMD_CONFIRM_ERASE);


   if (!Flash_Poll(0x00020000, BIT_WSMS, BIT_WSMS, TIMEOUT_ERASE))
         return ERR_FLASH_ERASE;
   
   Logic_WriteFlash(0x00028000, CMD_CLEAR_STATUS);
   Logic_WriteFlash(0x00028000, CMD_ERASE_ARRAY);
   Logic_WriteFlash(0x00028000, CMD_CONFIRM_ERASE);


   if (!Flash_Poll(0x00028000, BIT_WSMS, BIT_WSMS, TIMEOUT_ERASE))
         return ERR_FLASH_ERASE;
                           
   return 0;
}
unsigned short Flash_TestBlock1(unsigned long addr, unsigned long size)
{
    unsigned short pattern;
    unsigned long  i;
    
    
    for(i = 0; i < size; i++)
    {
        pattern = (*((unsigned short *)(0x8003+i)))& 0xffff;
        
        
        Logic_WriteFlash(addr, CMD_CLEAR_STATUS);
        Logic_WriteFlash(addr, CMD_WRITE_ARRAY);
        Logic_WriteFlash(addr, pattern);
        
        
        if (!Flash_Poll(addr, BIT_WSMS, BIT_WSMS, TIMEOUT_PROGRAM))
            return ERR_FLASH_PROGRAM;
            
        
        Logic_WriteFlash(addr, CMD_READ_ARRAY);
        if (pattern != Logic_ReadFlash(addr))
        {
            
            return ERR_FLASH_VERIFY;
        }
            
        addr++;
    }

    return 0;
}

unsigned short Flash_TestBlock2(unsigned long addr, unsigned long size)
{
    unsigned short pattern;
    unsigned long  i;
    
    
    for(i = 0; i < 32767; i++)
    {
        pattern = (*((unsigned short *)(0x010003+i)))& 0xffff;
        
        
        Logic_WriteFlash(addr, CMD_CLEAR_STATUS);
        Logic_WriteFlash(addr, CMD_WRITE_ARRAY);
        Logic_WriteFlash(addr, pattern);
        
        
        if (!Flash_Poll(addr, BIT_WSMS, BIT_WSMS, TIMEOUT_PROGRAM))
            return ERR_FLASH_PROGRAM;
            
        
        Logic_WriteFlash(addr, CMD_READ_ARRAY);
        if (pattern != Logic_ReadFlash(addr))
        {
            
            return ERR_FLASH_VERIFY;
        }
            
        addr++;
    }
    
    pattern = 0x0002;
        
        
    Logic_WriteFlash(addr, CMD_CLEAR_STATUS);
    Logic_WriteFlash(addr, CMD_WRITE_ARRAY);
    Logic_WriteFlash(addr, pattern);
        
        
    if (!Flash_Poll(addr, BIT_WSMS, BIT_WSMS, TIMEOUT_PROGRAM))
       return ERR_FLASH_PROGRAM;
            
        
    Logic_WriteFlash(addr, CMD_READ_ARRAY);
    if (pattern != Logic_ReadFlash(addr))
    {
            
       return ERR_FLASH_VERIFY;
    }
            
    return 0;
}

unsigned short Flash_write_div()
{
    unsigned long addr, size;
    unsigned short status;


#if(0)
    while(1)
    {
        *((unsigned short *)0x401000) = 0x0000;
        SWDelayMsec(1);
        *((unsigned short *)0x401000) = 0xffff;
        SWDelayMsec(1);
    }
#endif

    
    if ((status = Flash_CheckMfgId()) > 0)
        return status;
    
    if ((status = Flash_EraseBlocks()) > 0)
        return status;
    
    addr = 0x00020000;
    
    size = 0x8000;
        
    if ((status = Flash_TestBlock1(addr, size)) > 0)
        return status;
    
    addr = 0x00028000;
    
        
    if ((status = Flash_TestBlock2(addr, size)) > 0)
        return status;       
      
    
    return 0;
}







?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777午夜精品视频在线播放| 久久成人18免费观看| 国产日韩三级在线| 久久婷婷综合激情| 国产精品久久毛片av大全日韩| 精品美女在线观看| 亚洲国产成人在线| 亚洲欧美日韩中文播放| 亚洲精品国产精华液| 亚洲资源中文字幕| 国产一区二区中文字幕| 成人av网站在线| 欧洲一区二区三区在线| 91精品国产一区二区三区| 在线精品观看国产| 精品国产乱码久久久久久影片| 欧美国产成人精品| 偷拍与自拍一区| 国产乱子伦视频一区二区三区 | 欧美日韩小视频| 精品成人私密视频| 日韩国产欧美在线观看| 水野朝阳av一区二区三区| 久久69国产一区二区蜜臀| 99久久免费精品高清特色大片| 欧美日韩国产首页在线观看| 欧美激情一区二区三区不卡| 日本少妇一区二区| 日韩一级精品视频在线观看| 日韩一区二区精品在线观看| 国产精品成人免费| 精品中文字幕一区二区小辣椒| 日本韩国欧美一区| 中文字幕不卡的av| 国产又粗又猛又爽又黄91精品| 在线观看一区日韩| 亚洲麻豆国产自偷在线| 成人av网址在线观看| 亚洲国产高清aⅴ视频| 国产成a人亚洲精品| 国产香蕉久久精品综合网| 国产美女av一区二区三区| 日韩你懂的电影在线观看| 免费国产亚洲视频| 一本到三区不卡视频| 一区二区三区欧美久久| caoporn国产一区二区| 国产欧美日本一区二区三区| 日韩福利电影在线| 成人av综合在线| 亚洲人精品午夜| 91精品办公室少妇高潮对白| 亚洲嫩草精品久久| 91蜜桃网址入口| 欧美aa在线视频| 国产精品久久国产精麻豆99网站| www.亚洲免费av| 性久久久久久久久| 亚洲国产岛国毛片在线| 欧美在线影院一区二区| 美女免费视频一区| 亚洲婷婷在线视频| 久久久国产综合精品女国产盗摄| 粉嫩在线一区二区三区视频| 天天做天天摸天天爽国产一区| 日韩久久免费av| 成人性生交大片免费看在线播放 | 国产福利精品一区| 亚洲与欧洲av电影| 国产欧美视频在线观看| 欧美日韩三级一区二区| 福利一区在线观看| 久久精品国产亚洲5555| 日日噜噜夜夜狠狠视频欧美人 | 久久精品国产第一区二区三区| 国产精品久久久久久久裸模| 日韩欧美资源站| 欧美视频第二页| 91免费看`日韩一区二区| 国产在线精品视频| 久久99久久久欧美国产| 亚洲国产精品久久一线不卡| 久久久国产精品午夜一区ai换脸| 精品视频在线免费看| 91国内精品野花午夜精品| 国产91对白在线观看九色| 国内精品写真在线观看| 紧缚捆绑精品一区二区| 久久99久久久久久久久久久| 日韩精品乱码av一区二区| 天堂av在线一区| 久久精品999| 国产精品一区在线观看乱码| 国产成人亚洲综合a∨猫咪| 另类中文字幕网| 国产v综合v亚洲欧| 成人av免费观看| 色呦呦一区二区三区| 欧美日韩在线三区| 日韩免费福利电影在线观看| 日韩欧美在线观看一区二区三区| 日韩一区二区三区视频| 日韩欧美在线不卡| 国产蜜臀97一区二区三区 | 777久久久精品| 国产欧美日本一区视频| 亚洲v日本v欧美v久久精品| 极品销魂美女一区二区三区| 成人污污视频在线观看| 欧美午夜精品免费| 日韩精品最新网址| 一区二区三区四区中文字幕| 日本美女视频一区二区| 91在线看国产| 日韩亚洲欧美在线| 一区二区三区不卡视频在线观看 | 中文字幕av一区二区三区高| 丝袜诱惑制服诱惑色一区在线观看 | 久久国产精品99精品国产 | 亚洲男人天堂av| 国产乱码一区二区三区| 337p亚洲精品色噜噜狠狠| 亚洲欧美日韩中文字幕一区二区三区| 久久国产精品免费| 91精品国产综合久久久久久| 国产精品国产三级国产有无不卡| 日本aⅴ亚洲精品中文乱码| 欧美日韩国产综合视频在线观看| 亚洲视频一二三| 97se亚洲国产综合在线| 中文字幕五月欧美| 91猫先生在线| 亚洲永久精品大片| 在线观看亚洲成人| 午夜精品免费在线| 欧美一区二区三区喷汁尤物| 亚洲大尺度视频在线观看| 99久久er热在这里只有精品15 | 国产成人综合网站| 久久久精品黄色| 97se狠狠狠综合亚洲狠狠| 亚洲美女免费视频| 在线精品国精品国产尤物884a| 亚洲综合久久久久| 精品国产乱码久久| av在线不卡免费看| 亚洲mv大片欧洲mv大片精品| 在线观看91精品国产麻豆| 蜜桃精品视频在线| 中文字幕va一区二区三区| 日本高清视频一区二区| 日本最新不卡在线| 中文字幕视频一区| 欧美另类z0zxhd电影| 国产在线精品国自产拍免费| 亚洲欧美区自拍先锋| 精品成人一区二区| 日本精品一级二级| 美女视频黄免费的久久| 国产女主播视频一区二区| 7777精品伊人久久久大香线蕉的| 福利一区二区在线| 久久99国产精品尤物| 亚洲国产日韩在线一区模特| 天天综合网天天综合色| 国产欧美精品日韩区二区麻豆天美| 欧美人与性动xxxx| 欧美色男人天堂| 91精彩视频在线| www.日韩大片| www.欧美日韩| 国产成人啪免费观看软件| 国产在线不卡一区| 国产一区二区中文字幕| 国产一区二区三区四| 久久丁香综合五月国产三级网站 | 97久久精品人人爽人人爽蜜臀| 国产在线精品视频| 成人性生交大片免费看在线播放| 经典三级一区二区| 成人av网站在线观看| 不卡av免费在线观看| 99视频一区二区| 精品视频一区二区不卡| 欧美卡1卡2卡| 久久久久久久电影| 亚洲同性gay激情无套| 亚洲一区二区三区四区在线 | 一本色道亚洲精品aⅴ| 在线观看三级视频欧美| 欧美一卡二卡在线观看| 久久久精品天堂| 亚洲与欧洲av电影| 黑人巨大精品欧美一区| 成人免费高清视频在线观看| 在线亚洲一区观看| 国产欧美日韩中文久久| 亚洲一区二区三区视频在线 | 国产婷婷一区二区| 亚洲一区二区三区视频在线 |