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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ff.lst

?? C8051F340讀寫SD卡,帶文件系統(tǒng)
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 456                  DWORD clst                      /* Cluster# to stretch. 0 means create a new chain. */
 457          )
 458          {
 459   1              DWORD cs, ncl, scl, mcl;
 460   1      
 461   1      
 462   1              mcl = fs->max_clust;
 463   1              if (clst == 0) {                /* Create new chain */
 464   2                      scl = fs->last_clust;                   /* Get suggested start point */
 465   2                      if (scl == 0 || scl >= mcl) scl = 1;
 466   2              }
 467   1              else {                                  /* Stretch existing chain */
 468   2                      cs = get_fat(fs, clst);                 /* Check the cluster status */
 469   2                      if (cs < 2) return 1;                   /* It is an invalid cluster */
 470   2                      if (cs < mcl) return cs;                /* It is already followed by next cluster */
 471   2                      scl = clst;
 472   2              }
 473   1      
 474   1              ncl = scl;                              /* Start cluster */
 475   1              for (;;) {
 476   2                      ncl++;                                                  /* Next cluster */
 477   2                      if (ncl >= mcl) {                               /* Wrap around */
 478   3                              ncl = 2;
 479   3                              if (ncl > scl) return 0;        /* No free custer */
 480   3                      }
 481   2                      cs = get_fat(fs, ncl);                  /* Get the cluster status */
 482   2                      if (cs == 0) break;                             /* Found a free cluster */
 483   2                      if (cs == 0xFFFFFFFF || cs == 1)/* An error occured */
 484   2                              return cs;
 485   2                      if (ncl == scl) return 0;               /* No free custer */
 486   2              }
 487   1      
C51 COMPILER V7.06   FF                                                                    03/06/2010 17:37:27 PAGE 9   

 488   1              if (put_fat(fs, ncl, 0x0FFFFFFF))       /* Mark the new cluster "in use" */
 489   1                      return 0xFFFFFFFF;
 490   1              if (clst != 0) {                                        /* Link it to the previous one if needed */
 491   2                      if (put_fat(fs, clst, ncl))
 492   2                              return 0xFFFFFFFF;
 493   2              }
 494   1      
 495   1              fs->last_clust = ncl;                           /* Update FSINFO */
 496   1              if (fs->free_clust != 0xFFFFFFFF) {
 497   2                      fs->free_clust--;
 498   2                      fs->fsi_flag = 1;
 499   2              }
 500   1      
 501   1              return ncl;             /* Return new cluster number */
 502   1      }
 503          #endif /* !_FS_READONLY */
 504          
 505          
 506          
 507          
 508          /*-----------------------------------------------------------------------*/
 509          /* Get sector# from cluster#                                             */
 510          /*-----------------------------------------------------------------------*/
 511          
 512          static
 513          DWORD clust2sect (      /* !=0: Sector number, 0: Failed - invalid cluster# */
 514                  FATFS *fs,              /* File system object */
 515                  DWORD clst              /* Cluster# to be converted */
 516          )
 517          {
 518   1              clst -= 2;
 519   1              if (clst >= (fs->max_clust - 2)) return 0;              /* Invalid cluster# */
 520   1              return clst * fs->csize + fs->database;
 521   1      }
 522          
 523          
 524          
 525          
 526          /*-----------------------------------------------------------------------*/
 527          /* Directory handling - Seek directory index                             */
 528          /*-----------------------------------------------------------------------*/
 529          
 530          static
 531          FRESULT dir_seek (
 532                  DIR *dj,                /* Pointer to directory object */
 533                  WORD idx                /* Directory index number */
 534          )
 535          {
 536   1              DWORD clst;
 537   1              WORD ic;
 538   1      
 539   1      
 540   1              dj->index = idx;
 541   1              clst = dj->sclust;
 542   1              if (clst == 1 || clst >= dj->fs->max_clust)     /* Check start cluster range */
 543   1                      return FR_INT_ERR;
 544   1              if (!clst && dj->fs->fs_type == FS_FAT32)       /* Replace cluster# 0 with root cluster# if in FAT32 */
 545   1                      clst = dj->fs->dirbase;
 546   1      
 547   1              if (clst == 0) {        /* Static table */
 548   2                      dj->clust = clst;
 549   2                      if (idx >= dj->fs->n_rootdir)           /* Index is out of range */
C51 COMPILER V7.06   FF                                                                    03/06/2010 17:37:27 PAGE 10  

 550   2                              return FR_INT_ERR;
 551   2                      dj->sect = dj->fs->dirbase + idx / (SS(dj->fs) / 32);   /* Sector# */
 552   2              }
 553   1              else {                          /* Dynamic table */
 554   2                      ic = SS(dj->fs) / 32 * dj->fs->csize;   /* Entries per cluster */
 555   2                      while (idx >= ic) {     /* Follow cluster chain */
 556   3                              clst = get_fat(dj->fs, clst);                           /* Get next cluster */
 557   3                              if (clst == 0xFFFFFFFF) return FR_DISK_ERR;     /* Disk error */
 558   3                              if (clst < 2 || clst >= dj->fs->max_clust)      /* Reached to end of table or int error */
 559   3                                      return FR_INT_ERR;
 560   3                              idx -= ic;
 561   3                      }
 562   2                      dj->clust = clst;
 563   2                      dj->sect = clust2sect(dj->fs, clst) + idx / (SS(dj->fs) / 32);  /* Sector# */
 564   2              }
 565   1      
 566   1              dj->dir = dj->fs->win + (idx % (SS(dj->fs) / 32)) * 32; /* Ptr to the entry in the sector */
 567   1      
 568   1              return FR_OK;   /* Seek succeeded */
 569   1      }
 570          
 571          
 572          
 573          
 574          /*-----------------------------------------------------------------------*/
 575          /* Directory handling - Move directory index next                        */
 576          /*-----------------------------------------------------------------------*/
 577          
 578          static
 579          FRESULT dir_next (      /* FR_OK:Succeeded, FR_NO_FILE:End of table, FR_DENIED:EOT and could not streach */
 580                  DIR *dj,                /* Pointer to directory object */
 581                  BOOL streach    /* FALSE: Do not streach table, TRUE: Streach table if needed */
 582          )
 583          {
 584   1              DWORD clst;
 585   1              WORD i;
 586   1      
 587   1      
 588   1              i = dj->index + 1;
 589   1              if (!i || !dj->sect)    /* Report EOT when index has reached 65535 */
 590   1                      return FR_NO_FILE;
 591   1      
 592   1              if (!(i % (SS(dj->fs) / 32))) { /* Sector changed? */
 593   2                      dj->sect++;                                     /* Next sector */
 594   2      
 595   2                      if (dj->clust == 0) {   /* Static table */
 596   3                              if (i >= dj->fs->n_rootdir)     /* Report EOT when end of table */
 597   3                                      return FR_NO_FILE;
 598   3                      }
 599   2                      else {                                  /* Dynamic table */
 600   3                              if (((i / (SS(dj->fs) / 32)) & (dj->fs->csize - 1)) == 0) {     /* Cluster changed? */
 601   4                                      clst = get_fat(dj->fs, dj->clust);                              /* Get next cluster */
 602   4                                      if (clst <= 1) return FR_INT_ERR;
 603   4                                      if (clst == 0xFFFFFFFF) return FR_DISK_ERR;
 604   4                                      if (clst >= dj->fs->max_clust) {                                /* When it reached end of dynamic table */
 605   5      #if !_FS_READONLY
 606   5                                              BYTE c;
 607   5                                              if (!streach) return FR_NO_FILE;                        /* When do not streach, report EOT */
 608   5                                              clst = create_chain(dj->fs, dj->clust);         /* Streach cluster chain */
 609   5                                              if (clst == 0) return FR_DENIED;                        /* No free cluster */
 610   5                                              if (clst == 1) return FR_INT_ERR;
 611   5                                              if (clst == 0xFFFFFFFF) return FR_DISK_ERR;
C51 COMPILER V7.06   FF                                                                    03/06/2010 17:37:27 PAGE 11  

 612   5                                              /* Clean-up streached table */
 613   5                                              if (move_window(dj->fs, 0)) return FR_DISK_ERR; /* Flush active window */
 614   5                                              mem_set(dj->fs->win, 0, SS(dj->fs));                    /* Clear window buffer */
 615   5                                              dj->fs->winsect = clust2sect(dj->fs, clst);     /* Cluster start sector */
 616   5                                              for (c = 0; c < dj->fs->csize; c++) {           /* Fill the new cluster with 0 */
 617   6                                                      dj->fs->wflag = 1;
 618   6                                                      if (move_window(dj->fs, 0)) return FR_DISK_ERR;
 619   6                                                      dj->fs->winsect++;
 620   6                                              }
 621   5                                              dj->fs->winsect -= c;                                           /* Rewind window address */
 622   5      #else
                                                      return FR_NO_FILE;                      /* Report EOT */
              #endif
 625   5                                      }
 626   4                                      dj->clust = clst;                               /* Initialize data for new cluster */
 627   4                                      dj->sect = clust2sect(dj->fs, clst);
 628   4                              }
 629   3                      }
 630   2              }
 631   1      
 632   1              dj->index = i;
 633   1              dj->dir = dj->fs->win + (i % (SS(dj->fs) / 32)) * 32;
 634   1      
 635   1              return FR_OK;
 636   1      }
 637          
 638          
 639          
 640          
 641          /*-----------------------------------------------------------------------*/
 642          /* LFN handling - Test/Pick/Fit an LFN segment from/to directory entry   */
 643          /*-----------------------------------------------------------------------*/
 644          #if _USE_LFN
              static
              const BYTE LfnOfs[] = {1,3,5,7,9,14,16,18,20,22,24,28,30};      /* Offset of LFN chars in the directory entry *
             -/
              
              
              static
              BOOL cmp_lfn (                  /* TRUE:Matched, FALSE:Not matched */
                      WCHAR *lfnbuf,          /* Pointer to the LFN to be compared */
                      BYTE *dir                       /* Pointer to the directory entry containing a part of LFN */
              )
              {
                      int i, s;
                      WCHAR wc;
              
              
                      i = ((dir[LDIR_Ord] & 0xBF) - 1) * 13;  /* Get offset in the LFN buffer */
                      s = 0;
                      do {
                              wc = ff_wtoupper(LD_WORD(dir+LfnOfs[s]));       /* Get an LFN character */
                              if (i >= _MAX_LFN || wc != ff_wtoupper(lfnbuf[i++]))    /* Compare it with the reference character */
                                      return FALSE;
                      } while (++s < 13 && wc);               /* Repeat until all chars in the entry or a NUL char is processed */
              
                      return TRUE;                                    /* The LFN entry matched */
              }
              
              
              
              static
C51 COMPILER V7.06   FF                                                                    03/06/2010 17:37:27 PAGE 12  

              BOOL pick_lfn (                 /* TRUE:Succeeded, FALSE:Buffer overflow */
                      WCHAR *lfnbuf,          /* Pointer to the Unicode-LFN buffer */
                      BYTE *dir                       /* Pointer to the directory entry */
              )
              {
                      int i, s;
                      WCHAR wc;
              
              
                      i = ((dir[LDIR_Ord] & 0x3F) - 1) * 13;  /* Offset in the LFN buffer */
              
                      s = 0;
                      do {
                              if (i >= _MAX_LFN) return FALSE;        /* Buffer overflow? */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费高清成人在线| 国产精品久久久久久久久免费丝袜| 亚洲精品少妇30p| 91亚洲精品一区二区乱码| 国产精品视频一区二区三区不卡| aaa亚洲精品| 亚洲永久免费av| 欧美日韩激情一区二区三区| 亚洲成人av免费| 精品国产制服丝袜高跟| 国产精品一区二区在线观看网站 | 精品国产一区二区三区不卡| 国产精品白丝jk黑袜喷水| 国产精品久久影院| 欧美主播一区二区三区| 日本美女一区二区| 中文字幕av资源一区| 在线视频欧美区| 久久99这里只有精品| 国产日韩成人精品| 色综合天天狠狠| 日韩专区在线视频| 中文字幕欧美日韩一区| 日本道精品一区二区三区 | 精品国产成人系列| av一二三不卡影片| 午夜电影一区二区三区| 日韩—二三区免费观看av| 精品国产乱码久久久久久浪潮| 成人精品小蝌蚪| 日本欧美加勒比视频| 久久久久久99精品| 欧美在线免费播放| 福利视频网站一区二区三区| 亚洲gay无套男同| 国产精品免费观看视频| 欧美麻豆精品久久久久久| 国产精品中文字幕欧美| 一区二区三区**美女毛片| 精品999久久久| 欧美日韩国产综合久久 | 老司机精品视频线观看86| 国产日韩欧美精品电影三级在线| 欧美日韩一区二区三区在线看| 国产美女主播视频一区| 亚洲动漫第一页| 中文字幕一区二区视频| 久久综合久久鬼色中文字| 欧美人狂配大交3d怪物一区| 91亚洲永久精品| 国产精品18久久久久久久久| 日韩av一区二区三区四区| 亚洲色图视频网站| 国产色产综合产在线视频| 91麻豆精品国产自产在线观看一区| 91丨九色丨尤物| av电影天堂一区二区在线| 国产一区二区在线电影| 日本女人一区二区三区| 亚洲一区视频在线| 综合久久给合久久狠狠狠97色| 26uuu国产在线精品一区二区| 欧美一二三四区在线| 欧美日韩一区二区三区在线看| 91久久精品一区二区二区| 成人h精品动漫一区二区三区| 国产乱码一区二区三区| 麻豆精品久久久| 日本不卡视频一二三区| 亚洲成人先锋电影| 亚洲在线中文字幕| 亚洲影院理伦片| 亚洲成人av一区| 婷婷丁香激情综合| 亚洲成人在线网站| 亚洲一区二区三区美女| 一区二区三区精品| 亚洲综合在线观看视频| 樱桃国产成人精品视频| 亚洲伦理在线精品| 亚洲精品免费看| 亚洲一区二区三区四区在线| 一区二区免费在线播放| 一区二区三区不卡在线观看| 亚洲午夜在线电影| 亚洲午夜免费电影| 五月综合激情婷婷六月色窝| 日本女优在线视频一区二区| 精品在线观看免费| 国产很黄免费观看久久| 成人网在线播放| 色综合久久久久网| 欧美视频你懂的| 日韩欧美亚洲另类制服综合在线| 亚洲v精品v日韩v欧美v专区| 亚洲成a人v欧美综合天堂 | 亚洲精品国产a| 五月开心婷婷久久| 久久激情综合网| 成人美女在线观看| 91搞黄在线观看| 日韩一区二区在线观看视频| 久久久亚洲国产美女国产盗摄| 国产精品久久久久一区| 亚洲欧美一区二区不卡| 视频一区二区三区入口| 国产在线一区观看| 99国产精品视频免费观看| 色一情一乱一乱一91av| 91精品在线观看入口| 国产拍揄自揄精品视频麻豆| 一区二区三区不卡视频| 久久99国产乱子伦精品免费| 成人免费av在线| 欧美一卡2卡3卡4卡| 国产精品免费观看视频| 亚洲成av人片| 成人高清伦理免费影院在线观看| 欧美日韩在线三级| 日本一区二区三区久久久久久久久不 | 一区二区三区高清不卡| 久久99热狠狠色一区二区| 99久久99精品久久久久久| 91麻豆精品国产综合久久久久久| 国产精品嫩草影院com| 日本亚洲电影天堂| jvid福利写真一区二区三区| 91精品国产综合久久香蕉麻豆| 国产精品入口麻豆原神| 日本不卡在线视频| 色综合久久天天综合网| 久久久久久久久久久久电影| 亚洲一区二区三区视频在线 | 国产资源在线一区| 精品视频在线免费观看| 国产精品美女久久久久久| 老司机精品视频导航| 欧美亚洲禁片免费| 国产精品视频一二三| 久久激情五月婷婷| 欧美日本在线播放| 亚洲激情网站免费观看| 国产成人在线电影| 精品国产免费久久| 日韩高清一区二区| 欧洲精品中文字幕| 国产精品短视频| av在线播放一区二区三区| 久久久久国产精品免费免费搜索| 免费观看日韩av| 91精品国产麻豆| 婷婷夜色潮精品综合在线| 91麻豆6部合集magnet| 欧美激情在线看| 国产成人a级片| 久久九九久精品国产免费直播| 美腿丝袜亚洲综合| 91精品久久久久久久久99蜜臂| 亚洲国产一区二区三区| 91久久人澡人人添人人爽欧美| 亚洲欧洲性图库| 菠萝蜜视频在线观看一区| 精品国产百合女同互慰| 精品影视av免费| 日韩国产在线观看| 欧美色综合天天久久综合精品| 亚洲免费成人av| 欧美性猛交一区二区三区精品| 亚洲美女在线国产| 91国产成人在线| 午夜国产精品影院在线观看| 欧美日本一道本| 日韩**一区毛片| 日韩无一区二区| 九九热在线视频观看这里只有精品| 91麻豆精品国产91久久久 | 亚洲一区二区三区在线看| 日本久久电影网| 午夜不卡av免费| 精品免费视频.| 成人午夜视频网站| 国产精品免费av| 欧洲另类一二三四区| 图片区小说区国产精品视频| 777午夜精品视频在线播放| 蜜乳av一区二区三区| 精品国产91乱码一区二区三区 | 日韩欧美色综合网站| 韩国v欧美v亚洲v日本v| 国产日产欧美一区二区视频| www.亚洲在线| 亚洲国产精品一区二区久久恐怖片 | 欧美电影在线免费观看| 蜜桃精品视频在线观看| 国产日产欧产精品推荐色| 97精品久久久午夜一区二区三区| 亚洲成人动漫在线免费观看| 欧美成人激情免费网| av成人动漫在线观看| 亚洲成av人**亚洲成av**|