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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kw_fat32.lst

?? linux下數據下載器的設計與實現
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V7.50   KW_FAT32                                                              10/12/2007 17:05:47 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KW_FAT32
OBJECT MODULE PLACED IN kw_FAT32.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE kw_FAT32.c OBJECTADVANCED OPTIMIZE(11,SIZE) REGFILE(.\nand_fw2k.ORC) BROWSE
                    - ORDER INCDIR(c:\cypress\usb\target\inc) DEFINE(NAND_2K) DEBUG

line level    source

   1          /************************************************************************************** 
   2           Copyright (C), 1988-1999, Xi'an Keyway Control & Measurement Technology Co., Ltd
   3           FileName: kw_nand.c 
   4           Description     :nandflash 接口模塊。      
   5           Version         :1.0 
   6           Function List   :    
   7           History:         // 歷史修改記錄 
   8                <author>      <time>        <version >       <desc> 
   9                LigangWang    07/08/08       1.0             build this moudle   
  10          *************************************************************************************/
  11          
  12          #include "globals.h"
  13          
  14          DWORD xdata     FM_ptr_fats;                            // FAT區首地址
  15          DWORD xdata     FM_ptr_data;                            // 數據區首地址
  16          DWORD xdata     FM_ptr_root;                                    // 目錄區首地址
  17          DWORD xdata             FM_dirs_fat;                                    // FAT中目錄數
  18          WORD  xdata     FM_sectors_fat;                                 // 每個FAT區扇區數
  19          BYTE  xdata     FM_num_fats;                                    // FAT區數量
  20          DWORD xdata     FM_unuse_clus;                                  // 未使用簇數量
  21          BYTE  xdata     FM_sectors_clus;                                // 每簇扇區數
  22          
  23          DWORD xdata     FM_CurrentDirLBA;                               // 當前打開文件的目錄LBA地址
  24          DWORD xdata     FM_CurrentFileLength;                   // 當前打開文件長度
  25          Dir_tag xdata * FM_pCurrentDir;                                 // 當前文件名所在目錄表頁中偏移
  26          
  27          BYTE xdata      FM_DataBuff1[MAX_RS232_BUFF];   // 數據緩沖區1 用于接收RS232數據                                   
  28          BYTE xdata      FM_DataBuff2[MAX_RS232_BUFF];   // 數據緩沖區2 用于接收RS232數據
  29          WORD xdata              FM_DPointer1;                                   // 數據緩沖區1 索引
  30          WORD xdata              FM_DPointer2;                                   // 數據緩沖區2 索引
  31          BYTE xdata      FM_CurrentBuff;                                 // 數據緩沖指示,用于標識當前緩沖區
  32          BYTE xdata              FM_FileName[12];                                // 文件名,標識最后一個文件名
  33          BYTE xdata              FM_FileName_F[12];                              // 文件名,標識第一個文件名
  34          
  35          
  36          
  37          /************************************************************************************* 
  38            Function:       FM_fat_install
  39            Description:    安裝FAT文件系統
  40            Called By:      
  41            Input:          N/A
  42            Output:         N/A
  43            Return:         1:成功 0:失敗
  44            Others:         系統初始化時調用,僅調用一次,用于初始化FAT文件系統
  45                                            讀取系統參數、創建并打開數據文件
  46          *************************************************************************************/                             
  47          bit FM_fat_install (void)
  48          {    
  49   1              NM_ReadPage(MBR_ADDRESS);                                                                                       //讀取MBR信息
  50   1      
  51   1          FM_ptr_fats = 0x01;
  52   1          if ((EP6FIFOBUF[0] == 0xEB) && (EP6FIFOBUF[2] == 0x90))                     //檢查跳轉標志
  53   1          {
  54   2              if ((EP6FIFOBUF[21] & 0xF0) == 0xF0)                                                    //檢查媒體類型
C51 COMPILER V7.50   KW_FAT32                                                              10/12/2007 17:05:47 PAGE 2   

  55   2              {
  56   3                      if ((EP6FIFOBUF[510] == 0x55) && (EP6FIFOBUF[511] == 0xAA)) //檢查結束標志
  57   3                      {
  58   4                              FM_ptr_fats = 0x00000000;                                               //OK,FAT信息正確
  59   4                      }                                       
  60   3                      else
  61   3                      {
  62   4                              return 0;                                                                                               //FAT信息錯誤
  63   4                      }
  64   3              }
  65   2              }
  66   1      
  67   1              if (FM_ptr_fats)                                                                                //FAT信息錯誤,返回
  68   1              {
  69   2                      return 0;
  70   2              }
  71   1      
  72   1              //檢查FAT16文件系統 
  73   1              FM_sectors_clus = EP6FIFOBUF[13];                                                                       //offset = 13: 每簇扇區數;
  74   1              ((BYTE*)&FM_ptr_fats)[3] = EP6FIFOBUF[14];                                                      //offset = 14: LSB of reserved sector.;
  75   1              ((BYTE*)&FM_ptr_fats)[2] = EP6FIFOBUF[15];                                              //offset = 15: MSB of reserved sector.;
  76   1              ((BYTE*)&FM_ptr_fats)[1] = 0;
  77   1              ((BYTE*)&FM_ptr_fats)[0] = 0;
  78   1      
  79   1      
  80   1              ((BYTE*)&FM_sectors_fat)[1] = EP6FIFOBUF[22];
  81   1              ((BYTE*)&FM_sectors_fat)[0] = EP6FIFOBUF[23];
  82   1      
  83   1              
  84   1              //獲取根目錄: root = reserved sectors + num of FATs * sectors per FAT
  85   1              FM_num_fats = EP6FIFOBUF[16];                                                                           //offset 16: FAT區數量
  86   1      
  87   1              FM_ptr_root = FM_ptr_fats + FM_num_fats * FM_sectors_fat;
  88   1      
  89   1              ((BYTE*)&FM_dirs_fat)[3] = EP6FIFOBUF[17];                                                      //獲取每FAT區目錄數量
  90   1              ((BYTE*)&FM_dirs_fat)[2] = EP6FIFOBUF[18]; 
  91   1          ((BYTE*)&FM_dirs_fat)[1] = 0;
  92   1              ((BYTE*)&FM_dirs_fat)[0] = 0;
  93   1      
  94   1              //獲取數據區: data = FM_ptr_root +(32 * dir in FAT)/Byte per sector;
  95   1              FM_ptr_data = FM_ptr_root + (32 * FM_dirs_fat) / 512;
  96   1      
  97   1              FM_DPointer1 = FM_DPointer2 = 0;
  98   1              FM_CurrentBuff = 0;
  99   1      
 100   1              //FAT安裝成功
 101   1              FM_DeleteFileInRoot("KWSYSTEM.LOG");
 102   1          if(CM_ReadConfigToParam() == 0)                                                                             //讀取配置參數
 103   1              {
 104   2                      CM_SetConfigParameterDefault();                                                                 //如果配置參數錯誤則使用默認參數
 105   2              }
 106   1      
 107   1              if(CM_ConfigParameter.RTC_Valid == 1)                                                           //如果配置參數中RTC時間有效
 108   1              {
 109   2                      RM_SetRTCTime();                                                                                                //則設置RTC時間
 110   2              }
 111   1              FM_CreateNewFileName();                                                                                         //創建新文件名稱,保存于FM_FileName
 112   1              FM_OpenFileInRoot(FM_FileName);                                                                         //打開新文件
 113   1              return 0;
 114   1      }
 115          
 116          
C51 COMPILER V7.50   KW_FAT32                                                              10/12/2007 17:05:47 PAGE 3   

 117          /************************************************************************************* 
 118            Function:       FM_GetFreeClu
 119            Description:    用于從文件分配表中獲取一個空簇
 120            Called By:      
 121            Input:          N/A
 122            Output:         N/A
 123            Return:         空簇地址,0則表示沒有空簇
 124            Others:         找到空簇后,將該簇設置為0xFFFF,標識占用
 125          *************************************************************************************/
 126          WORD FM_GetFreeClu()
 127          {
 128   1              DWORD xdata i,j;
 129   1              WORD xdata * pTmp;
 130   1              WORD xdata FreeClu = 0;
 131   1              for(i = 0; i < FM_sectors_fat; i++)                             //讀取所有文件分配區
 132   1              {
 133   2                      NM_ReadPage(FM_ptr_fats + i);                           //讀取一個扇區
 134   2                      pTmp = (WORD * )(&EP6FIFOBUF[0]);                       //從扇區開始地址查找
 135   2                      for(j=0;j<512/2;j++)                                            //扇區512字節,簇地址為Word型
 136   2                      {
 137   3                              if(*pTmp == 0x0000)                                             //找到空簇,設置占有標志,并回寫
 138   3                              {
 139   4                                      *pTmp = 0xffff;                                         
 140   4                                      NM_WritePages(FM_ptr_fats + i);
 141   4                                      return FreeClu;
 142   4                              }
 143   3                              FreeClu += 1;                                                   //簇地址遞增
 144   3                              pTmp++;                                                                 //下一簇號
 145   3                      }
 146   2              }
 147   1              return 0;
 148   1      }
 149          
 150          /************************************************************************************* 
 151            Function:       FM_OpenFileInRoot
 152            Description:    打開根目錄一個文件,若文件不存在則創建
 153            Called By:      
 154            Input:          sFileName @ char *: 文件名
 155            Output:         N/A
 156            Return:         文件目錄指針,NULL則創建(打開)失敗
 157            Others:         
 158          *************************************************************************************/
 159          Dir_tag *  FM_OpenFileInRoot(char * sFileName)
 160          {
 161   1              WORD xdata i,j,StartClu;
 162   1              DWORD xdata tmpLBA = 0;
 163   1              Dir_tag xdata * pDir = 0;
 164   1              FM_pCurrentDir = 0;
 165   1      
 166   1              for(i=0; i<((32 * FM_dirs_fat) / 512); i++)     
 167   1              {
 168   2                      NM_ReadPage(FM_ptr_root + i);                           //讀取目錄表
 169   2                      pDir = ((Dir_tag * ) (& EP6FIFOBUF[0]));        //指向第一個目錄
 170   2      
 171   2                      for(j=0;j<16;j++)                                                       //每扇區有16個目錄
 172   2                      {
 173   3                              if(pDir->FileName[0] == 0x00                    //跳過空項及以刪除項
 174   3                                      ||  pDir->FileName[0] == 0xe5)  
 175   3                              {
 176   4                                      if(FM_pCurrentDir == 0)                         //如果當前文件為空則記錄該項的偏移及LBA
 177   4                                      {                                                                       //后面創建文件要用到。
 178   5                                              FM_pCurrentDir = pDir;
C51 COMPILER V7.50   KW_FAT32                                                              10/12/2007 17:05:47 PAGE 4   

 179   5                                              tmpLBA = FM_ptr_root + i;
 180   5                                      }
 181   4                                      pDir ++;
 182   4                                      continue;
 183   4                              }
 184   3                              if(pDir->attribute & 0x18)                              //如果時目錄則跳過
 185   3                              {
 186   4                                      pDir ++;
 187   4                                      continue;
 188   4                              }
 189   3                              
 190   3                              //比較文件名是否相同,這個代碼要修改

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线视频| 亚洲成人精品一区二区| 精品精品国产高清a毛片牛牛| 欧美三级乱人伦电影| 91麻豆免费看| 在线亚洲人成电影网站色www| 99综合电影在线视频| 99国产一区二区三精品乱码| 91丝袜高跟美女视频| 色婷婷综合在线| 欧美探花视频资源| 91精品婷婷国产综合久久| 欧美一区二区三区在线视频| 欧美成人免费网站| 久久婷婷色综合| 国产精品乱码一区二区三区软件 | 欧美不卡视频一区| 精品欧美乱码久久久久久1区2区| 精品福利在线导航| 国产精品三级电影| 一区二区三区免费| 日本不卡不码高清免费观看 | 亚洲国产精品高清| 亚洲日韩欧美一区二区在线| 亚洲午夜久久久久中文字幕久| 天堂在线亚洲视频| 国产91在线看| 91传媒视频在线播放| 日韩欧美中文一区| 国产精品电影一区二区三区| 亚洲成a人v欧美综合天堂下载 | 国产传媒欧美日韩成人| 色综合色狠狠综合色| 欧美一区二区三区在线| 亚洲欧美国产毛片在线| 日韩国产在线观看| 成人h精品动漫一区二区三区| 欧美亚洲一区二区三区四区| 精品久久久久久最新网址| 成人欧美一区二区三区| 免费精品99久久国产综合精品| av电影天堂一区二区在线观看| 欧美精品乱码久久久久久| 中文在线资源观看网站视频免费不卡 | 日本道免费精品一区二区三区| 日韩午夜av电影| 依依成人综合视频| 国产精品一区二区久激情瑜伽 | 国内精品不卡在线| 欧美色视频在线观看| 国产免费观看久久| 六月婷婷色综合| 欧美性猛交xxxxxxxx| 国产欧美日韩视频在线观看| 日本欧美韩国一区三区| 在线观看日韩国产| 亚洲视频在线观看一区| 国产精品一区二区不卡| 日韩精品资源二区在线| 亚洲一区二区三区三| 91在线云播放| 国产精品久久久久影院老司| 国产自产v一区二区三区c| 欧美日韩精品高清| 一区二区三区四区不卡视频 | 日韩精品亚洲专区| 欧美在线观看视频在线| 亚洲欧美一区二区三区国产精品| 国产成人啪免费观看软件| 精品国产污网站| 蜜臀a∨国产成人精品| 51精品视频一区二区三区| 亚洲高清免费观看| 欧美日韩国产天堂| 日日骚欧美日韩| 7777精品伊人久久久大香线蕉超级流畅 | 国产大陆精品国产| 国产日韩欧美a| 国产91在线看| 国产精品乱码一区二区三区软件| 成人免费高清视频在线观看| 国产精品乱子久久久久| 99国内精品久久| 亚洲国产欧美一区二区三区丁香婷| 91福利在线导航| 日本三级韩国三级欧美三级| 日韩一区二区不卡| 国产精品一区二区视频| 国产女同性恋一区二区| 91小视频在线观看| 亚洲线精品一区二区三区| 欧美精品v国产精品v日韩精品 | 欧美在线免费视屏| 亚洲成人一区在线| 日韩精品一区国产麻豆| 国产一区二区精品在线观看| 国产精品久久影院| 91久久精品国产91性色tv| 国内久久精品视频| 中文字幕不卡在线观看| 欧美色图免费看| 极品少妇xxxx精品少妇偷拍| 中文字幕不卡在线播放| 欧美日韩夫妻久久| 国产高清在线精品| 亚洲综合精品久久| 亚洲精品一线二线三线无人区| 成人福利在线看| 热久久国产精品| 国产精品理论片| 欧美一区二区福利在线| 成人av网站在线观看免费| 视频一区二区欧美| 国产精品成人一区二区三区夜夜夜| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 91精品国产色综合久久不卡电影| 国产精品一线二线三线精华| 亚洲综合一区二区三区| 久久综合999| 4438亚洲最大| 91色视频在线| 国产成人亚洲综合a∨婷婷图片| 一区二区三区四区亚洲| 国产欧美日韩一区二区三区在线观看| 在线观看一区日韩| 国产成人啪午夜精品网站男同| 国产一区二区在线观看免费| 国产精品超碰97尤物18| 2023国产精华国产精品| 欧美色爱综合网| 91麻豆123| 国产成人精品一区二区三区四区 | 一区二区三区在线高清| 久久久久亚洲综合| 5858s免费视频成人| 色婷婷av一区| 91一区二区三区在线观看| 国产成人精品免费视频网站| 久久www免费人成看片高清| 婷婷久久综合九色综合伊人色| 中文字幕一区二区在线观看| 国产欧美精品国产国产专区| 精品999久久久| 精品成人一区二区三区| 日韩欧美www| 精品国精品自拍自在线| 日韩精品自拍偷拍| 欧美成人综合网站| 精品久久一区二区三区| 精品日韩一区二区三区| 欧美精品一区二区三| 精品成人一区二区三区四区| 一区二区三区四区在线免费观看| 国产精品毛片无遮挡高清| 国产欧美精品一区| 亚洲欧洲色图综合| 亚洲区小说区图片区qvod| 亚洲美女屁股眼交| 亚洲一区二区三区四区的| 午夜激情一区二区| 欧美96一区二区免费视频| 美洲天堂一区二卡三卡四卡视频| 免费欧美日韩国产三级电影| 免费看黄色91| 国产精品一品二品| 成人av资源在线观看| 色综合激情五月| 欧美日韩和欧美的一区二区| 欧美一级精品大片| 久久久国产一区二区三区四区小说| 久久精品视频一区二区| 国产精品丝袜久久久久久app| 亚洲欧美国产高清| 日韩一区精品视频| 国产精品99久久久久久似苏梦涵| 成人黄动漫网站免费app| 在线亚洲高清视频| 日韩美一区二区三区| 中文字幕不卡在线| 亚洲高清中文字幕| 国产精品自在在线| 91久久精品国产91性色tv| 日韩欧美亚洲一区二区| 亚洲国产精品av| 午夜精品视频在线观看| 国产凹凸在线观看一区二区| 色婷婷国产精品| 精品黑人一区二区三区久久| 亚洲欧美另类综合偷拍| 麻豆中文一区二区| 色伊人久久综合中文字幕| 欧美xxxxx裸体时装秀| 亚洲人成在线播放网站岛国 | 成人美女视频在线观看18| 欧洲亚洲精品在线| 欧美精彩视频一区二区三区| 亚洲成人你懂的| 波多野洁衣一区| 精品国产污污免费网站入口| 亚洲国产综合在线|