亚洲欧美第一页_禁久久精品乱码_粉嫩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 "genlib.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];/* FlashNamId[]:   Used to correlate between the ID and a string representing the name   of the flash device.*/struct flashdesc FlashNamId[] = {        { AMD29DL640D,  "AMD-29DL640D" },        { 0, (char *)0 },};int SectorSizes640D[] = {    0x2000,  0x2000,  0x2000,  0x2000,  0x2000,  0x2000,  0x2000,  0x2000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x10000, 0x10000, 0x10000, 0x10000, 0x10000, 0x10000,    0x2000,  0x2000,  0x2000,  0x2000,  0x2000,  0x2000,  0x2000,  0x2000};struct sectorinfo sinfo640[sizeof(SectorSizes640D)/sizeof(int)];/* 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->base = (unsigned char *)FLASH_BANK0_BASE_ADDR;    fbnk->end = fbnk->base + FLASH_BANK0_SIZE - 1;    fbnk->sectorcnt = (sizeof(SectorSizes640D)/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 = sinfo640;    fbnk->id = flashtype(fbnk);    begin = fbnk->base;    for(i=0;i<fbnk->sectorcnt;i++,snum++) {        int ssize;        ssize = SectorSizes640D[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一区二区三区免费野_久草精品视频
欧美一级日韩一级| 国产日韩欧美激情| 99re视频精品| jvid福利写真一区二区三区| 岛国一区二区在线观看| 国产iv一区二区三区| 国产成人精品一区二区三区网站观看| 韩国女主播一区| 国产91在线看| 99riav久久精品riav| 久久午夜免费电影| 色94色欧美sute亚洲线路一久| 国产精品久久久久精k8 | 美国十次了思思久久精品导航| 久久综合九色综合97婷婷女人| 久久新电视剧免费观看| 国产偷v国产偷v亚洲高清| 国产精品毛片久久久久久久| 亚洲精品菠萝久久久久久久| 亚洲一区在线播放| 捆绑紧缚一区二区三区视频| 麻豆91在线看| www.66久久| 欧美日本在线看| 精品久久久久久久人人人人传媒| 国产婷婷色一区二区三区四区 | 高清免费成人av| 99久久久国产精品| 欧美日韩在线一区二区| 日韩天堂在线观看| 国产日本一区二区| 一区二区成人在线| 国产精品 欧美精品| 成人晚上爱看视频| 欧美日韩三级一区二区| 色狠狠综合天天综合综合| 麻豆精品一二三| 不卡的av中国片| 欧美一区三区四区| 国产精品欧美久久久久无广告| 亚洲综合自拍偷拍| 国产精品综合在线视频| 欧美日韩一本到| 久久久精品免费网站| 一卡二卡欧美日韩| 国产成人高清在线| 亚洲色图视频免费播放| 久久草av在线| 欧美性猛片xxxx免费看久爱| 精品国产乱子伦一区| 洋洋成人永久网站入口| 国产剧情一区二区三区| 久久久久国产精品麻豆| 欧美va天堂va视频va在线| 亚洲精品国产精华液| 国产电影精品久久禁18| 91精品国产91久久久久久最新毛片 | 亚洲一区二区三区国产| 国产精品99久久久久久有的能看| 在线看日本不卡| 中文字幕一区av| 国产乱国产乱300精品| 在线精品视频免费播放| 在线免费观看视频一区| 激情综合色丁香一区二区| 在线观看视频一区二区| 亚洲欧洲精品天堂一级| 国产精品天美传媒| 国产成人h网站| 国产人伦精品一区二区| 九色|91porny| 日本三级韩国三级欧美三级| 欧美日韩久久一区| 香蕉久久夜色精品国产使用方法 | 国产风韵犹存在线视精品| 欧美日免费三级在线| 国产精品国产三级国产aⅴ中文| 亚洲香肠在线观看| 色偷偷一区二区三区| 亚洲日本免费电影| 国产1区2区3区精品美女| 91精品国产福利在线观看 | 国产精品网站在线| 岛国精品在线播放| 日韩欧美在线不卡| 国产欧美精品区一区二区三区| 九色|91porny| 日本一区二区三区久久久久久久久不| 国产成人综合精品三级| 日本一区二区免费在线| 成人aaaa免费全部观看| 亚洲免费视频中文字幕| 欧美午夜一区二区三区免费大片| 午夜久久福利影院| 日韩欧美综合一区| 国产成人亚洲综合色影视| 日韩理论片在线| 欧美无乱码久久久免费午夜一区| 日韩电影在线观看电影| 久久综合给合久久狠狠狠97色69| 国产传媒欧美日韩成人| 亚洲激情欧美激情| 日韩欧美国产午夜精品| 国产精品亚洲专一区二区三区| 国产精品网站在线观看| 欧美理论片在线| 国产成人免费在线视频| 中文字幕一区二区三区不卡在线| 国产精品羞羞答答xxdd| 亚洲欧洲精品成人久久奇米网| 91激情在线视频| 亚洲视频香蕉人妖| 97久久精品人人做人人爽 | 亚洲成va人在线观看| 97se亚洲国产综合自在线观| 国产免费成人在线视频| 欧美三级一区二区| 国产一区二区久久| 亚洲第一主播视频| 日本一区二区三区国色天香| 日本丶国产丶欧美色综合| 韩国女主播一区| 中文av一区特黄| 欧美三级乱人伦电影| 国产不卡高清在线观看视频| 日日夜夜免费精品视频| 亚洲激情五月婷婷| 欧美色偷偷大香| 91网上在线视频| 国产99一区视频免费| 日韩av电影天堂| 亚洲资源中文字幕| 国产精品拍天天在线| 欧美成人在线直播| 欧美三级韩国三级日本一级| 春色校园综合激情亚洲| 久久99国产精品尤物| 亚洲妇熟xx妇色黄| 亚洲精品免费在线观看| 中文成人av在线| 国产欧美日韩在线| 欧美一二三在线| 欧美综合色免费| 成人晚上爱看视频| 高清久久久久久| 国产一区二区毛片| 免费高清不卡av| 亚洲国产sm捆绑调教视频 | 亚洲综合一区在线| 中文字幕一区二区三区在线播放 | 成人黄色网址在线观看| 国内精品伊人久久久久av影院| 蜜桃av噜噜一区| 日韩国产欧美在线视频| 日韩精品乱码av一区二区| 一区二区免费看| 亚洲综合免费观看高清完整版| 欧美激情中文字幕一区二区| 国产欧美精品区一区二区三区| 久久精品欧美一区二区三区不卡| 久久夜色精品国产欧美乱极品| 日韩精品中午字幕| wwwwww.欧美系列| 欧美精品色综合| 欧美日韩国产a| 日韩一级黄色大片| 精品剧情v国产在线观看在线| 日韩女优电影在线观看| 亚洲精品一区二区三区福利| 国产亚洲1区2区3区| 欧美mv日韩mv国产网站| 欧美国产日韩精品免费观看| 2022国产精品视频| 久久一留热品黄| 中文字幕日韩精品一区| 亚洲欧洲99久久| 亚洲日本免费电影| 日韩精品一级中文字幕精品视频免费观看 | 日韩一级完整毛片| 欧美一级一区二区| 日韩电影在线观看电影| 亚洲高清免费观看高清完整版在线观看| 久久久亚洲精品石原莉奈 | 国产一区二区三区香蕉| 成人动漫视频在线| 欧美色综合网站| 久久久久久久免费视频了| 1区2区3区国产精品| 午夜一区二区三区视频| 中文字幕一区二区三区在线不卡 | 亚洲精品国产无套在线观| 亚洲成在人线在线播放| 国产99久久久久久免费看农村| 91丨九色porny丨蝌蚪| 欧美xingq一区二区| 亚洲乱码国产乱码精品精的特点 | 欧美日韩精品一区视频| 欧美国产一区二区| 久久精品免费看| 欧美丝袜丝交足nylons|