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

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

?? hpi32.lst

?? 51模擬SPI讀寫SD卡(包括Fat和Fat32文件系統(tǒng))源代碼
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V8.02   HPI32                                                                 04/29/2007 12:48:53 PAGE 1   


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

line level    source

   1          #include "common.h"
   2          #include "DEVICE.H"
   3          #include "HPI.H"
   4          #include "HAL.H"
   5          #include "Fat.h"
   6          #include "Fat32.h"
   7          #include "HPI32.H"
   8          
   9          extern FLAGS bdata bFlags;
  10          extern unsigned char xdata DBUF[BUFFER_LENGTH];
  11          //////////////////////////////////////////
  12          extern unsigned char xdata UARTBUF[UARTBUF_LENGTH];
  13          extern SYS_INFO_BLOCK xdata DeviceInfo;
  14          extern FILE_INFO xdata ThisFile;
  15          
  16          extern Command_Def xdata Command;
  17          extern Response_Def xdata Response;
  18          
  19          unsigned long xdata DirStartCluster32,NowCluster32;
  20          extern unsigned long xdata NowSector;
  21          extern ShowFileName_Def xdata ShowFileName[MaxLFNum];   //long file struct
  22          /////////////////////////////////////////////
  23          
  24          unsigned char UartHandler32(void)
  25          {
  26   1        Response.Result=0;Response.len=0;
  27   1        switch(Command.CLass)
  28   1        {
  29   2          case 0x00:  //List          
  30   2              Response.Result=List32();
  31   2              break;  
  32   2              case 0x01:      //Open File
  33   2                      Response.Result=OpenFile32(Command.Parameter);          
  34   2              break;
  35   2              case 0x02:      //Read File             
  36   2                      Response.Result=ReadFile32(Command.len,UARTBUF);
  37   2                      break;   
  38   2          case 0x03:  //Set Pointer
  39   2                      Response.Result=SetFilePointer32(Command.len);  
  40   2                      break;
  41   2              case 0x04:      //Great File
  42   2                      Response.Result=OpenFile32(Command.Parameter);
  43   2                      if(Response.Result)
  44   2                              {
  45   3                              Response.Result=SetFilePointer32(ThisFile.LengthInByte);
  46   3                              }
  47   2                      else
  48   2                      Response.Result=CreateFile32(Command.len,Command.Parameter,UARTBUF);            
  49   2              break; 
  50   2              case 0x05:      //Write File
  51   2              Response.Result=WriteFile32(Command.len,UARTBUF);
  52   2              break; 
  53   2          case 0x06:  //Remove File
  54   2              ThisFile.bFileOpen=0;   
  55   2              Response.Result=RemoveFile32(Command.Parameter);
C51 COMPILER V8.02   HPI32                                                                 04/29/2007 12:48:53 PAGE 2   

  56   2              break;  
  57   2              case 0x07:      //Get Space     
  58   2              Response.Result=GetCapacity32();
  59   2              break;     
  60   2              case 0x08:  //DetectDisk
  61   2                      if(bFlags.bits.SLAVE_IS_ATTACHED)
  62   2                              Response.Result=1;
  63   2                      break;
  64   2              case 0x09:  //Great Dir
  65   2                      Response.Result=DownDir32(Command.Parameter);
  66   2                      if(!Response.Result)
  67   2                              Response.Result=CreateDir32(Command.len,Command.Parameter,UARTBUF);     
  68   2              break; 
  69   2              case 0x0a:      //Down Dir
  70   2                      Response.Result=DownDir32(Command.Parameter);
  71   2                      break;
  72   2              case 0x0b:      //Up Dir
  73   2                      Response.Result=UpDir32();
  74   2                      break;  
  75   2              case 0x0c:      //Up RootDir
  76   2                      Response.Result=UpRootDir32();
  77   2                      break;  
  78   2        }
  79   1      
  80   1        UartSendRsp();
  81   1        ///////////////////////////////
  82   1        return TRUE;  
  83   1      }
  84          
  85          unsigned char List32(void)
  86          {
  87   1              unsigned int item,i;
  88   1              unsigned char k,bstop,sector;
  89   1              unsigned char Lcount,Ncount,base;
  90   1              
  91   1              if(!bFlags.bits.SLAVE_IS_ATTACHED)
  92   1                      return FALSE;                   
  93   1              item=0;
  94   1              bstop=0;
  95   1              ////////////////////////////////////
  96   1              Lcount=0;
  97   1              for(i=0;i<MaxLFNum;i++)
  98   1                      {
  99   2                      ShowFileName[i].LongName[0]=0x00;
 100   2                      ShowFileName[i].LongName[1]=0x00;
 101   2                      }
 102   1      //////////////////////////////////////////////////////////////////                      
 103   1              NowCluster32=DirStartCluster32;         
 104   1                      do
 105   1                      {
 106   2                              NowSector=FirstSectorofCluster32(NowCluster32);
 107   2                              for(sector=0;sector<DeviceInfo.BPB_SecPerClus;sector++)
 108   2                      {   
 109   3                                      if(!SdReadSector(NowSector+sector,1,DBUF))
 110   3                                              return FALSE;                           
 111   3                                      for(i=0;i<DeviceInfo.BPB_BytesPerSec;i=i+32)
 112   3                                      {
 113   4                                              if(DBUF[i]==0x00)
 114   4                                                      {bstop=1;break;}
 115   4                                              else if(DBUF[i]==0xE5)
 116   4                                                      continue;                       
 117   4                                              else
C51 COMPILER V8.02   HPI32                                                                 04/29/2007 12:48:53 PAGE 3   

 118   4                                              {
 119   5                                                      for(k=0;k<32;k++)
 120   5                                                              UARTBUF[item*32+k]=DBUF[i+k];
 121   5                                                      item=item+1;
 122   5                                               if(item>=(UARTBUF_LENGTH/32))  {bstop=1;break;}  //串口緩沖 只能有512項目錄,強(qiáng)行結(jié)束
 123   5                                                      /////////////////////////////////
 124   5                                              if(Lcount<MaxLFNum)
 125   5                                               {
 126   6                                                      if(DBUF[i+11]==0x0F)
 127   6                                                      {
 128   7                                                              base=((DBUF[i]&0x1F)-1)*26;
 129   7                                                              if(base<=224)
 130   7                                                              {
 131   8                                                                      Ncount=0;
 132   8                                                                      for(k=1;k<11;k++)
 133   8                                                                      {
 134   9                                                                              ShowFileName[Lcount].LongName[base+Ncount]=DBUF[i+k];
 135   9                                                                              Ncount++;
 136   9                                                                      }
 137   8                                                                      for(k=14;k<26;k++)
 138   8                                                                      {
 139   9                                                                              ShowFileName[Lcount].LongName[base+Ncount]=DBUF[i+k];
 140   9                                                                              Ncount++;
 141   9                                                                      }
 142   8                                                                      for(k=28;k<32;k++)
 143   8                                                                      {
 144   9                                                                              ShowFileName[Lcount].LongName[base+Ncount]=DBUF[i+k];
 145   9                                                                              Ncount++;
 146   9                                                                      }
 147   8                                                              }
 148   7                                                      }
 149   6                                                      else
 150   6                                                      {
 151   7                                                              for(k=0;k<32;k++)
 152   7                                                                      ShowFileName[Lcount].item[k]=DBUF[i+k];
 153   7                                                         Lcount++;                                                    
 154   7                                                      }       
 155   6                                            }
 156   5                                      /////////////////////////////////
 157   5                                              }
 158   4                                      }
 159   3                                      if(bstop==1)break;              
 160   3                      }
 161   2                              if(bstop==1)break;
 162   2              
 163   2                              NowCluster32=GetNextClusterNum32(NowCluster32); 
 164   2                              
 165   2                      }while(NowCluster32<=DeviceInfo.TotCluster);
 166   1      
 167   1              Response.len=item*32;
 168   1              return TRUE;    
 169   1      }
 170          
 171          unsigned char OpenFile32(unsigned char *pBuffer)
 172          {
 173   1              unsigned int i;
 174   1              unsigned char j,bstop,sector;
 175   1                      
 176   1              if(!bFlags.bits.SLAVE_IS_ATTACHED)
 177   1                      return FALSE;                   
 178   1              ThisFile.bFileOpen=0;
 179   1              NowCluster32=DirStartCluster32;         
C51 COMPILER V8.02   HPI32                                                                 04/29/2007 12:48:53 PAGE 4   

 180   1                      do
 181   1                      {
 182   2                              NowSector=FirstSectorofCluster32(NowCluster32);
 183   2                              for(sector=0;sector<DeviceInfo.BPB_SecPerClus;sector++)
 184   2                      {   
 185   3                                      if(!SdReadSector(NowSector+sector,1,DBUF))
 186   3                                              return FALSE;                           
 187   3                                      for(i=0;i<DeviceInfo.BPB_BytesPerSec;i=i+32)
 188   3                                      {
 189   4                                              if(DBUF[i]==0x00)
 190   4                                                      return FALSE;
 191   4                                              j=0;
 192   4                                              while(DBUF[i+j]==*(pBuffer+j))
 193   4                                              {
 194   5                                                       j=j+1;
 195   5                                                       if(j>10)
 196   5                                                              break;
 197   5                                              }
 198   4                                              if(j>10&&(DBUF[i+11]&0x10)!=0x10)
 199   4                                              { 
 200   5                                                      for(j=0;j<32;j++)
 201   5                                                      UARTBUF[j]=DBUF[i+j];                       
 202   5                                              bstop=1;
 203   5                                              break;
 204   5                                                      }
 205   4                                      }
 206   3                                      if(bstop==1)break;              
 207   3                      }
 208   2                              if(bstop==1)break;      
 209   2                              NowCluster32=GetNextClusterNum32(NowCluster32);                 
 210   2                      }while(NowCluster32<=DeviceInfo.TotCluster);
 211   1                      
 212   1              if(NowCluster32>DeviceInfo.TotCluster)
 213   1                      return FALSE;
 214   1      
 215   1              ThisFile.bFileOpen=1;
 216   1              ThisFile.StartCluster=LSwapINT32(UARTBUF[26],UARTBUF[27],UARTBUF[20],UARTBUF[21]);
 217   1              ThisFile.LengthInByte=LSwapINT32(UARTBUF[28],UARTBUF[29],UARTBUF[30],UARTBUF[31]);
 218   1              ThisFile.ClusterPointer=ThisFile.StartCluster;  
 219   1              ThisFile.SectorPointer=FirstSectorofCluster32(ThisFile.StartCluster);
 220   1              ThisFile.OffsetofSector=0;
 221   1              ThisFile.SectorofCluster=0;     

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va国产va欧美va观看| 亚洲二区在线视频| 欧美巨大另类极品videosbest | 精品久久人人做人人爰| aaa国产一区| 久久99久久精品| 国产不卡在线一区| 日韩 欧美一区二区三区| 国产精品不卡一区| 欧美精品一区二区久久久| 欧美亚洲自拍偷拍| 成人免费va视频| 激情综合色播五月| 午夜精品久久久久久久久久| 国产精品久久福利| 久久一夜天堂av一区二区三区| 欧美日韩大陆一区二区| 91碰在线视频| 成人一区二区三区| 国产精品一区2区| 美女精品自拍一二三四| 婷婷综合另类小说色区| 一区二区三区四区中文字幕| 国产精品久久久久久久岛一牛影视 | 日本视频在线一区| 亚洲国产日韩一级| 亚洲天堂精品在线观看| 日本在线不卡视频| 午夜日韩在线电影| 亚洲综合视频网| 综合久久一区二区三区| 国产精品网站在线| 久久久国产精品午夜一区ai换脸| 欧美一级xxx| 日韩一区二区在线观看| 9191久久久久久久久久久| 欧美午夜影院一区| 欧美性受极品xxxx喷水| 91丨porny丨在线| 91丨porny丨首页| 91影院在线观看| 色综合天天性综合| 色婷婷精品大在线视频| 在线视频国内自拍亚洲视频| 91亚洲精品久久久蜜桃网站| 99久久99久久久精品齐齐| 99精品视频在线观看| 99久久国产综合色|国产精品| 不卡一区在线观看| 波多野结衣视频一区| 色综合久久综合| 欧美亚洲动漫精品| 91精品国产综合久久精品图片| 91精品国产免费| 精品成人a区在线观看| 国产性天天综合网| 国产精品盗摄一区二区三区| 日韩毛片精品高清免费| 亚洲狠狠爱一区二区三区| 偷偷要91色婷婷| 精品综合久久久久久8888| 国产精品自拍一区| 91丝袜呻吟高潮美腿白嫩在线观看| 色婷婷久久99综合精品jk白丝| 欧美视频一区在线| 日韩精品一区二区三区老鸭窝| 久久夜色精品国产噜噜av| 国产精品初高中害羞小美女文| 一区二区三区久久久| 视频一区二区三区中文字幕| 精品亚洲成a人| 成人av网址在线| 欧美剧在线免费观看网站 | 97超碰欧美中文字幕| 欧美亚洲综合另类| 欧美mv和日韩mv的网站| 中文字幕在线不卡一区二区三区| 一区二区三区波多野结衣在线观看 | 欧美猛男超大videosgay| 欧美va在线播放| 最新久久zyz资源站| 色综合久久99| 久久亚洲春色中文字幕久久久| 亚洲美女淫视频| 喷水一区二区三区| 99国产精品99久久久久久| 欧美日韩精品福利| 国产午夜精品久久久久久久| 夜夜亚洲天天久久| 国产精品亚洲视频| 欧美日本不卡视频| 综合久久久久久| 激情综合网av| 欧美乱熟臀69xxxxxx| 国产日韩v精品一区二区| 亚洲一区二区中文在线| 国产盗摄女厕一区二区三区| 欧美三级韩国三级日本三斤| 国产拍揄自揄精品视频麻豆| 亚洲6080在线| 99re这里只有精品首页| 欧美不卡一区二区三区| 一区二区三区中文字幕| 国产成人精品三级| 制服丝袜激情欧洲亚洲| 国产精品久久久久久久裸模| 麻豆专区一区二区三区四区五区| 色欧美片视频在线观看| 久久九九久精品国产免费直播| 五月天久久比比资源色| 色婷婷国产精品综合在线观看| 国产亚洲va综合人人澡精品| 青椒成人免费视频| 欧美视频一区二区三区在线观看| 国产精品美女久久久久久久 | 一区二区三区四区中文字幕| 成人永久免费视频| 久久一区二区视频| 麻豆国产欧美一区二区三区| 欧美日本一道本| 亚洲与欧洲av电影| 91麻豆精品视频| 亚洲欧洲日韩综合一区二区| 国产成人夜色高潮福利影视| 日韩欧美一二三区| 日本一区中文字幕| 91精品国产入口| 五月天久久比比资源色| 欧美日韩免费一区二区三区| 伊人一区二区三区| 日本乱码高清不卡字幕| 亚洲视频在线观看三级| av电影在线不卡| 日韩伦理免费电影| 91小视频在线| 伊人婷婷欧美激情| 欧美亚洲国产一区在线观看网站| 一区二区三区在线高清| 色88888久久久久久影院按摩| 亚洲色图清纯唯美| 一本大道久久a久久综合| 亚洲人成在线播放网站岛国| 色综合久久天天| 亚洲午夜国产一区99re久久| 欧美视频中文字幕| 日韩在线一区二区三区| 制服丝袜亚洲播放| 精品一区二区三区视频在线观看 | 久久99国产精品久久99果冻传媒| 日韩午夜在线观看视频| 精品在线播放免费| 久久午夜羞羞影院免费观看| 国产91精品免费| 国产精品不卡一区二区三区| 色琪琪一区二区三区亚洲区| 亚洲va中文字幕| 欧美电视剧免费全集观看| 韩国三级在线一区| 国产精品麻豆久久久| 色av成人天堂桃色av| 日韩专区在线视频| 2023国产精品| 91在线看国产| 91视频免费播放| 亚洲一区二区欧美激情| 日韩精品一区国产麻豆| 盗摄精品av一区二区三区| 一区二区三区四区乱视频| 在线综合视频播放| 国产v日产∨综合v精品视频| 亚洲女女做受ⅹxx高潮| 制服丝袜亚洲网站| 成人一区二区视频| 亚洲午夜精品网| 久久久久久99久久久精品网站| 99久久综合国产精品| 偷偷要91色婷婷| 国产女同互慰高潮91漫画| 色狠狠色狠狠综合| 久久丁香综合五月国产三级网站| 中文字幕av一区二区三区高| 欧美三级电影精品| 国产一区亚洲一区| 亚洲综合精品久久| 精品88久久久久88久久久| 91香蕉视频在线| 激情综合色播激情啊| 樱桃视频在线观看一区| 2021国产精品久久精品| 91国产福利在线| 国产成人在线视频网址| 亚洲影院理伦片| 国产亚洲成aⅴ人片在线观看| 欧美日韩国产高清一区二区 | 国产成人精品免费看| 香港成人在线视频| 最新国产の精品合集bt伙计| 欧美大度的电影原声| 在线视频国内自拍亚洲视频| 国产成人在线视频网址|