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

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

?? flashdev.c

?? 《嵌入式固件開發》一書的源碼
?? C
字號:
/* This file contains all of the flash support code that does not need * to be relocated to RAM.  Two separate files (flash.c and flashpic.c) * are maintained because under certain compilers, they may need to be * compiled with different options to be made position independent. * * NOTE: THESE FUNCTIONS ARE NOT RE-ENTRANT!!!  All of the FLASH routines * assume they can copy themselves into the array FlashFunc[]; hence, only * one operation can be active at any time. */#include "config.h"#if INCLUDE_FLASH#include "cpu.h"#include "stddefs.h"#include "flashdev.h"#include "flash.h"extern int FLASHTYPE();extern int ENDFLASHTYPE();extern int FLASHWRITE();extern int ENDFLASHWRITE();extern int FLASHEWRITE();extern int ENDFLASHEWRITE();extern int FLASHERASE();extern int ENDFLASHERASE();/* FlashXXXFbuf[]: * These arrays will contain the flash operation function that is executing. * Recall that to operate on the flash, you cannot be executing out of it. * The flash functions are copied here, then executed through the function * pointer flashfunc which is set to point to FlashFunc. */ulong    FlashTypeFbuf[FLASHFUNCSIZE];ulong    FlashEraseFbuf[FLASHFUNCSIZE];ulong    FlashWriteFbuf[FLASHFUNCSIZE];ulong    FlashEwriteFbuf[FLASHFUNCSIZE];/* FlashBank[]: * This structure contains all of the information that must be made available * to the various flash operation commands.  It is initialized by flashtype() * and used thereafter by the other operations. */struct  flashinfo FlashBank[FLASHBANKS];/* FlashNamId[]: * Used to correlate between the ID and a string representing the name * of the flash device.  */struct flashdesc FlashNamId[] = {        { AMD29PL160C,  "AMD-29PL160C" },         { 0,    (char *)0 },};/* SectorSizes160C: *  There are a total of 11 sectors for this part.  This table reflects the *  size of each sector based on the fact that this configuration is for a *  x16 configuration. */int SectorSizes160C[] = {        0x4000,  0x2000,  0x2000,  0x38000, 0x40000,        0x40000, 0x40000, 0x40000, 0x40000, 0x40000,        0x40000};struct sectorinfo sinfo160[10];/* FlashInit(): * Initialize data structures for each bank of flash... */intFlashInit(){    int i,  snum;    uchar   *begin;    struct  flashinfo *fbnk;    snum = 0;    FlashCurrentBank = 0;    /* Copy functions to ram space... */    /* Note that this MUST be done when cache is disabled to assure that */    /* the RAM is occupied by the designated block of code. */    if (flashopload((ulong *)FLASHTYPE,(ulong *)ENDFLASHTYPE,        FlashTypeFbuf,sizeof(FlashTypeFbuf)) < 0)        return(-1);    if (flashopload((ulong *)FLASHERASE,(ulong *)ENDFLASHERASE,        FlashEraseFbuf,sizeof(FlashEraseFbuf)) < 0)        return(-1);    if (flashopload((ulong *)FLASHEWRITE,(ulong *)ENDFLASHEWRITE,        FlashEwriteFbuf,sizeof(FlashEwriteFbuf)) < 0)        return(-1);    if (flashopload((ulong *)FLASHWRITE,(ulong *)ENDFLASHWRITE,        FlashWriteFbuf,sizeof(FlashWriteFbuf)) < 0)        return(-1);    fbnk = &FlashBank[0];    fbnk->id = AMD29PL160C;    fbnk->base = (unsigned char *)FLASH_BANK0_BASE_ADDR;    fbnk->end = fbnk->base + 0x3fffff;    fbnk->sectorcnt = sizeof(SectorSizes160C)/sizeof(int);    fbnk->width = FLASH_BANK0_WIDTH;    fbnk->fltype = (int(*)())FlashTypeFbuf;         /* flashtype(). */    fbnk->flerase = (int(*)())FlashEraseFbuf;       /* flasherase(). */    fbnk->flwrite = (int(*)())FlashWriteFbuf;       /* flashwrite(). */    fbnk->flewrite = (int(*)())FlashEwriteFbuf;     /* flashewrite(). */    fbnk->sectors = sinfo160;    begin = fbnk->base;    printf("type = 0x%lx\n",FLASHTYPE());    for(i=0;i<fbnk->sectorcnt;i++,snum++) {        int ssize;        ssize = SectorSizes160C[i];        fbnk->sectors[i].snum = snum;        fbnk->sectors[i].size = ssize;        fbnk->sectors[i].begin = begin;        fbnk->sectors[i].end =            fbnk->sectors[i].begin + ssize - 1;        fbnk->sectors[i].protected = 0;        begin += ssize;    }    sectorProtect(FLASH_PROTECT_RANGE,1);    /* Additional flash memory banks would be initialized here... */    return(0);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va欧美va天堂v国产综合| 亚洲美女精品一区| 色av成人天堂桃色av| 免费成人小视频| 亚洲人成影院在线观看| 亚洲精品一区二区三区精华液| 一本久久综合亚洲鲁鲁五月天| 久久97超碰色| 视频在线观看国产精品| 中文字幕中文字幕一区| 久久久精品影视| 欧美一级二级在线观看| 在线视频一区二区免费| 成人av动漫网站| 国产一区二区三区免费| 日韩高清国产一区在线| 亚洲国产日韩精品| 亚洲欧洲av另类| 国产欧美一区二区精品忘忧草| 88在线观看91蜜桃国自产| 欧美午夜精品一区二区三区| 91网页版在线| 成人av网站免费观看| 国产高清久久久久| 九一久久久久久| 免费精品视频在线| 三级精品在线观看| 天堂影院一区二区| 亚洲第一福利一区| 午夜精品福利久久久| 亚洲成人一二三| 亚洲丶国产丶欧美一区二区三区| 亚洲毛片av在线| 亚洲欧美偷拍三级| 亚洲欧美自拍偷拍色图| 中文字幕中文字幕一区| 中文字幕在线观看一区二区| 国产亚洲精品7777| 久久久国产一区二区三区四区小说 | 欧美在线不卡一区| 色哟哟欧美精品| 色屁屁一区二区| 91年精品国产| 欧美日韩一区不卡| 宅男在线国产精品| 欧美mv日韩mv亚洲| 久久综合久久综合九色| 久久久国际精品| 一区在线观看视频| 一区二区三区日韩| 天使萌一区二区三区免费观看| 偷偷要91色婷婷| 久久99精品一区二区三区三区| 久久99精品久久久久久久久久久久 | 另类人妖一区二区av| 久久99日本精品| 国产伦精品一区二区三区视频青涩| 国产精品亚洲成人| av一本久道久久综合久久鬼色| 在线视频欧美精品| 日韩亚洲国产中文字幕欧美| 久久亚洲捆绑美女| 综合欧美一区二区三区| 亚洲成av人片在线观看| 欧美aaa在线| 福利电影一区二区| 色94色欧美sute亚洲线路一ni| 在线综合视频播放| 久久精品免费在线观看| 亚洲欧美日韩在线| 日本午夜一本久久久综合| 国产精品一区二区三区乱码| 一本一道综合狠狠老| 91精品国产日韩91久久久久久| 久久色.com| 一区二区在线观看视频在线观看| 日韩高清一区在线| av在线不卡网| 日韩欧美在线不卡| 自拍视频在线观看一区二区| 三级精品在线观看| 99久久久久久99| 日韩免费一区二区| 自拍偷拍亚洲综合| 激情六月婷婷久久| 欧美在线视频全部完| 精品国产伦理网| 亚洲一区免费视频| 国产一区在线观看麻豆| 91国偷自产一区二区三区成为亚洲经典| 欧美一区二区三区在线视频| 国产精品毛片无遮挡高清| 日韩高清欧美激情| 色婷婷av一区二区三区大白胸| 精品精品欲导航| 一级精品视频在线观看宜春院| 狠狠色丁香婷婷综合| 欧美午夜片在线看| 国产精品卡一卡二| 韩国成人精品a∨在线观看| 欧洲av一区二区嗯嗯嗯啊| 久久久久久久国产精品影院| 亚洲成人黄色小说| 色香蕉成人二区免费| 国产日韩欧美不卡| 久久成人免费日本黄色| 欧美色综合天天久久综合精品| 国产欧美在线观看一区| 久久精品国产亚洲高清剧情介绍| 91久久免费观看| 国产精品对白交换视频| 国产中文字幕精品| 欧美成人乱码一区二区三区| 亚洲成人综合网站| 色综合中文字幕国产| 国产欧美日本一区二区三区| 美女任你摸久久 | 自拍偷拍亚洲综合| 大桥未久av一区二区三区中文| 欧美精品一区二区三区高清aⅴ| 亚洲综合精品自拍| 欧美性生活影院| 一区二区三区四区在线| 一本在线高清不卡dvd| 成人免费视频在线观看| 成人在线综合网| 日本一区二区三级电影在线观看| 精久久久久久久久久久| 欧美哺乳videos| 麻豆成人av在线| 欧美一级高清片| 麻豆成人久久精品二区三区小说| 911国产精品| 日本成人超碰在线观看| 欧美一区二区三区视频在线| 午夜伊人狠狠久久| 欧美精品1区2区3区| 三级精品在线观看| 精品久久一二三区| 国产老肥熟一区二区三区| 久久久99久久| 99在线热播精品免费| 一区二区三区在线视频观看| 欧美亚洲一区二区在线观看| 午夜精品福利视频网站| 精品久久久网站| 成人免费毛片app| 亚洲男同性恋视频| 欧美亚洲尤物久久| 麻豆视频一区二区| 国产欧美日韩三区| 99re亚洲国产精品| 亚洲超碰97人人做人人爱| 欧美一级片在线| 国产乱子轮精品视频| 国产精品国产三级国产专播品爱网| 99久久99久久久精品齐齐| 亚洲一区二区黄色| 日韩女优毛片在线| caoporen国产精品视频| 亚洲h在线观看| 日韩精品一区二区在线观看| 国产99一区视频免费| 亚洲精品网站在线观看| 91精品国产aⅴ一区二区| 国内久久婷婷综合| 亚洲欧美日韩中文播放| 欧美一区二区三区影视| 国产成人aaa| 亚洲一卡二卡三卡四卡无卡久久| 91精品国产综合久久久久| 国产成人一区在线| 夜夜揉揉日日人人青青一国产精品 | 99久久免费国产| 亚洲不卡av一区二区三区| 精品国产亚洲一区二区三区在线观看| 国产成人免费xxxxxxxx| 亚洲国产精品一区二区久久恐怖片| 精品精品欲导航| 欧美制服丝袜第一页| 国产精品亚洲综合一区在线观看| 亚洲一区二三区| 久久久久国产精品免费免费搜索| 欧美色综合久久| 不卡区在线中文字幕| 日本午夜精品视频在线观看| 亚洲欧洲色图综合| 精品日韩一区二区| 欧美伊人精品成人久久综合97| 国产精品一区二区免费不卡| 午夜a成v人精品| 亚洲欧美怡红院| 欧美xxxxxxxxx| 欧美日韩免费观看一区二区三区| 国产精品99久久久久久久女警| 亚洲成人av一区二区| 国产精品亲子乱子伦xxxx裸| 日韩一级高清毛片| 91福利在线导航| 波多野结衣欧美|