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

📄 fat32mountpartition.lst

📁 基于c51的SD驱动程序,在FAT32文件系统中.
💻 LST
字号:
C51 COMPILER V7.50   FAT32MOUNTPARTITION                                                   07/13/2005 11:18:23 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FAT32MOUNTPARTITION
OBJECT MODULE PLACED IN FAT32MOUNTPARTITION.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE FAT32MOUNTPARTITION.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #ifndef _FAT32_DEFINE
   2           #include "FAT32.c"
   3          #endif
   4          
   5          BYTE FAT32MountPartition(void);
   6          
   7          BYTE FAT32MountPartition(void)
   8          {
   9   1              register BYTE i,j,k;
  10   1              xdata DWORD temp[4]={0,0,0,0};
  11   1      
  12   1              ReadDiskSector(0);                              //读MBR扇区
  13   1      
  14   1              //检查MBR扇区标记
  15   1              if (DiskBuffer[510] != 0x55||DiskBuffer[511] != 0xaa)
  16   1                      return(FAT32_ERR_MBR_FLAG);                     //不正常的引导扇区标志
  17   1      
  18   1              //加载分区表
  19   1              j=0;k=0;
  20   1              for(i=0;i<4;i++)
  21   1              {
  22   2                      DPT[i].LBABegin=MEMSwap32(DPT[i].LBABegin);
  23   2                      DPT[i].CntSec=MEMSwap32(DPT[i].CntSec);
  24   2                      if (DPT[i].TypeCode==0x0b)                      //FAT32 分区
  25   2                      {
  26   3                              sDPT[j].TypeCode = DPT[i].TypeCode;
  27   3                              sDPT[j].LBABegin = DPT[i].LBABegin;
  28   3                              sDPT[j].CntSec = DPT[i].CntSec;
  29   3                              j++;
  30   3                      }
  31   2                      else if (DPT[i].TypeCode==0x05||DPT[i].TypeCode==0x0f)          //扩展分区
  32   2                      {
  33   3                              temp[k]=DPT[i].LBABegin;
  34   3                              k++;
  35   3                      }
  36   2              }
  37   1              
  38   1              for(i=0;i<k&&j<16;i++)
  39   1              {
  40   2                      ReadDiskSector(temp[i]);
  41   2                      DPT[i].LBABegin=MEMSwap32(DPT[i].LBABegin);
  42   2                      DPT[i].CntSec=MEMSwap32(DPT[i].CntSec);
  43   2                      if (DPT[i].TypeCode==0x0b)                      //FAT32 分区
  44   2                      {
  45   3                              sDPT[j].TypeCode = DPT[i].TypeCode;
  46   3                              sDPT[j].LBABegin = temp[i] + DPT[i].LBABegin;
  47   3                              sDPT[j].CntSec = DPT[i].CntSec;
  48   3                              j++;
  49   3                      }
  50   2              }
  51   1              HDD.TotalPartitions=j;
*** ERROR C202 IN LINE 51 OF FAT32MOUNTPARTITION.C: 'HDD': undefined identifier
  52   1              #ifdef DEBUG
                              printf("Partition Table\n");
                              printf("PNo.\tType\tLBAStart\tCount\tSize\n");
C51 COMPILER V7.50   FAT32MOUNTPARTITION                                                   07/13/2005 11:18:23 PAGE 2   

                              for(i=0;i<HDD.TotalPartitions;i++)
                              {
                                      printf("P%bd\t%bx\t%ld\t\t%ld\t%ldMB\n",i,sDPT[i].TypeCode,sDPT[i].LBABegin,sDPT[i].CntSec,sDPT[i].CntS
             -ec*512/1024/1024);
                              }
                      #endif
  60   1              return(0);
  61   1      }

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

⌨️ 快捷键说明

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