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

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

?? quickformatflash.c

?? 對NAND FLASH的讀寫操作
?? C
字號:
//*******************************************************
//以下是快速格式化的程序
//*******************************************************
#include "msp430x14x.h"
#include "format.h"
#include "flash.h"
#include "MspFlashWriteRead.h"
void QuickFormatFlash(void)
{
  unsigned short InvalidBlockTable[InvalidBlockMaxValue]={0xffff};//定義存放無效塊信息表的數組
  unsigned short PtrRowAddress;  //定義在格式化Flash時的地址指針
  unsigned short PtrTable;            //定義填寫無效信息表數組的地址指針
  unsigned short InvalidBlockNumber;  //定義無效塊的數量
  unsigned short PtrBlock;           //指示需要寫入無效塊屏蔽表的實際的塊指針。
  unsigned short PtrBlockInMaskTable;//指示實際寫入無效塊屏蔽表內的塊指針。
  unsigned short PtrBlockTemp=0;		 //
  unsigned short PtrAddCount=0;         //指示因為存在無效塊而增加的無效塊屏蔽表內的數值	
  unsigned short LoopForSearchInValid;//為了尋找無效塊所設立的for循環變量
  unsigned short *piFlash;             //用來對Msp進行字寫入的指針
//*******************************************************
//先復位Flash芯片
//*******************************************************
  WriteReadResetCommandToFlash(); 
//*******************************************************
//開始格式化Flash芯片
//*******************************************************    
  for(PtrRowAddress=32,PtrTable=1,InvalidBlockNumber=0;PtrRowAddress<FlashSizeAddress16M;PtrRowAddress=PtrRowAddress+32)
  {								//因為塊的地址是從A14開始的,A9--A13=0
    WriteBlockEraseCommandToFlash(PtrRowAddress);//根據塊指針地址來擦除響應的Flash塊
    while((InputStatusFromFlash&FlashRB)==0);//查詢擦除是否結束
    ReadStatusFromFlash();
    if((InputDataFromFlash&FlashProgramEraseError)!=FlashProgramEraseError)//
    {
      if(((Write00ToFirstPage(PtrRowAddress))&FlashProgramEraseError)!=FlashProgramEraseError)
      {
        if(((Read00PageFromFlash(PtrRowAddress))&FlashProgramEraseError)==FlashProgramEraseError)
        {
          InvalidBlockTable[PtrTable]=PtrRowAddress;//如果擦除出錯,把當前的無效塊地址存入信息表內
          PtrTable=PtrTable+1;//信息表數組的指針加1
          InvalidBlockNumber=InvalidBlockNumber+1; //無效塊數量加1
        }  
      }
      else
      {
        InvalidBlockTable[PtrTable]=PtrRowAddress;//如果擦除出錯,把當前的無效塊地址存入信息表內
        PtrTable=PtrTable+1;//信息表數組的指針加1
        InvalidBlockNumber=InvalidBlockNumber+1; //無效塊數量加1
      }
    }
    else
    {
      InvalidBlockTable[PtrTable]=PtrRowAddress;//如果擦除出錯,把當前的無效塊地址存入信息表內
      PtrTable=PtrTable+1;//信息表數組的指針加1
      InvalidBlockNumber=InvalidBlockNumber+1; //無效塊數量加1
    }    
  }
  InvalidBlockTable[0]=InvalidBlockNumber;//在信息表的第一部分加入無效塊的總數
  _NOP();
//*******************************************************   
//根據無效塊信息表建立Flash信息表,以便屏蔽掉無效塊
//******************************************************* 
  for(PtrRowAddress=32;PtrRowAddress<FlashSizeAddress16M;PtrRowAddress=PtrRowAddress+32)
  {
    WriteBlockEraseCommandToFlash(PtrRowAddress);//建立無效塊屏蔽信息表之前先擦除第0塊
    while((InputStatusFromFlash&FlashRB)==0);
    ReadStatusFromFlash();
  }
  WriteBlockEraseCommandToFlash(0);              //擦除第0塊,以便存放Flash的無效塊屏蔽表
  while((InputStatusFromFlash&FlashRB)==0);
  ReadStatusFromFlash();
  for(PtrBlock=0;PtrBlock<=FlashSizeAddress16M;PtrBlock++)
  {
    if((PtrBlock&0x00FF)==0)
    {
      PtrRowAddress=(PtrBlock>>8);
      WriteSequentialDataInputCommandToFlash();
      WriteWriteModeAddressToFlash(PtrRowAddress,0);
      PrepareForWriteDataToFlashIncludeCArea();
    }
    for(LoopForSearchInValid=1;LoopForSearchInValid<(InvalidBlockTable[0]+1);LoopForSearchInValid++)
    {
      if(PtrBlockTemp==InvalidBlockTable[LoopForSearchInValid])
      {
        PtrBlockTemp=PtrBlockTemp+1;
      }
    }
    PtrBlockInMaskTable=PtrBlockTemp;
    if(PtrBlockInMaskTable>FlashSizeAddress16M)
    {
      PtrBlockInMaskTable=0xFFFF;
    }
    PtrBlockInMaskTable=PtrBlockInMaskTable<<5;			//為了保證存放在第0塊的塊地址直接可以使用,不需要再移位
    OutputToFlash=PtrBlockInMaskTable;
    FlashControlPort&=~FlashWE;
    FlashControlPort|=FlashWE;  
    OutputToFlash=(PtrBlockInMaskTable>>8);
    FlashControlPort&=~FlashWE;
    FlashControlPort|=FlashWE;  
    if((PtrBlock&0x00FF)==0x00FF)   
    {
      WritePageProgramCommandToFlash();
      while((InputStatusFromFlash&FlashRB)==0);
      ReadStatusFromFlash();
    }
    PtrBlockTemp=PtrBlockTemp+1;
  }
  _NOP();
//初始化文件目錄表和碎片數據表,因為格式化后,文件數目與碎片數目全為0
FCTL2=FWKEY+FSSEL0+FN0;
piFlash=(unsigned short *)MspInformationA;
FlashClrSegment(piFlash);
for(LoopForSearchInValid=0;LoopForSearchInValid<64;LoopForSearchInValid++)
{
  FlashWriteWord(piFlash+LoopForSearchInValid,0x00);
} 
//初始化文件分配表,初始化時默認存在一個碎片,首地址是0x0001,末地址是0x03FF。
piFlash=(unsigned short *)MspInformationB;
FlashClrSegment(piFlash);
FlashWriteWord(piFlash,0x0001);
FlashWriteWord(piFlash+1,0x0001);
FlashWriteWord(piFlash+2,0x03FF);
for(LoopForSearchInValid=3;LoopForSearchInValid<64;LoopForSearchInValid++)
{
  FlashWriteWord(piFlash+LoopForSearchInValid,0x00);
} 
_NOP();  
}
unsigned short Write00ToFirstPage(unsigned short PtrRowAddress)
{
  unsigned short loop_i;
  WriteSequentialDataInputCommandToFlash(); 
  WriteWriteModeAddressToFlash(PtrRowAddress,0); 
  PrepareForWriteDataToFlashIncludeCArea();
  for(loop_i=0;loop_i<528;loop_i++)
  {
    OutputToFlash=0x00;
    FlashControlPort&=~FlashWE;
    FlashControlPort|=FlashWE;
  }
  WritePageProgramCommandToFlash();
  while((InputStatusFromFlash&FlashRB)==0);
  ReadStatusFromFlash();
  return InputDataFromFlash;
}
unsigned short Read00PageFromFlash(unsigned short PtrRowAddress)
{
  unsigned short loop_i;
  unsigned short ReadValue[2];
  WriteRead1ACommandToFlash();
  WriteReadModeAddressToFlash(PtrRowAddress,0);
  while((InputStatusFromFlash&FlashRB)==0);
  DataPortDirection&=~0xFF;
  PrepareForReadDataFromFlash();
  for(loop_i=0;loop_i<2;loop_i++)
  {
    FlashControlPort&=~FlashRE;
    ReadValue[loop_i]=InputDataFromFlash;
    FlashControlPort|=FlashRE;
  }
  if(((ReadValue[0])==0)&&((ReadValue[1])==0))
  {
    return 0;
  }
  else 
  {
    return FlashProgramEraseError;
  } 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区蜜臀| 欧美激情一二三区| 国产69精品久久久久777| 一区二区三区四区视频精品免费 | 亚洲主播在线播放| 久久―日本道色综合久久| 91色|porny| 国产精品99久久久久久久女警 | 97精品视频在线观看自产线路二| 日韩电影在线观看电影| 依依成人精品视频| 国产精品国产自产拍在线| 日韩欧美国产午夜精品| 欧美偷拍一区二区| 99九九99九九九视频精品| 国产在线一区观看| 水野朝阳av一区二区三区| 亚洲免费视频成人| 国产精品卡一卡二卡三| 天天影视涩香欲综合网| 亚洲精品国产视频| **网站欧美大片在线观看| wwww国产精品欧美| 日韩三级免费观看| 欧美日本在线播放| 欧美午夜一区二区| 色综合久久99| 91片在线免费观看| 盗摄精品av一区二区三区| 韩国欧美国产1区| 免费在线看成人av| 日本aⅴ精品一区二区三区| 午夜免费欧美电影| 三级不卡在线观看| 亚洲高清免费一级二级三级| 亚洲精品免费在线观看| 综合久久国产九一剧情麻豆| 国产精品国产三级国产有无不卡 | 日韩电影在线免费| 五月婷婷另类国产| 亚洲444eee在线观看| 亚洲一区二区视频在线观看| 一区二区三区在线视频观看| 亚洲精品videosex极品| 亚洲精品日韩专区silk| 夜夜爽夜夜爽精品视频| 亚洲国产成人va在线观看天堂| 亚洲国产美国国产综合一区二区| 午夜精品影院在线观看| 日韩成人免费看| 国产一区二区三区| 国产成人精品影视| eeuss影院一区二区三区| 99九九99九九九视频精品| 色综合久久66| 欧美蜜桃一区二区三区| 制服丝袜av成人在线看| 26uuu久久天堂性欧美| 国产女人18水真多18精品一级做 | 这里只有精品99re| 日韩你懂的在线播放| 国产丝袜欧美中文另类| 亚洲色图第一区| 亚洲一区二区三区四区在线观看 | 国产一区二区h| 不卡影院免费观看| 中国av一区二区三区| 亚洲男人的天堂av| 亚洲国产精品一区二区尤物区| 麻豆91精品91久久久的内涵| 国产成人午夜精品影院观看视频| 不卡电影一区二区三区| 欧美丝袜丝交足nylons图片| 日韩欧美一区在线观看| 国产精品久久毛片av大全日韩| 艳妇臀荡乳欲伦亚洲一区| 麻豆国产精品视频| 91美女片黄在线观看| 欧美一级高清大全免费观看| 亚洲欧洲国产日韩| 青青草原综合久久大伊人精品| 不卡电影一区二区三区| 日韩欧美精品在线视频| 国产精品福利一区二区| 午夜精品福利久久久| 国产91精品露脸国语对白| 欧美三级电影在线看| 欧美国产在线观看| 奇米色一区二区| 色婷婷av一区二区三区软件| 精品欧美一区二区久久| 亚洲一级二级在线| 成人黄色一级视频| 日韩欧美一级片| 亚洲一区二区影院| 粉嫩在线一区二区三区视频| 91精品欧美久久久久久动漫| 亚洲欧洲国产专区| 国产精品伊人色| 正在播放亚洲一区| 亚洲综合免费观看高清在线观看| 国产麻豆一精品一av一免费| 91精品国模一区二区三区| 亚洲精品国产第一综合99久久| 国产91精品精华液一区二区三区| 日韩午夜激情av| 午夜精品久久久久久不卡8050| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩精品一区二区三区视频在线观看| 自拍av一区二区三区| 国产高清精品网站| 精品国产一二三区| 日本亚洲天堂网| 在线免费视频一区二区| 亚洲色图在线视频| av影院午夜一区| 中文文精品字幕一区二区| 久久99精品久久久久久动态图| 91精品视频网| 日韩和欧美一区二区三区| 欧美日韩一二三区| 亚洲狠狠爱一区二区三区| 欧美在线免费观看亚洲| 亚洲综合一区二区三区| 99riav一区二区三区| 国内精品伊人久久久久av影院| 337p亚洲精品色噜噜噜| 天天影视涩香欲综合网| 8x8x8国产精品| 青青草一区二区三区| 欧美一区二区私人影院日本| 日韩中文字幕av电影| 欧美色综合久久| 亚洲国产综合人成综合网站| 欧美亚日韩国产aⅴ精品中极品| 亚洲最大的成人av| 欧美性受xxxx黑人xyx性爽| 亚洲国产精品嫩草影院| 欧美二区三区91| 蜜桃传媒麻豆第一区在线观看| 91精品国产综合久久久久久| 久久9热精品视频| 国产日韩欧美一区二区三区综合| 国产高清一区日本| 中文字幕av一区二区三区高| 懂色av噜噜一区二区三区av| 亚洲欧洲成人自拍| 色哟哟欧美精品| 日日摸夜夜添夜夜添亚洲女人| 91精品国产高清一区二区三区 | 日精品一区二区| 91精品在线免费| 国产一区二区三区精品视频| 国产网站一区二区| 91视视频在线直接观看在线看网页在线看 | 国产一区二区毛片| 午夜精品一区二区三区电影天堂| 裸体歌舞表演一区二区| 色综合久久中文字幕| 天天综合网天天综合色| 精品国产乱码久久久久久老虎 | 老司机精品视频一区二区三区| 欧美成人精品1314www| 成人国产视频在线观看| 亚洲高清中文字幕| 久久综合色8888| 91视视频在线观看入口直接观看www| 亚洲成av人综合在线观看| 欧美成人一级视频| 成人黄色777网| 日韩精品高清不卡| 欧美国产97人人爽人人喊| 91福利小视频| 国产精品自在在线| 尤物在线观看一区| 久久综合久久综合亚洲| 日本精品视频一区二区| 精品亚洲porn| 一区二区三区不卡在线观看| 精品国产电影一区二区| 色av一区二区| 国产二区国产一区在线观看| 午夜不卡av免费| 中文字幕日韩一区| 日韩欧美亚洲国产精品字幕久久久| aaa亚洲精品一二三区| 毛片av一区二区| 亚洲免费观看高清在线观看| 欧美变态tickling挠脚心| 在线一区二区三区四区五区| 国产盗摄一区二区| 美女视频黄久久| 夜夜精品浪潮av一区二区三区| 精品国产露脸精彩对白| 欧美人伦禁忌dvd放荡欲情| 色综合天天综合网天天狠天天 | 欧美私人免费视频| 成人在线一区二区三区| 久久国产麻豆精品| 亚洲国产一区二区三区青草影视|