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

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

?? fat.lst

?? 完整的單片機讀寫SD卡程序
?? LST
字號:
C51 COMPILER V8.02   FAT                                                                   04/29/2007 12:48:52 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE FAT
OBJECT MODULE PLACED IN Fat.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Fat.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "common.h"
   2          #include "Fat.h"
   3          #include "Fat32.h"
   4          #include "DEVICE.H"
   5          #include "HAL.H"
   6          ////////////////////////////////////////
   7          extern SYS_INFO_BLOCK xdata DeviceInfo;
   8          extern FILE_INFO xdata ThisFile;
   9          extern unsigned char xdata DBUF[BUFFER_LENGTH];
  10          unsigned char xdata FATBUF[512];
  11          ////////////////////////////////////////
  12          
  13          unsigned long FirstSectorofCluster(unsigned int clusterNum)
  14          {
  15   1              unsigned long temp;
  16   1              temp=clusterNum-2;
  17   1              temp=temp*DeviceInfo.BPB_SecPerClus;
  18   1              temp=temp+DeviceInfo.FirstDataSector;
  19   1              return temp;
  20   1      }
  21          
  22          unsigned int ThisFatSecNum(unsigned int clusterNum)
  23          {
  24   1      
  25   1         unsigned int temp;
  26   1         temp=clusterNum/(DeviceInfo.BPB_BytesPerSec/2);
  27   1         temp=temp+DeviceInfo.FatStartSector;
  28   1         return temp;
  29   1      
  30   1      }
  31          
  32          unsigned int ThisFatEntOffset(unsigned int clusterNum)
  33          {    
  34   1              return (clusterNum%(DeviceInfo.BPB_BytesPerSec/2))*2;
  35   1      }
  36          
  37          unsigned int GetNextClusterNum(unsigned int clusterNum)
  38          {
  39   1              unsigned int FatSecNum,FatEntOffset;
  40   1              
  41   1              FatSecNum=ThisFatSecNum(clusterNum);
  42   1              FatEntOffset=ThisFatEntOffset(clusterNum);
  43   1              if(ThisFile.FatSectorPointer!=FatSecNum)
  44   1              {       
  45   2                      
  46   2                      if(!SdReadSector(FatSecNum,1,FATBUF))
  47   2                              return 0xFFFF;
  48   2                      ThisFile.FatSectorPointer=FatSecNum;
  49   2              }
  50   1              
  51   1              ///////////////////////////////////////////////////
  52   1              clusterNum=FATBUF[FatEntOffset+1];
  53   1              clusterNum=clusterNum<<8;
  54   1              clusterNum+=FATBUF[FatEntOffset];       
  55   1              return clusterNum;
C51 COMPILER V8.02   FAT                                                                   04/29/2007 12:48:52 PAGE 2   

  56   1      }
  57          
  58          unsigned char GoToPointer(unsigned long pointer)
  59          {
  60   1              
  61   1              unsigned int clusterSize;
  62   1              
  63   1              clusterSize=DeviceInfo.BPB_SecPerClus*DeviceInfo.BPB_BytesPerSec;
  64   1              ThisFile.ClusterPointer=ThisFile.StartCluster;
  65   1              while(pointer>clusterSize)
  66   1              {
  67   2                      pointer-=clusterSize;   
  68   2                      ThisFile.ClusterPointer=GetNextClusterNum(ThisFile.ClusterPointer);
  69   2                      if(ThisFile.ClusterPointer==0xffff)
  70   2                      {
  71   3                      return FALSE;
  72   3                      }
  73   2              }
  74   1              ThisFile.SectorofCluster=pointer/DeviceInfo.BPB_BytesPerSec;
  75   1              ThisFile.SectorPointer=FirstSectorofCluster(ThisFile.ClusterPointer)+ThisFile.SectorofCluster;
  76   1              ThisFile.OffsetofSector=pointer%DeviceInfo.BPB_BytesPerSec;
  77   1              ThisFile.FatSectorPointer=0;
  78   1              return TRUE;
  79   1              
  80   1      }
  81          
  82          unsigned char DeleteClusterLink(unsigned int clusterNum)
  83          {
  84   1              unsigned int FatSecNum,FatEntOffset;
  85   1              unsigned char i;
  86   1              while((clusterNum>1)&&(clusterNum<0xfff0))
  87   1              {
  88   2              FatSecNum=ThisFatSecNum(clusterNum);
  89   2              FatEntOffset=ThisFatEntOffset(clusterNum);
  90   2              if(SdReadSector(FatSecNum,1,DBUF))
  91   2                      {
  92   3                       if(clusterNum<DeviceInfo.LastFreeCluster) DeviceInfo.LastFreeCluster=clusterNum; 
  93   3                       clusterNum=DBUF[FatEntOffset+1];
  94   3                       clusterNum=clusterNum<<8;
  95   3                       clusterNum+=DBUF[FatEntOffset];                 
  96   3                      }
  97   2              else
  98   2                      return FALSE;
  99   2              DBUF[FatEntOffset]=0x00;
 100   2              DBUF[FatEntOffset+1]=0x00;      
 101   2              for(i=0;i<DeviceInfo.BPB_NumFATs;i++)
 102   2                      {
 103   3                      DelayMs(5);
 104   3                      if(!SdWriteSector(FatSecNum+i*DeviceInfo.BPB_FATSz16,1,DBUF))
 105   3                              return FALSE;
 106   3                      }       
 107   2              }
 108   1              return TRUE;
 109   1      }
 110          
 111          unsigned int GetFreeCusterNum(void)
 112          {
 113   1              unsigned int clusterNum,i;
 114   1              unsigned long sectorNum;
 115   1              unsigned char j;
 116   1              clusterNum=0;
 117   1      //      sectorNum=DeviceInfo.FatStartSector;
C51 COMPILER V8.02   FAT                                                                   04/29/2007 12:48:52 PAGE 3   

 118   1      
 119   1          sectorNum=ThisFatSecNum(DeviceInfo.LastFreeCluster);
 120   1          clusterNum=(sectorNum-DeviceInfo.FatStartSector)*(DeviceInfo.BPB_BytesPerSec/2);
 121   1      
 122   1              while(sectorNum<DeviceInfo.BPB_FATSz16+DeviceInfo.FatStartSector)
 123   1              {
 124   2                      
 125   2                      if(!SdReadSector(sectorNum,1,DBUF))
 126   2                              return 0x0;
 127   2                      for(i=0;i<DeviceInfo.BPB_BytesPerSec;i=i+2)
 128   2                              {
 129   3                               if((DBUF[i]==0)&&(DBUF[i+1]==0))
 130   3                                      {       
 131   4                                      DBUF[i]=0xff;
 132   4                                      DBUF[i+1]=0xff;
 133   4                                      for(j=0;j<DeviceInfo.BPB_NumFATs;j++)
 134   4                                              {
 135   5                                              DelayMs(5);
 136   5                                              if(!SdWriteSector(sectorNum+j*DeviceInfo.BPB_FATSz16,1,DBUF))
 137   5                                                      return FALSE;
 138   5                                              }
 139   4                      clusterNum=clusterNum+i/2;
 140   4                              if((clusterNum-2)<DeviceInfo.TotCluster) 
 141   4                                        {
 142   5                                         if(clusterNum>DeviceInfo.LastFreeCluster) DeviceInfo.LastFreeCluster=clusterNum;
 143   5                                         return clusterNum;
 144   5                                        }
 145   4                                      else return     FALSE; 
 146   4                                      }
 147   3                               
 148   3                              }       
 149   2                      clusterNum+=DeviceInfo.BPB_BytesPerSec/2;               
 150   2                      sectorNum++;
 151   2                      DelayMs(1);
 152   2              }
 153   1              
 154   1              return 0x0;
 155   1      }
 156          
 157          unsigned int CreateClusterLink(unsigned int currentCluster)
 158          {
 159   1              unsigned int newCluster;
 160   1              unsigned int FatSecNum,FatEntOffset;
 161   1              unsigned char i;
 162   1      
 163   1              newCluster=GetFreeCusterNum();
 164   1      
 165   1              if(newCluster==0)
 166   1                      return 0x00;
 167   1                              
 168   1              FatSecNum=ThisFatSecNum(currentCluster);
 169   1              FatEntOffset=ThisFatEntOffset(currentCluster);
 170   1              if(SdReadSector(FatSecNum,1,DBUF))
 171   1                      {
 172   2                      DBUF[FatEntOffset]=newCluster;
 173   2                      DBUF[FatEntOffset+1]=newCluster>>8;
 174   2                      for(i=0;i<DeviceInfo.BPB_NumFATs;i++)
 175   2                              {
 176   3                              DelayMs(5);
 177   3                              if(!SdWriteSector(FatSecNum+i*DeviceInfo.BPB_FATSz16,1,DBUF))
 178   3                                      return FALSE;
 179   3                              }               
C51 COMPILER V8.02   FAT                                                                   04/29/2007 12:48:52 PAGE 4   

 180   2                      }
 181   1              else
 182   1                      return 0x00;
 183   1              
 184   1              return newCluster;
 185   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1499    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    512    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      41
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费视频| 97se亚洲国产综合在线| 欧美综合天天夜夜久久| 精品成人在线观看| 日韩专区欧美专区| 欧美日韩黄色一区二区| 综合色天天鬼久久鬼色| 成人av在线影院| 国产精品素人一区二区| 日本欧美一区二区三区乱码| 91精品福利在线| 欧美亚洲一区二区在线观看| 91精品欧美福利在线观看| 亚洲黄色在线视频| 在线亚洲高清视频| 亚洲va欧美va人人爽| 欧美福利电影网| 青草国产精品久久久久久| 日韩欧美专区在线| 极品瑜伽女神91| 久久久久久久综合色一本| 午夜久久久久久久久| 欧美性大战久久| 日本亚洲最大的色成网站www| 色婷婷亚洲精品| 亚洲一区二区免费视频| 欧美日本在线播放| 理论片日本一区| 国产午夜久久久久| 95精品视频在线| 亚洲大片精品永久免费| 精品乱码亚洲一区二区不卡| 伦理电影国产精品| √…a在线天堂一区| 欧美日韩免费高清一区色橹橹| 日韩av成人高清| 欧美www视频| 本田岬高潮一区二区三区| 亚洲精品国产视频| 日韩一区二区免费在线观看| 日日夜夜精品视频天天综合网| 日韩精品专区在线| 国产91丝袜在线观看| 中文字幕欧美三区| 欧美在线999| 国内精品久久久久影院薰衣草| 国产欧美在线观看一区| 欧美午夜一区二区三区免费大片| 久久国产精品第一页| 日本一区二区电影| 欧美日韩久久不卡| 久久国产福利国产秒拍| 亚洲国产精品成人久久综合一区| 欧美性高清videossexo| 久久99精品一区二区三区三区| 国产精品色婷婷久久58| 69p69国产精品| www.亚洲色图| 久久www免费人成看片高清| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日本丶国产丶欧美色综合| 亚洲一区二区三区中文字幕 | 国产三级精品三级在线专区| 在线看日本不卡| 国产成人免费xxxxxxxx| 天涯成人国产亚洲精品一区av| 欧美国产日韩a欧美在线观看| 欧美高清hd18日本| 在线视频国内自拍亚洲视频| 国产福利一区二区三区视频在线 | 综合色天天鬼久久鬼色| 26uuu另类欧美亚洲曰本| 欧美日韩国产首页| 色呦呦一区二区三区| 国产麻豆精品95视频| 免费亚洲电影在线| 亚洲成国产人片在线观看| 自拍av一区二区三区| 国产视频在线观看一区二区三区| 91精品国产综合久久香蕉的特点| 色屁屁一区二区| 精品午夜久久福利影院| 日韩精品免费专区| 亚洲精品乱码久久久久久久久| 国产欧美精品一区二区色综合| 欧美理论在线播放| 在线观看三级视频欧美| 91日韩一区二区三区| 成人免费视频一区二区| 国产成人高清视频| 激情综合色播五月| 亚洲国产精品麻豆| 一区二区三区av电影| 亚洲美女少妇撒尿| 久久久久久久久伊人| 欧美一区永久视频免费观看| 欧美性生活久久| 99视频一区二区| 精品一区二区三区av| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文字幕日本不卡| 中文字幕永久在线不卡| 国产精品卡一卡二卡三| 亚洲啪啪综合av一区二区三区| 国产精品情趣视频| 亚洲色图视频网站| 亚洲精品国产精品乱码不99| 一个色综合网站| 午夜久久久久久| 蜜臀av性久久久久蜜臀aⅴ| 麻豆精品一区二区三区| 国产一区欧美一区| 成人综合在线网站| 色婷婷精品久久二区二区蜜臂av| 成人亚洲精品久久久久软件| av高清久久久| 欧美精品乱码久久久久久| 日韩欧美国产精品| 国产欧美一区二区三区在线看蜜臀 | 在线看国产一区| 7799精品视频| 久久精品夜色噜噜亚洲aⅴ| 中文欧美字幕免费| 一区二区三区在线免费视频| 亚洲高清不卡在线观看| 久久精品噜噜噜成人av农村| 国产99久久久国产精品潘金网站| 国产精品一线二线三线精华| 成人午夜看片网址| 欧美在线一区二区三区| 欧美成人一区二区三区在线观看| 国产欧美日韩另类一区| 亚洲一区二区三区四区中文字幕| 中文字幕一区二区三区四区 | av高清久久久| 91精品久久久久久久99蜜桃| 欧美国产成人精品| 一区二区三区**美女毛片| 久久99精品久久久久久国产越南 | 久久精品国产亚洲a| 成人app在线| 欧美精品1区2区| 国产精品夫妻自拍| 美女网站色91| 在线观看日韩国产| 日本一区二区三区dvd视频在线| 亚洲自拍偷拍麻豆| 国产 日韩 欧美大片| 91精品国产欧美一区二区18| 国产精品色眯眯| 久久69国产一区二区蜜臀| 91一区二区在线| 精品久久久久久久一区二区蜜臀| 精品久久国产老人久久综合| 中文字幕欧美激情一区| 日韩在线一区二区| 成人av在线资源网| 欧美一级日韩免费不卡| 中文字幕av一区二区三区高| 亚洲成a人片综合在线| 91丨porny丨中文| 日韩视频中午一区| 亚洲一区二区三区中文字幕在线| 国产精品911| 欧美白人最猛性xxxxx69交| 日韩高清在线不卡| 日本大香伊一区二区三区| 亚洲欧洲精品一区二区精品久久久| 捆绑变态av一区二区三区| 欧美亚洲日本国产| 日韩一区欧美小说| 成人免费视频网站在线观看| 久久蜜臀中文字幕| 狂野欧美性猛交blacked| 欧美另类变人与禽xxxxx| 亚洲一区二区美女| 在线观看亚洲专区| 一区二区三区四区高清精品免费观看| 国产91高潮流白浆在线麻豆| 久久综合九色综合欧美98| 蜜桃传媒麻豆第一区在线观看| 5月丁香婷婷综合| 午夜成人在线视频| 欧美日韩国产免费一区二区| 亚洲va韩国va欧美va精品| 91高清在线观看| 亚洲国产精品传媒在线观看| 国产麻豆视频一区二区| 精品国产露脸精彩对白| 美女视频黄免费的久久| 777a∨成人精品桃花网| 亚洲亚洲人成综合网络| 欧洲av在线精品| 一区二区成人在线视频| 欧美午夜电影网| 视频一区在线播放| 91精品在线免费观看| 国产乱人伦偷精品视频免下载| 久久精品夜色噜噜亚洲aⅴ| 成人性生交大片|