⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.lst

📁 单片机读写优盘
💻 LST
📖 第 1 页 / 共 3 页
字号:
 166   2                      for(j=0;j<256;j++)
 167   2                      {
 168   3                              if(FatCache[1][j]==0)
 169   3                              {       
 170   4                                      FatCache[1][j]=0xffff;
 171   4                                      FatCache[0][Cluster%(SimpleBpb.BytsPerSec/2)]=WordSwap((i*256+j));
 172   4                                      if(!Write(FixedSec+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[0],TRUE))
 173   4                                              return FALSE;
 174   4                                      if(!Write(i+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[p],TRUE))
 175   4                                              return FALSE;
C51 COMPILER V7.06   FILE                                                                  07/30/2008 08:56:13 PAGE 4   

 176   4                                      return (i*256+j);
 177   4                              }
 178   3                      }
 179   2              }
 180   1              return 0Xffff;  
 181   1      /*      FixedSec=Cluster*2/SimpleBpb.BytsPerSec;
 182   1              if(!Read(FixedSec+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[0]))
 183   1                      return FALSE;
 184   1              for(i=FixedSec;i<SimpleBpb.FATSz;i++)
 185   1              {
 186   1                      if(!Read(i+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[1]))
 187   1                              return FALSE;
 188   1                      for(j=0;j<256;j++)
 189   1                      {
 190   1                              if(FatCache[1][j]==0)
 191   1                              {       if(i==FixedSec)
 192   1                                              p=0;    
 193   1                                      else p=1;
 194   1                                      FatCache[p][j]=0xffff;
 195   1                                      FatCache[0][Cluster%(SimpleBpb.BytsPerSec/2)]=WordSwap((i*256+j));
 196   1                                      if(!Write(FixedSec+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[0],TRUE))
 197   1                                              return FALSE;
 198   1                                      if(!Write(i+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[p],TRUE))
 199   1                                              return FALSE;
 200   1                                      return (i*256+j);
 201   1                              }
 202   1                      }
 203   1              }
 204   1              for(i=0;i<FixedSec;i++)
 205   1              {
 206   1                      if(!Read(i+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[1]))
 207   1                              return FALSE;
 208   1                      for(j=0;j<256;j++)
 209   1                      {
 210   1                              if(FatCache[1][j]==0)
 211   1                              {       if(i==FixedSec)
 212   1                                              p=0;    
 213   1                                      else p=1;
 214   1                                      FatCache[p][j]=0xffff;
 215   1                                      FatCache[0][Cluster%(SimpleBpb.BytsPerSec/2)]=WordSwap((i*256+j));
 216   1                                      if(!Write(FixedSec+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[0],TRUE))
 217   1                                              return FALSE;
 218   1                                      if(!Write(i+FatParameter.FirstFatSecNum,1,(BYTE *)FatCache[p],TRUE))
 219   1                                              return FALSE;
 220   1                                      return (i*256+j);
 221   1                              }
 222   1                      }
 223   1              }
 224   1              return 0Xffff;*/
 225   1              ///////////////////////////////////////////////////////////////////////////////
 226   1      /*      FixedSec=Cluster*2/SimpleBpb.BytsPerSec+FatParameter.FirstFatSecNum;
 227   1              if(!Read(FixedSec,1,(BYTE *)FatCache[0]))
 228   1                      return FALSE;
 229   1              for(i=VariedCluster; i<SimpleBpb.BytsPerSec * SimpleBpb.FATSz / sizeof(WORD); i++)
 230   1              {       
 231   1                      UpdateSec=i*2/SimpleBpb.BytsPerSec+FatParameter.FirstFatSecNum; 
 232   1                      OffSet=i%(SimpleBpb.BytsPerSec/2);
 233   1                      if(FixedSec==UpdateSec)
 234   1                      {
 235   1                      p=0;
 236   1                      }
 237   1                      else
C51 COMPILER V7.06   FILE                                                                  07/30/2008 08:56:13 PAGE 5   

 238   1                      {
 239   1                              if(!Read(UpdateSec,1,(BYTE *)FatCache[1]))
 240   1                                      return FALSE;   
 241   1                              p=1;
 242   1                      }
 243   1                      ///////////////////////////////////////////////////////////////////////////
 244   1                      if(FatCache[p][OffSet]==0)
 245   1                      {
 246   1                              FatCache[p][OffSet]=0xffff;
 247   1                              VariedCluster= i;
 248   1                              FatCache[0][Cluster%(SimpleBpb.BytsPerSec/2)]= WordSwap(VariedCluster);
 249   1                              if(!p)
 250   1                              {
 251   1                                      if(!Write(FixedSec,1,(BYTE *)FatCache[p],TRUE))
 252   1                                              return FALSE;           
 253   1                                      return VariedCluster;
 254   1                              }
 255   1                              if(!Write(FixedSec,1,(BYTE *)FatCache[0],TRUE))
 256   1                                      return FALSE;
 257   1                              
 258   1                              if(!Write(UpdateSec,1,(BYTE *)FatCache[1],TRUE))
 259   1                                      return FALSE;           
 260   1                              return VariedCluster;
 261   1                      }
 262   1              }//*----------------end for cycle       
 263   1              //////////////////////////////////////////////////////////////////////////////////
 264   1              for(i=2;i<VariedCluster;i++)
 265   1              {
 266   1                      UpdateSec=i*2/SimpleBpb.BytsPerSec+FatParameter.FirstFatSecNum; 
 267   1                      OffSet=i%(SimpleBpb.BytsPerSec/2);
 268   1                      if(FixedSec==UpdateSec)
 269   1                              p=0;    
 270   1                      else
 271   1                      {
 272   1                              if(!Read(UpdateSec,1,(unsigned char *)FatCache[1]))
 273   1                                      return FALSE;   
 274   1                              p=1;
 275   1                      }
 276   1                      
 277   1                      if(FatCache[p][OffSet]==0)
 278   1                      {
 279   1                              FatCache[p][OffSet]=0xffff;
 280   1                              VariedCluster= i;
 281   1                              FatCache[0][Cluster%(SimpleBpb.BytsPerSec/2)]=WordSwap(VariedCluster);
 282   1                              if(!p)
 283   1                              {
 284   1                                      if(!Write(FixedSec,1,(unsigned char *)FatCache[p],TRUE))
 285   1                                              return FALSE;
 286   1                                      
 287   1                                      return VariedCluster;;
 288   1                              }
 289   1                              if(!Write(FixedSec,1,(unsigned char *)FatCache[0],TRUE))
 290   1                                      return FALSE;
 291   1                              
 292   1                              if(!Write(UpdateSec,1,(unsigned char *)FatCache[1],TRUE))
 293   1                                      return FALSE;   
 294   1                              return VariedCluster;;
 295   1                      }
 296   1                      
 297   1              }//----------------------------end for cycle
 298   1              /////////////////////////////////////////////////////////////////////////////////
 299   1              return 0xffff;*/
C51 COMPILER V7.06   FILE                                                                  07/30/2008 08:56:13 PAGE 6   

 300   1      }
*** WARNING C280 IN LINE 104 OF FILE.C: 'OffSet': unreferenced local variable
*** WARNING C280 IN LINE 104 OF FILE.C: 'UpdateSec': unreferenced local variable
 301          WORD GetListCluster(WORD Cluster)
 302          {
 303   1              WORD Fatbuf[256];
 304   1              //////////////////////////////////////////////////////////////////////////////////
 305   1              if(!Read(2*Cluster/SimpleBpb.BytsPerSec+FatParameter.FirstFatSecNum,1,(BYTE *)Fatbuf))
 306   1                      return FALSE;
 307   1              return WordSwap(Fatbuf[Cluster%(SimpleBpb.BytsPerSec/2)]);
 308   1      }
 309          WORD SecToCluster(DWORD Sector)
 310          {
 311   1              if(Sector < FatParameter.FirstDataSector)
 312   1                      return FALSE;
 313   1              else
 314   1                      return (WORD)((Sector -  FatParameter.FirstDataSector) / SimpleBpb.SecPerClus + 2);
 315   1      }
 316          DWORD ClusterToSec(WORD Cluster)
 317          {
 318   1              if(Cluster<2)
 319   1                      return (FatParameter.FirstDataSector-1);
 320   1              return ((Cluster-2)*SimpleBpb.SecPerClus+FatParameter.FirstDataSector);
 321   1      }
 322          DWORD SeekSector(DWORD Sector, const char dirname[11], struct _FILE *file)
 323          {
 324   1              BYTE Cache[512];
 325   1              struct _DIR *dir;
 326   1              UINT j, i;
 327   1              WORD temp,temp1;
 328   1              ///////////////////////////////////////////////////////////////////////////////////     
 329   1              for(i=0; i<SimpleBpb.RootEntCnt * sizeof(struct _DIR) / SimpleBpb.BytsPerSec; i++)
 330   1              {
 331   2                      if(!Read(Sector,1,(BYTE *)Cache))
 332   2                              return  0xffffffff;                     
 333   2                      dir = (struct _DIR *)Cache;
 334   2              //********************************************************************************
 335   2                      for(j=0; (dir->Name[0] != '\0') && (j< SimpleBpb.BytsPerSec / sizeof(struct _DIR)); j++)
 336   2                      {
 337   3                              if(memcmp((const char*)dir->Name, dirname, 11)== 0)     
 338   3                              {
 339   4                                      if(file != NULL)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -