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

📄 fat.lst

📁 用89C51SND1C实现MP3播放器的源代码.用KEIL c51编写.
💻 LST
字号:
C51 COMPILER V6.23a  FAT                                                                   04/26/2003 12:08:24 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE FAT
OBJECT MODULE PLACED IN FAT.OBJ
COMPILER INVOKED BY: G:\mp3player\keil\C51\BIN\C51.EXE FAT.c LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //******************************************************
   2          //name : fat.c
   3          //this flie include the commands for mass storage reading
   4          //and analyze the system structe of the mass storage
   5          //  zhdgps   wikee 2003.4.10
   6          //******************************************************
   7          
   8          
   9          //******************************************************
  10          //include file
  11          //******************************************************
  12          
  13          #include "fat.h"
  14          #include "testuart.h"
*** ERROR C318 IN LINE 14 OF FAT.c: can't open file 'testuart.h'
  15          #include "flash.h"
  16          #include "uart.h"
  17          
  18          unsigned char FAT_TYPE;
  19          
  20          unsigned char databuff[SectorLength];
  21          void Init_File_System(unsigned int *Em_FAT,unsigned char *Em_DIR)
  22          {
  23   1              unsigned int TotalCluster,BootSector,RsdSector,SectorofFatSize,i,j;
  24   1      
  25   1              ///////////////////////////////////////////////////
  26   1              //得到引导扇区所在扇区号,如果介质是不带分区的,则0扇区就是BootSector了。
  27   1              ReadPage(ZeroCluster,0,databuff);
  28   1              if(!(databuff[0]==0xeb&&databuff[2]==0x90)){    //通过判断EB ?? 90来看是否已经是BPB了
  29   2                      //带分区的介质
  30   2                      BootSector=databuff[454]+databuff[455]*256+databuff[456]*(256*256)+databuff[457]*(256*256*256);
*** ERROR C193 IN LINE 30 OF FAT.C: '*': bad operand type
  31   2                      }
  32   1              else BootSector=0;
  33   1              ///////////////////////////////////////////////////
  34   1      
  35   1              ////////////////////////////////////////////////
  36   1              //得到保留扇区数,总扇区数,总扇区数/每簇扇区数得到簇数,是FAT类型的依据
  37   1              ReadPage(ZeroCluster,BootSector,databuff);
  38   1              RsdSector=databuff[14]+databuff[15]*256;
*** ERROR C193 IN LINE 38 OF FAT.C: '*': bad operand type
  39   1              TotalCluster=(databuff[20]*256+databuff[19])/databuff[13];//FAT16的簇总数=扇区总数/每簇扇区数
*** ERROR C193 IN LINE 39 OF FAT.C: '*': bad operand type
  40   1              SectorofFatSize=((databuff[22]+databuff[23]*256));
*** ERROR C193 IN LINE 40 OF FAT.C: '*': bad operand type
  41   1              if(TotalCluster==0){  //FAT32的扇区总数和FAT表项长度
  42   2                      TotalCluster=(databuff[32]+databuff[33]*256+databuff[34]*256*256+databuff[35]*256*256*256)/databuff[13];
*** ERROR C193 IN LINE 42 OF FAT.C: '*': bad operand type
  43   2                      SectorofFatSize=(databuff[36]+databuff[37]*256+databuff[38]*256*256+databuff[39]*256*256*256);
*** ERROR C193 IN LINE 43 OF FAT.C: '*': bad operand type
  44   2                      if(SectorofFatSize>(TotalCluster*16/512)) SectorofFatSize=((databuff[22]+databuff[23]*256));
*** ERROR C193 IN LINE 44 OF FAT.C: '*': bad operand type
  45   2                      }
  46   1              ////////////////////////////////////////////////////////////////
  47   1              
C51 COMPILER V6.23a  FAT                                                                   04/26/2003 12:08:24 PAGE 2   

  48   1      //      Uart_Printf("\nBootSector:%x RsdSector:%x,TotalCluster:%x  SectorofFatSize:%x\n",BootSector,RsdSector,T
             -otalCluster,SectorofFatSize);
  49   1      //      for(i=0;i<512;i++) {if(!(i%32)) Uart_Printf("\n");Uart_Printf("%x  ",databuff[i]);}
  50   1              /////////////////////////////////////////////////////////////
  51   1              //开始读取第一个FAT的第一个扇区
  52   1              ReadPage(ZeroCluster,BootSector+RsdSector,databuff);
  53   1              //根据总的簇数判断FAT类型,并进行FAT表项转换
  54   1              //decied which type of FAT this File System Belongs to
  55   1              if(TotalCluster==FAT32){        //FAT32
  56   2                      FAT_TYPE=FAT32;
  57   2                      for(i=0,j=0;j<(512-4);i++,j+=4) Em_FAT[i]=(databuff[j]&0x000000ff)|((databuff[j+1]&0x000000ff)<<8)|((dat
             -abuff[j+2]&0x000000ff)<<16)|((databuff[j+3]&0x000000ff)<<24);
*** ERROR C193 IN LINE 57 OF FAT.C: '<<': bad operand type
  58   2                      }
  59   1              else if((TotalCluster>0)&&(TotalCluster<FAT12)) {//FAT12
  60   2                      FAT_TYPE=FAT12;
  61   2                      for(i=0,j=0;i<(512-3);i+=3) {           //f8  (f2 f1)  ff ---> f1 f8  ff f2  TotalCluster/3
  62   3                              Em_FAT[j]=0;
  63   3                              Em_FAT[j]=databuff[i+1]<<8;//ff00
*** ERROR C193 IN LINE 63 OF FAT.C: '<<': bad operand type
  64   3                              Em_FAT[j]=Em_FAT[j]|databuff[i];//fff8
  65   3                              Em_FAT[j]=Em_FAT[j]&0x0fff;//0ff8
  66   3                              
  67   3                              Em_FAT[++j]=0;
  68   3                              Em_FAT[j]=databuff[i+2]<<8;//ff00
*** ERROR C193 IN LINE 68 OF FAT.C: '<<': bad operand type
  69   3                              Em_FAT[j]=Em_FAT[j]|databuff[i+1];//ffff
  70   3                              Em_FAT[j]=Em_FAT[j]>>4;//0fff
*** ERROR C193 IN LINE 70 OF FAT.C: '>>': bad operand type
  71   3                              j++;
  72   3                              }
  73   2                      }
  74   1              else {  //FAT16
  75   2                      FAT_TYPE=FAT16;
  76   2                      for(i=0,j=0;i<(512-2);i++,j+=2) Em_FAT[i]=(databuff[j]&0x00ff)|((databuff[j+1]&0x00ff)<<8);//如果是FAT16
             -则直接赋值
*** ERROR C193 IN LINE 76 OF FAT.C: '<<': bad operand type
  77   2                      }
  78   1              //////////////////////////////////////////////////////////////
  79   1      
  80   1              ////////////////////////////////////////////////
  81   1              //读根目录表的第一个扇区并进行相应的转换
  82   1              ReadPage(ZeroCluster,BootSector+RsdSector+2*SectorofFatSize,databuff);
  83   1              for(i=0;i<512;i++) *(Em_DIR+i)=databuff[i];//处理根目录
  84   1      
  85   1      }
  86          
  87          void ListName(unsigned char *Em_DIR)
  88          {
  89   1              int i,j;
  90   1              j=0;
  91   1              for(;Em_DIR[j*32];) {
  92   2                      if(Em_DIR[j*32]==0xe5) {j++;continue;}
  93   2                      printuf("\n");for(i=0;i<11;i++) printuf("%x",Em_DIR[j*32+i]);
*** WARNING C209 IN LINE 93 OF FAT.C: '_printuf': too few actual parameters
  94   2                      j++;
  95   2                      }
  96   1              
  97   1      }
  98          
  99                          

C51 COMPILATION COMPLETE.  1 WARNING(S),  13 ERROR(S)

⌨️ 快捷键说明

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