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

📄 api.lst

📁 单片机读写优盘
💻 LST
📖 第 1 页 / 共 3 页
字号:
 420   1              // dot dir
 421   1              memset(Cache,0,512);
 422   1              pdir = (struct _DIR *)Cache;
 423   1              memset(pdir, 0, sizeof(dir));
 424   1              pdir->Attr=ATTR_DIRECTORY;
 425   1              pdir->FstClusLO=WordSwap(NewCluster);
 426   1              memcpy(pdir->Name, Dotname, 11);
 427   1              // dot dot dir;
 428   1              pdir++;
 429   1              memcpy(pdir->Name, DotDotname, 11);
 430   1              pdir->FstClusLO=0;
 431   1              for(i=0;i<SimpleBpb.SecPerClus;i++)
 432   1              {
 433   2                      if(!Write(ClusterToSec(NewCluster)+i,1,Cache))
*** WARNING C209 IN LINE 433 OF API.C: '_Write': too few actual parameters
 434   2                              return FALSE;
 435   2                      memset(Cache,0,512);
 436   2              }
 437   1              //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
 438   1              //如果目录且文件名存在则在该目录下创建一个文件
 439   1              /////////////////////////////////////////////////////////////////////////////
 440   1              //分离出文件名
 441   1              p2=strrchr(path, '\\');
 442   1              if(p2==NULL)
 443   1                      return TRUE;
 444   1              memset(NewFileName,0,12);
 445   1      //      memcpy(NewFileName,(),(strlen(dirname)-strlen(NewDirName)+1));
 446   1              if(!CheckFileName(p2+1,p1))
 447   1                      return FALSE;
 448   1              strncpy(name, p1, 11);
 449   1              memset(pdir, 0, sizeof(dir));
 450   1      //      memcpy(dir.Name, name, 11);
 451   1      //  在数据区写上文件的头信息
 452   1              for(i=0;i<SimpleBpb.SecPerClus;i++)
 453   1              {
 454   2                      if(!Read(ClusterToSec(NewCluster)+i,1,(BYTE *)Cache))
 455   2                              return  0xffffffff;                     
 456   2                      pdir=(struct _DIR *)Cache;
 457   2                      for(pdir = (struct _DIR *)Cache; (BYTE*)pdir < Cache + SimpleBpb.BytsPerSec; pdir++)
 458   2                      {       
 459   3                              if(pdir->Name[0]=='\0')
 460   3                              {       
 461   4                                      memcpy((BYTE *)pdir->Name,name,11);
 462   4                                      if(!Write(ClusterToSec(NewCluster)+i,1,Cache))
*** WARNING C209 IN LINE 462 OF API.C: '_Write': too few actual parameters
 463   4                                              return FALSE;
 464   4              //                      memcpy(&ApiFileControl.dir.Name,name,11);
 465   4                                      memcpy(&ApiFileControl.dir,pdir,sizeof(struct _DIR));
 466   4                                      ApiFileControl.StartSectorNum=ClusterToSec(WordSwap(pdir->FstClusLO));
 467   4                                      ApiFileControl.SectorOffset=0;
 468   4                                      ApiFileControl.DirSectorNum=ClusterToSec(NewCluster)+i;
 469   4                                      //ApiFileControl.isDir=1;
 470   4                              //      ApiFileControl.dir.FileSize=0;
 471   4                                      ApiFileControl.DirIndex = ((BYTE*)pdir - Cache)/sizeof(struct _DIR);
 472   4                                      return TRUE;
 473   4                              }
 474   3                              pdir++;
 475   3                      }       
 476   2              }
 477   1              return TRUE;
 478   1      }
 479          /////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.06   API                                                                   07/30/2008 08:56:14 PAGE 9   

 480          //*所有测试工作从这里开始
 481          BYTE ApiDemo(void)
 482          {
 483   1              BYTE buf[5120],buf1[1024],buf2[1024];
 484   1              WORD i;
 485   1              ////////////////////////////////////////////////////////////////////////
 486   1              PollDisk();                     //首先配置U盘:获取它的基本信息,测试盘是否已经准备好
 487   1              //DemlayMs(100);        //根据不同情况需要延迟同的时间。
 488   1              InitFsys();                     //读取FAT信息然,初始化必要的FAT参数
 489   1      //************************************************************************
 490   1      //////////////////////////////////////////////////////////////////////////
 491   1      //      
 492   1      //去调注释线,打开下函数设置断点是可测试创建文件
 493   1      //      if(!CreatFile("demo.txt",0x20))
 494   1      //              return  FALSE;
 495   1      //
 496   1      ///////////////////////////////////////////////////////////////////////////
 497   1      //      if(!OpenFile("demo.txt"))
 498   1      //              return FALSE;
 499   1      //************************************************************************
 500   1      //测试一:创建一个空文件
 501   1      //      
 502   1      //去调注释线,打开下函数设置断点是可测试创建文件
 503   1      //      if(!CreatFile("demo.txt",0x20))
 504   1      //              return  FALSE;
 505   1      //////////////////////////////////////////////////////////////////////////
 506   1      //************************************************************************
 507   1      //测试二:创建文件demo.txt并写上少量数据
 508   1      //
 509   1      //      for(i=0;i<5120;i++)
 510   1      //              buf[i]='j';     
 511   1      //      if(!CreateFile("demo.txt",0x20))
 512   1      //              return  FALSE;
 513   1      //      if(!WriteFile(buf,1000))
 514   1      //              return FALSE;           
 515   1      //      if(!CloseFile())
 516   1      //              return FALSE;
 517   1      /////////////////////////////////////////////////////////////////////////////
 518   1      //**************************************************************************
 519   1      //测试三:写大批量数据
 520   1      //      for(i=0;i<5120;i++)
 521   1      //              buf[i]='c';     
 522   1      //      if(!CreateFile("demo.txt",0x20))
 523   1      //      return  FALSE;
 524   1      //      for(i=0;i<5;i++)
 525   1      //      if(!WriteFile(buf,1000))
 526   1      //              return FALSE;
 527   1      //      if(!CloseFile())
 528   1      //              return FALSE;
 529   1      ///////////////////////////////////////////////////////////////////////////
 530   1      //**************************************************************************
 531   1      //测试四:打开一个文件并在文件后面接着写上一些少量数据可以精确到到字节
 532   1      //      
 533   1      //      for(i=0;i<5120;i++)
 534   1      //              buf[i]='c';
 535   1      //      if(!OpenFile("demo.txt"))
 536   1      //              return FALSE;
 537   1      //      if(!AddWriteFile(buf,1024))
 538   1      //              return FALSE;
 539   1      //      if(!CloseFile())
 540   1      //              return FALSE;
 541   1      /////////////////////////////////////////////////////////////////////
C51 COMPILER V7.06   API                                                                   07/30/2008 08:56:14 PAGE 10  

 542   1      //**************************************************************************
 543   1      //测试五:打开一个文件并在文件后面接着写上大量数据可以精确到到字节
 544   1      //      
 545   1      //      for(i=0;i<2048;i++)
 546   1      //              buf[i]='h';     
 547   1      //      if(!OpenFile("demo.txt"))
 548   1      //              return FALSE;
 549   1      //      if(!AddWriteFile(buf,1024))
 550   1      //              return FALSE;
 551   1      //      for(i=0;i<2048;i++)
 552   1      //              buf[i]='j';             
 553   1      //      for(i=0;i<10;i++)
 554   1      //      if(!WriteFile(buf,1000))
 555   1      //              return FALSE;   
 556   1      //      if(!CloseFile())
 557   1      //              return FALSE;
 558   1      //////////////////////////////////////////////////////////////////////////////  
 559   1      //***************************************************************************   
 560   1      //测试六:打开一个文件并读取数量到缓存buf
 561   1      //
 562   1      //      if(!OpenFile("demo.txt"))
 563   1      //              return FALSE;
 564   1      //  ApiFileControl.CurrentSectorNum=ApiFileControl.StartSectorNum;
 565   1      //      ApiFileControl.SectorOffset=0;
 566   1      //      if(!ReadFile(buf,500))
 567   1      //              return FALSE;
 568   1      //////////////////////////////////////////////////////////////////////////////
 569   1      //****************************************************************************
 570   1      //测试七:打开一个大文件文件并读取数量到到多个buf
 571   1      //       
 572   1      //      if(!OpenFile("demo.txt"))
 573   1      //              return FALSE;
 574   1       //     ApiFileControl.CurrentSectorNum=ApiFileControl.StartSectorNum;
 575   1      //      ApiFileControl.SectorOffset=0;
 576   1      //              if(!ReadFile(buf1,500))
 577   1      //              return FALSE;   
 578   1      //      if(!ReadFile(buf2,500))
 579   1      //              return FALSE;
 580   1      ///////////////////////////////////////////////////////////////////////////////
 581   1      //****************************************************************************
 582   1      //测试八:显示U盘的文件,执行完后请看全局变量BuffFile里的值
 583   1      //      if(!DisplayFile())
 584   1      //              return FALSE;
 585   1      ///////////////////////////////////////////////////////////////////////////
 586   1      //***************************************************************************
 587   1      //测试:九删除指定的文件
 588   1      //      if(!DelFile("demo.txt"))
 589   1      //              return FALSE;
 590   1      ///////////////////////////////////////////////////////////////////////////////
 591   1      //**************************************************************************
 592   1      //测试十:创建一个目录
 593   1      //      if(!CreateDir("demot"))
 594   1      //              return FALSE;
 595   1      ///////////////////////////////////////////////////////////////////////////////
 596   1      //********************************************************************************
 597   1      //测试十一:创建一个目录同时创建好一个空文件    
 598   1      //      if(!CreateDir("www\\demo.txt"))
 599   1      //              return FALSE;                   
 600   1      ////////////////////////////////////////////////////////////////////////////////////
 601   1      //***********************************************************************************
 602   1      //测试十二:创建好一个目录同时创建一个文件并写上数据
 603   1      //      for(i=0;i<5120;i++)
C51 COMPILER V7.06   API                                                                   07/30/2008 08:56:14 PAGE 11  

 604   1      //      buf[i]='c';             
 605   1      //      if(!CreateDir("www\\demo.txt"))
 606   1      //              return FALSE;
 607   1      //      if(!WriteFile(buf,666))
 608   1      //              return FALSE;   
 609   1      //      if(!CloseFile())
 610   1      //              return FALSE;   
 611   1              return TRUE;
 612   1      }
*** WARNING C280 IN LINE 483 OF API.C: 'buf': unreferenced local variable
*** WARNING C280 IN LINE 483 OF API.C: 'buf1': unreferenced local variable
*** WARNING C280 IN LINE 483 OF API.C: 'buf2': unreferenced local variable
*** WARNING C280 IN LINE 484 OF API.C: 'i': unreferenced local variable
 613          //************************************************************************
 614          //author:dragon
 615          //web:8dragon.com
 616          //2004.2.5完成于桃龙源
 617          //*************************************************************************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   6146    ----
   CONSTANT SIZE    =     22    ----
   XDATA SIZE       =   4184   12212
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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