wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

uC/FS詳解(開發(fā)文檔)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年08月18日   【字體:

1: uC/FS簡介

   µC/FS is a FAT file system which can be used on any media, for which you can 
provide basic hardware access functions. . µC/FS is a high performance library that has been optimized for speed, versatility and memory footprint.
   文件配置表(英文:File Allocation Table,首字母縮略字:FAT)是一種由微軟發(fā)明的并帶有部分專

件系統(tǒng)。FAT文件系統(tǒng)考慮當時計算機效能有限,所以未被復雜化,因而被幾乎所有個人計算機的操作系統(tǒng)支持。這特性使它成為理想的軟盤和記憶卡文件系統(tǒng),也適合用作不同操作系統(tǒng)中的數(shù)據(jù)交流。但FAT有一個嚴重的缺點:當文件被刪除并且在同一位置被寫入新數(shù)據(jù),他們的片段通常是分散的,減慢了讀寫速度。磁盤碎片重整是一種解決方法,但必須經(jīng)常重組來保持FAT文件系統(tǒng)的效率。 FAT文件系統(tǒng)遵行已用了多年的軟件方法來進行規(guī)范。它在1977年由比爾·蓋茨和馬斯·麥當勞為了管理磁盤而發(fā)明。

2: uC/FS特點
µC/FS is written in ANSI C and can be used on virtually any CPU. Some 
features of µC/FS are: 
·  MS-DOS/MS-Windows compatible FAT12 and FAT16 support. 
·  Multiple device driver support. You can use different device drivers with µC/FS, which allows           you to access different types of hardware with the file system at the same time. 【在該文件系統(tǒng)中可同時支持多個設備驅動】
·  Multiple media support. A device driver does allow you to access different medias at the same            time. 
·  OS support. µC/FS can easily be integrated into any OS. In that way you can make file operations        in a multithreaded environment. 
·  ANSI C stdio.h like API for user applications. An application using standard C I/O library can             easily be ported to use µC/FS. 
·  Very simple device driver structure. µC/FS device drivers need only very basic functions for                 reading and writing blocks. Therefore it is very simple to support your custom hardware. 
·  Generic device driver for SmartMedia cards, which can easily be used with any kind of card                  reader hardware. 
·  Generic device driver for MultitMedia & SD cards using SPI mode, which can be easily integrated.
3: uC/FS結構
   µC/FS 由不同的分層構成。
 
上面的圖是FATFS,但與UC/FS的是一樣的

   1:API層【類似于linux的VFS層】
      The API layer is the interface between µC/FS and the user application. It does contain a library of ANSI C oriented file functions, such as  FS_FOpen, FS_FWrite etc. The API layer does transfer these calls to the file system layer. Currently there is only a FAT file system layer available for µC/FS, but the API layer can deal with different file system layers at the same time. So it is possible to use FAT and any other file system at the same time with µC/FS.  
    API層是µC/FS 提供給用戶使用的接口層(fs_api.h),API層將各種調用傳輸?shù)?/span>file system layer(文件系統(tǒng)層),目前對µC/FS(文件管理實現(xiàn)機制)來說 只有一個 FAT文件系統(tǒng)層被使用,API層可以處理不同的文件系統(tǒng)層,因此µC/FS可同時支持多種文件系統(tǒng)(API層類似于linux中的虛擬文件系統(tǒng)VFS,他的功能是提供給童用戶標準的系統(tǒng)調用接口,VFS層下面才是具體實際的文件系統(tǒng)層,有FAT、EXT2等等,這個根據(jù)硬件的情況(格式化時使用什么文件系統(tǒng))來調用具體的文件系統(tǒng))。
   2:File System Layer 文件系統(tǒng)層【這層與linux是一樣的,是具體的管理文件所用的文件系統(tǒng)】
   The file system layer translates file operations to logical block operations. After such a translation, the file system calls the logical block layer and specifies the corresponding device driver for a device.
   文件系統(tǒng)層將文件操作轉換為邏輯塊操作,之后,具體的文件系統(tǒng)調用邏輯塊層函數(shù)并指定設備相應的驅動;【linux中,文件系統(tǒng)將各種系統(tǒng)調用轉換為各種IO請求(系統(tǒng)請求即是對底層相應的扇區(qū)、柱面、等操作),IO請求被放到對應設備的IO請求隊列中去,再由一個系統(tǒng)內(nèi)核線程一直讀取請求隊列中的請求,沒有請求時就睡眠,拿到請求就通過設備驅動實現(xiàn)具體的操作】
    uC_FS\FSL\fat\ 下面就是FAT文件系統(tǒng)的各個文件。
   3:Logical Block Layer 邏輯塊
   the main purpose of the logical block layer is to synchronize accesses to a device driver and to have an easy interface for the file system layer.  The logical block layer does call a device driver to make a block operation. 
   邏輯塊層的主要目的是同步訪問設備驅動與文件系統(tǒng)的簡易接口,邏輯塊層調用設備驅動來實現(xiàn)設備的塊操作。
   4: Device Driver Layer 設備驅動層
   Device drivers are low level routines that are used to access your hardware. 
The structure of the device driver is simple to allow easy integration of your own 
hardware.
  設備驅動是一些訪問硬件的底層操作,µC/FS的設備驅動的架構很簡單,不像linux架構非常復雜。
 
4: uC/FS的使用
   下面的流程是參考uC/FS用戶手冊上的例程來寫的,可以參考。
   1:調用FS_Init()初始化文件系統(tǒng),在使用uC/FS的任何功能函數(shù)之前須要首先調用該函數(shù)進行初始        化;
   2:進入MainTask()
           1:調用FS_IoCtl()【格式化:使硬件按指定的文件系統(tǒng)來管理文件】
              This call is used to format your RAM disk in order to be able to write data to                     it. Formatting your RAM disk should not cause any problem.
           2:調用應用程序中的函數(shù)_write_file()【非uc/fs的函數(shù)】
                 _write_file()中又依次調用: FS_FOpen(), FS_FWrite(),FS_FClose()
              FS_FOpen():在這個例程中FS_FOpen()創(chuàng)建了一個叫default.txt的文件,如果創(chuàng)建成功,函數(shù)                           將返回一個FS_FILE結構體的指針,如果出錯將返回0
              FS_FWrite():文件創(chuàng)建成功之后,將一串字符串寫入該文件中,如果寫入時出錯,例程中調                              FS_FError()處理錯誤。
              FS_FClose():關閉上面打開的文件,返回主任務中
    【大致過程就是如上過程】
     讀: FS_FOpen()->FS_FRead()->FS_FClose()
   3:不使用uC/FS文件管理系統(tǒng)時調用FS_Exit().


5: uC/FS加入到工程中
   1:Create a simple project without µC/FS 
      We recommend, that you create a small “hello world” program for your system. That project should already use your OS and there should be a way to display text on a screen or serial port. 
   2: Add your µC/FS configuration
      In order to configure  µC/FS for your system, you should create a new sub-directory in µC/FS’s config directory and copy the files  fs_conf.h  and fs_port.h from one of the other sub-directories to your directory. For the following chapters, we assume that you have created a directory FS\CONFIG\myconfig. Usually, the only file  you have to modify is fs_conf.h. For an easy startup, we recommend, that you disable all drivers except the RAM disk driver. Please check out the chapter “Configuration of µC/FS” for detailed information about the configuration.  
   3Add µC/FS generic source code 
     Add all source files in the following directories:
        FS\API: µC/FS提供給用戶的接口函數(shù)
        FS\FSL: 具體的文件系統(tǒng)層
        FS\LBL: 邏輯塊層 
        FS\OS :
        FS\DEVICE\RAM 
     and their sub-directories to your project.  
   4Configure the search path[為開發(fā)環(huán)境添加所以代碼的路徑]
        FS\API 
        FS\CONFIG\myconfig 
        FS\LBL 
        FS\OS
   5Add generic sample code
       For a quick and easy test of your µC/FS integration, you should use the code 
       found in FS\sample\main.c.  
 
6: uC/FS配置
 1:fs_conf.h
     This is the main configuration file for the file system. You define which drivers you want to use and, the configurations for these drivers.
      【用戶手冊中列出了一個配置樣本】,包括下面的各個配置項目
    1:OS support 
      You can specify whether you are using uC/OS-II, embOS, Windows or no OS support at all.  Please set  FS_OS_UCOS_II,  FS_OS_EMBOS, FS_OS_WINDOWS to 1, respectively. For no OS support at all, set all of them to 0. If you need support for an additional OS, you will have to provide functions described in the chapter “OS integration”. 
    2:Time/Date support 
      If you want to be able to add date and times to your files, you will need to set 
FS_OS_TIME_SUPPORT  to 1. 
    3:File System Layer Support
      µC/FS can support different file system at the same time. You can enable them by setting FS_USE_XXX_FSL, where XXX is the name of the file system layer. The current version of µC/FS only supports the FAT file system, so you will need to set FS_USE_FAT_FSL to 1.
   4:Device Driver Support and configuration
I      RAM Disk:     
      FS_USE_RAMDISK_DRIVER 
 to  1
       Windows Driver:    FS_USE_WINDRIVE_DRIVER to 1     
       Smart Media Card(SMCs): 
                          FS_USE_SMC_DRIVER  to 1
       MultiMedia card:
             µC/FS can support  MultiMedia & SD cards. You can enable the driver by setting FS_USE_MMC_DRIVER to 1. In order to use it, you will have to provide low-level I/O functions for your card reader hardware. Please take a look at the chapter “MultiMedia & SD card device driver” for details. 
      CompactFlash card & IDE:FS_USE_IDE_DRIVER to 1
 
 2:fs_port.h【一般是與CPU相關的數(shù)據(jù)類型】
      Usually this file only requires minor modifications, if you are using a very specific CPU. Please also check the type declarations in this file to ensure that they fit with your target processor and compiler. 

6: API函數(shù)說明
 
  FS_IoCtl:執(zhí)行命令(SD卡等可以通過電腦格式化)
 
  x = FS_IoCtl("ram:",FS_CMD_FORMAT_MEDIA,FS_MEDIA_RAM_16KB,0);

  Directory functions
  int FS_CloseDir(FS_DIR *dirp);
  int FS_MkDir(const char *dirname);
  FS_DIR *FS_OpenDir(const char *dirname);
  struct FS_DIRENT *FS_ReadDir(FS_DIR *dirp);
  void FS_RewindDir(FS_DIR *dirp); 
  int FS_RmDir(const char *dirname); 

7: 設備驅動Device drivers
  µC/FS可以與任何種類的硬件配合工作;µC/FS需要配備與硬件設備對應的設備驅動程序,這些設備驅動程序包含 基本的訪問硬件的I/O函數(shù) 以及 一張全局表,這張表中存放各個函數(shù)的指針。【聯(lián)想到LINUX中系統(tǒng)調用的系統(tǒng)調用號】
  要使你的µC/FS支持特定的硬件設備,你必須寫好該設備的驅動,本節(jié)告訴你需要實現(xiàn)哪些函數(shù)以及怎么樣將驅動整合到µC/FS中去。
   【下面是ramdisk的設備驅動函數(shù)表的例子:設備驅動函數(shù)表中的各個函數(shù),在PDF中已給出具體的代碼,其他的設備,如MMC&SD也是類似的,需要提供這相關的幾個函數(shù),名字可以不同,在功能函數(shù)的次序要一樣】
   

 
  In this chapter, you will find a detailed description of the device driver functions required by µC/FS. Please note that the names used for these functions are not really relevant for  µC/FS because the file system accesses those functions through a function table.
  因為是通過一張全局表來管理各個設備驅動函數(shù),所以各設備驅動函數(shù)的名稱與µC/FS沒有太多的關聯(lián)性。
  _FS_DevIoCtl():Execute special command on device.
     static int _FS_DevIoCtl(FS_u32 id, FS_i32 cmd, FS_i32 aux,void *buffer);  
                             Parameter  Meaning 
                             id         Number of media (0…N) 
                             cmd        Command 
                             aux        Parameter for command 
                             buffer     Pointer to data required by command
     該函數(shù)被用來完成一些設備驅動中特殊的命令,對uc/FS來說目前需要支持的這類特殊命令有:FS_CMD_FLUSH_CACHE,這個命令用來告訴設備的緩沖邏輯 所有的緩沖必須清零,如果你的設備沒有緩沖邏輯,該函數(shù)不需要做任何事情。
  _FS_DevRead():Read block from media 
      static int _FS_DevRead(FS_u32 id, FS_u32 block, void *buffer); 
                             id      Number of media (0…N) 
                             block   Block number to be read from the media 
                             buffer  Data buffer to which the data is transferred
   The function should transfer 0x0200 (i.e. 512) bytes, which is the default value for an MS-DOS/MS-Windows compatible FAT file systems. µC/FS can support any block size but, if you use the FAT file system layer, you have to use this default block size. 
   函數(shù)應該傳送0x0200(512)個字節(jié),這個是兼容FAT文件系統(tǒng)的MS-DOS/MS-Windows系統(tǒng)的默認值,µC/FS能支持任何大小的塊,但是如果你的文件系統(tǒng)層使用FAT,那么你必須使用這個默認的塊大小。
  _FS_DevStatus():Return current status of your device. 
     static int _FS_DevStatus(FS_u32 id); id  Number of media (0…N) 
   The main purpose of this function is to detect a media change. All µC/FS file operation calls this function to check, if the device can be accessed. 
  該函數(shù)的主要目的是檢測一個介質的改變。如果一個設備能夠被訪問,所有的µC/FS 文件操作都調用這個函數(shù)進行檢測,
   The function returns 0 if the device can be accessed. If the media has changed (e.g. a card removed or replaced) and the device can be accessed, the return value has to be FS_LBL_MEDIACHANGED. Any value < 0 is interpreted as an error. 
  _FS_DevWrite():Write block to media 
      static int _FS_DevWrite(FS_u32 id, FS_u32 block,void *buffer);
                              id      Number of media (0…N) 
                              block   Block number to be written on media 
                              buffer  Pointer to data for transfer to the media. 
      The function should transfer 0x0200 (i.e. 512) bytes, which is the default value for an MS-DOS/MS-Windows compatible FAT file systems. µC/FS can support any block size but, if you use the FAT file system layer, you have to use this default block size. 

  Device driver function table
   To use a device driver with µC/FS, a global function table is required, which  
holds pointers to the device driver functions.  Each entry in the table contains 
 
five values as shown in the example below. 
     const FS__device_type FS__ramdevice_driver = { 
       "RAMDISK device", 
       _FS_DevStatus, 
       _FS_DevRead, 
       _FS_DevWrite, 
       _FS_DevIoCtl 
     }; 
    If you want to use your own device driver, you have to tell µC/FS, which device 
name you would like to use for your device and which  File System Layer 
(currently only FAT is supported) you want to use. 
    You do this by setting appropriate value for FS_DEVINFO in your FS_conf.h , 
which is used to initialize µC/FS’s global device information table.  
   如果你想要使用自己的設備驅動,你必須要告訴μC/FS,你的設備使用的是哪一個設備名稱以及使用哪一個文件系統(tǒng)來管理(目前只支持FAT)。
   可以將 FS_conf.h中的FS_DEVINFO 設置一個合適的值來完成上面的動作,FS_DEVINFO被用來初始化μC/FS的全局設備信息表。
 【上面是ramdisk的設備驅動函數(shù)表的例子,_FS_DevStatus, _FS_DevRead, _FS_DevWrite, 
 _FS_DevIoCtl,就是ramdisk所需的底層驅動函數(shù)
  這里如果是MMC&SD存儲設備,下面是源碼。
#ifndef FS_DEVINFO
 #if FS_USE_SMC_DRIVER
   #define FS_DEVINFO_DEVSMC     
      {"smc",&FS__fat_functable,&FS__smcdevice_driver,FS_CACHEINFO_SMC_DRIVER 0 },
 #else
   #define FS_DEVINFO_DEVSMC
 #endif
 
 #if FS_USE_MMC_DRIVER
   #define FS_DEVINFO_DEVMMC     
     {"mmc", &FS__fat_functable,&FS__mmcdevice_driver, FS_CACHEINFO_MMC_DRIVER 0 },
 #else
   #define FS_DEVINFO_DEVMMC
 #endif
 ......
 #endif

從源碼中可以看出,如果沒有定義 
FS_DEVINFO宏,且如果沒有定義
 FS_DEVINFO_DEVSMC,系統(tǒng)會自動以FS_DEVINFO_DEVSMC,即采用系統(tǒng)默認的設備驅動。
我們可以在fs_conf.h中配置   
FS_USE_MMC_DRIVER = 1;再定義 
#define FS_DEVINFO \ 
        "mmc",    &FS__fat_functable, &FS__mmcdevice_driver, 0,
FS_USE_MMC_DRIVER = 1,即使沒有定義
 FS_DEVINFO,系統(tǒng)也會有一個默認的定義
FS__fat_functable:這個表不用填充,因為這里面的函數(shù)在API層已經(jīng)實現(xiàn),且系統(tǒng)已經(jīng)設置好。用戶只需更改FS__mmcdevice_driver里面的各個函數(shù)即可。
 
【這里支持多個設備"smc"和"mydev"
#define FS_DEVINFO \ 
        "smc",    &FS__fat_functable, &FS__smcdevice_driver, 0, \ 
        "mydev",  &FS__fat_functable, &FS__mydevice_driver , 0 
【如果不指定,系統(tǒng)將使用默認值】
   The first parameter is a device name, which you want to use for  µC/FS’s API 
calls.  
   The second parameter is a pointer to a  File System Layer function table; 
currently only FAT is supported.  
   The third parameter is a pointer to a Device Driver function table.  
   The last parameter is reserved for future use and should be zero. 
 
8: 各目錄介紹 

在工程中添加上面的文件組:API層、FAT層、LBL層、DEV層、OS、CLIB
DEV包含的就是文件系統(tǒng)需要使用的最底層的操作硬件的接口,
這里使用文件系統(tǒng)標準的操作接口:_FS_XXX_Devxxx(....):在這幾個函數(shù)中調用具體的SD卡的操作函數(shù)來實現(xiàn)與硬件驅動的鏈接。
CLIB中包含的是文件系統(tǒng)使用的一些C標準函數(shù)。
OS組中包含的文件fs_x_ucos_ii.c中包含的就是一些函數(shù)接口,這些接口是連接操作系統(tǒng)的接口(當然在裸機下也是這些接口),如果使用操作系統(tǒng),這些函數(shù)接口中 就是與操作系統(tǒng)相關的代碼,如果沒有操作系統(tǒng),這些接口就是很簡單的一些與系統(tǒng)無關的代碼,總之是文件系統(tǒng)是需要這些接口(有無操作系統(tǒng)接口是一樣的);
各接口函數(shù)如下:
FS_X_OS_Init:創(chuàng)建一些文件系統(tǒng)運行時需要使用的一些信號量(用來訪問資源)
FS_X_OS_Exit:刪除上面創(chuàng)建的各信號量
其他的都是配對的Lock/Unlock,也就是申請獲取一個對應的信號量,使用后再釋放這個信號量。
就是這么簡單。
 
9: MultiMedia & SD card device driver 
   µC/FS includes a generic driver for MultiMedia & SD cards. The driver accesses 
cards using SPI mode.
   µC/FS包含一個針對MMC/SD卡的通用驅動,該驅動通過SPI模式訪問卡。
   To use the driver in your system, you will have to provide basic I/O functions for 
accessing your card reader hardware. You can find samples of these routines in 
the directory device\mmc_sd\hardware. 
   在你的系統(tǒng)中使用該驅動時,你必須要提供基本的能訪問你的讀卡器硬件的I/O函數(shù)。你可以在“device\mmc_sd\hardware”路徑下找到例子。
   【在源代碼的目錄中官方提供了相關設備的通用底層驅動的例程】
   [下面藍色的就是官方提供的MMC&SD卡的通用驅動,但是需要你提供基本的IO訪問函數(shù)]
   [在device\xxx\hardware目錄下,存放的就是對應的xxx設備的通用驅動,                smc_X_hw.c、smc_X_hw.h]
   FS_MMC_HW_X_BusyLedOff():Turns off busy LED of the card reade
       void FS_MMC_HW_X_BusyLedOff(FS_u32 id); 
       id:ID of card reader (0…N).
   FS_MMC_HW_X_BusyLedOn():Turns on busy LED of the card reader.
       void FS_MMC_HW_X_BusyLedOn (FS_u32 id); 
       id:ID of card reader (0…N). 
   FS_MMC_HW_X_ClockCard() 
   FS_MMC_HW_X_SetCS()
   FS_MMC_HW_X_AdjustFOP() 
   FS_MMC_HW_X_CheckOCR()
   FS_MMC_HW_X_GetFOP() 
   FS_MMC_HW_X_CheckWP() 
   FS_MMC_HW_X_DetectStatus()
   FS_MMC_HW_X_WaitBusy() 
   FS_MMC_HW_X_ReadByte()
   FS_MMC_HW_X_ReadByteNoSync()  
   FS_MMC_HW_X_ReadSingleBlock() 
   FS_MMC_HW_X_WriteByte() 
   FS_MMC_HW_X_WriteByteSingleBlock()
關閉窗口
91免费视频网站在线观看| 国产免费一级视频| 欧美一卡2卡3卡4卡无卡免费观看水多多| 亚洲国产精品女人久久久| 中文字幕精品一区| 99综合在线| 成人午夜网址| gogo在线观看| www.久草.com| 亚洲精品国自产拍在线观看| 在线能看的av| 国产人妻一区二区| 成人3d动漫一区二区三区| 久久精品99| 欧美怡红院视频一区二区三区| 精品国产一区二区三区久久久蜜月| 国产精品视频在线观看免费 | 日本中文字幕免费在线观看| 奇米影视四色在线| 在线丝袜欧美日韩制服| 成人写真视频福利网| 久久视频精品在线| 亚洲成人av资源网| 色综合久久久久网| 亚洲三级久久久| 播五月开心婷婷综合| 日韩中文字幕不卡| 欧美黄色aaaa| 影视先锋久久| 久久久久久爱| 国内av在线播放| 最近中文字幕无免费| 午夜肉伦伦影院| 欧美爱爱视频网站| 激情久久av| 国产精品亚洲欧美导航| 精品国产自在精品国产浪潮| 精品福利一二区| 日本高清视频一区二区| 一区二区理论电影在线观看| 久久久国产午夜精品| 韩国精品一区二区| 日韩高清不卡一区二区三区| 轻轻色免费在线视频| 成年女人在线视频| 国产在线观看色| 1区2区3区视频| www.com欧美| 怡红院成永久免费人全部视频| 日韩精品一区二区av| 国产精品99久久久久久成人| 欧美黄色激情视频| 亚洲av成人片色在线观看高潮 | 日韩永久免费视频| 怡春院在线视频| 特级西西444www大精品视频| 一区二区激情小说| 国产情人综合久久777777| 成人午夜视频在线| 国产电影一区二区三区| 老司机精品视频在线| 日日摸夜夜添夜夜添国产精品| 亚洲精品护士| 黄色成人91| 海角社区69精品视频| 欧美在线三区| 欧美国内亚洲| 亚洲黄色影院| 久久九九99| 久久久久久久波多野高潮日日| 中文精品在线| 久久久777| 日韩国产一区二| 青青草国产成人av片免费| 日本aⅴ免费视频一区二区三区| 日韩专区在线视频| 亚洲国产日韩在线观看| chinese全程对白| 人妻视频一区二区| 长河落日免费高清观看| 在线看片中文字幕| 日本妇女毛茸茸| 毛片aaaaa| 国产又爽又黄的视频| 成人一级免费视频| 亚洲在线免费观看视频| 99久久一区二区| 婷婷在线观看视频| 亚洲精品xxxxx| 91丨九色丨蝌蚪丨老板 | 成人网av.com/| 国产精品17p| 成人三级视频| 99精品视频免费观看| 精品制服美女久久| 久久日韩精品一区二区五区| 依依成人精品视频| 欧美视频日韩视频| 亚洲国产高潮在线观看| 色噜噜亚洲精品中文字幕| 久久免费视频网站| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 99精品视频在线观看免费| 国产欧美自拍一区| 免费看av成人| 亚洲激情中文| 国产美女诱惑一区二区| 国产真实乱子伦精品视频| 91一区二区三区在线观看| 亚洲日本电影在线| 欧美午夜理伦三级在线观看| 精品国产sm最大网站免费看| 久久九九热免费视频| 国产成人一区二区三区| 久久久综合亚洲91久久98| 大伊香蕉精品视频在线| 男插女视频网站| 中文字幕成人在线视频| 超碰在线公开97| 国产在线观看无码免费视频| 玖玖爱免费视频| 国产福利视频导航| 色九视频91| 天堂在线一二区| 松下纱荣子在线观看| 97品白浆高清久久久久久| 久久视频国产| 韩国v欧美v亚洲v日本v| 亚洲视频一二区| 免费影视观看网站入口| 日批免费观看视频| av电影在线播放高清免费观看| 午夜久久久久久久久久| 欧美最猛黑人xxxx黑人猛交黄| 日本三级电影免费观看| 污视频在线观看免费| 成人性教育av免费网址| 欧美三级伦理在线| 久久激五月天综合精品| 亚洲码国产岛国毛片在线| 在线不卡中文字幕播放| 欧美高清第一页| 欧美极品一区| 香蕉网在线视频| 国产精品久久久久久久久久久久久久久久久 | 日av在线播放| 久久夜夜久久| 影音先锋久久精品| 国产午夜三级一区二区三| 欧美美女黄视频| 69久久夜色精品国产69乱青草| 日本在线观看一区二区三区| 国产乱码一区二区三区四区| 日本系列第一页| 亚州欧美精品suv| 黄色在线网站| 视频一区在线| 奇米影视一区二区三区| 亚洲v中文字幕| 精品久久久91| 日韩欧美一区二区视频在线播放| 特级特黄刘亦菲aaa级| 亚洲影视一区二区| 涩涩视频免费网站| 国产三级视频在线播放| 美美女免费毛片| 欧洲精品二区| 日本不卡二三区| av一区二区三区黑人| 欧美一二三四在线| 国产日本欧美一区二区三区| 精品久久久久久中文字幕2017| 久久久久无码国产精品不卡| 8x8x国产| 第一福利在线视频| 欧美精品日本| 亚洲国产视频在线| 久久久久久伊人| 青青青在线观看视频| 91成人福利视频| 久久99精品久久久久久青青91| 国产精品久久一区| 国产欧美高清在线| 91在线看视频| xxx免费视频观看| 日韩高清中文字幕一区二区| 亚洲欧美激情诱惑| 欧美日韩国产中字| 日韩av高清不卡| 国产精品人人爽人人爽| 精人妻无码一区二区三区| 3p乱日视频| 日韩精品一区二区三区中文| 国产99久久久精品| 日韩成人网免费视频| 日韩精品久久久| 国产又粗又大又黄| 日韩中文字幕免费在线观看| 青青草免费在线| 国模吧精品视频| 欧美国产日韩在线观看| 日韩网站免费观看高清| 一本色道久久综合亚洲二区三区| wwwww黄色| 碰碰视频免费| 亚洲成a人片777777久久| 丁香亚洲综合激情啪啪综合| 亚洲精品视频网上网址在线观看| 亚洲精品成人三区| 永久免费看片在线播放| 3d动漫成人在线| 西野翔中文久久精品国产| 国产精品国产三级国产a| 欧美极品在线视频| 红桃视频 国产| 中文字幕第8页| 成人免费av电影| 91视频91自| 97人人爽人人喊人人模波多| www.色.com| 国产偷窥女洗浴在线观看亚洲| 欧美日韩亚洲国产| av爱爱亚洲一区| 久久久久久久影院| 午夜免费福利影院| 丝袜免费视频| 婷婷亚洲精品| 精品人伦一区二区三区蜜桃网站 | 成人做爰69片免费| 国产伊人网av.| 69久久久久| 欧美日韩1080p| 欧美日韩在线一区二区| 国产一区二区三区无遮挡 | 香蕉视频在线网址| 亚洲综合视频在线播放| av黄色在线| 国产精品一区免费在线观看| 久久影院资源网| 污污的视频免费观看| 国产精品入口免费麻豆| 澳门精品久久国产| 亚洲午夜精品在线| 国产精品视频福利| 你懂的国产在线| 樱花草www在线| 国产精品久久免费观看| 岛国在线最新| 免费短视频成人日韩| 亚洲一区二区三区美女| 国产精品国模大尺度私拍| 少妇影院在线观看| 精品美女视频在线观看免费软件| 男女av一区三区二区色多| 亚洲人成网站免费播放| 久久久久久蜜桃一区二区| 在线观看私人影院w| 成人在线电影在线观看视频| 91精品婷婷国产综合久久性色| 白白操在线视频| 影音先锋中文字幕在线观看| 岛国av一区| 欧美性色综合网| 日韩一区二区免费在线观看| 日韩妆和欧美的一区二区| 国产精品久久久久久免费播放| 中国色在线日|韩| 亚洲视频在线一区观看| 国产区二精品视| 亚洲综合精品国产一区二区三区 | 久久av喷吹av高潮av| 欧美一区,二区| 国产精品超碰| 91精品国产高清一区二区三区| 黄色网页免费在线观看| 国产精品你懂的在线观看| 日韩久久视频| 亚洲女在线观看| 欧美大喷水吹潮合集在线观看| 欧美午夜精品一区二区三区| 亚洲三区在线观看| 国产浮力第一页| 日本免费精品| 欧美日韩亚洲综合一区 | 欧美精品国产一区| 国产性猛交xxxx免费看久久| 精品人妻伦一二三区久| 深夜福利视频在线观看| av资源网一区| 国产成人免费电影| 欧美熟妇交换久久久久久分类| 免费日韩一区二区三区| 日韩欧美一区中文| 一级黄色大片免费看| 日韩精品123| 久久一夜天堂av一区二区三区| 欧美韩国一区二区| 国产精品一区电影| 久久国产黄色片| 女生影院久久| 一本久道久久综合中文字幕| av免费观看网| 欧美18—20岁hd第一次| 久久99热国产| 91精品婷婷国产综合久久蝌蚪| 国产精品久久久久毛片| 狼人天天伊人久久| 精品亚洲一区二区三区| 蜜桃无码一区二区三区| 黄色av网站在线播放| 亚洲欧洲精品天堂一级 | 中文字幕日韩有码| 亚洲伦理一区二区三区| www.com.cn成人| 在线播放亚洲一区| 波多野吉衣在线视频| 黄视频网站在线| 黄色一区二区在线| 天堂av在线网站| 蜜桃臀av在线| 国产精品免费av| 给我免费播放片在线观看| 成年在线播放小视频| 99re在线精品| 青春草在线视频免费观看| h视频在线观看网站| 国产成人午夜99999| 日本亚洲欧洲精品| 青青艹在线视频| 国产一区美女在线| 蜜桃日韩视频| 免费下载黄色软件| 粉嫩蜜臀av国产精品网站| 亚洲狠狠婷婷综合久久久| 嫩草影院一二三| 成+人+亚洲+综合天堂| 曰韩不卡视频| 精产国产伦理一二三区| 欧美经典三级视频一区二区三区| 成年人网站免费视频| 深夜影院在线观看| 精品久久久久久中文字幕大豆网 | 蜜桃视频在线观看成人| 免费看h片网站| 99re成人精品视频| 精品久久久久久无码中文野结衣| 久久久久久五月天久久久久久久久| 中文字幕一区二区视频| 91国产精品视频在线观看| 欧美黄色激情| 欧美精品第1页| 国产精品久久国产精麻豆96堂| 成人网av.com/| 深夜福利日韩在线看| 欧美三级日韩三级| 182午夜在线观看| 污污视频在线| 欧美成人性福生活免费看| 男的操女的网站| 开心激情综合| 国产成人av在线播放| 亚洲精品一区二区三区网址| 韩国av一区二区三区在线观看| 糖心vlog在线免费观看| 裸体xxxx视频在线| 欧美日韩一区三区| 欧美人禽zoz0强交| 国产剧情在线观看一区| 国产精品爽黄69天堂a| 国产麻豆精品一区二区三区v视界| 懂色av一区二区三区蜜臀| 欧美不卡在线播放| 国产精品刘玥久久一区| 亚洲国产成人精品电影| 成人公开免费视频| 欧美日韩三区| 欧美日韩国产综合在线| julia中文字幕久久亚洲蜜臀| 韩国女主播成人在线观看| 亚洲深夜福利视频| 亚洲图片在线视频| 国产综合网站| 欧美理论一区二区| 一个人看的免费视频色| 欧美日韩另类在线| www中文在线| 国产精品手机在线播放| 成人精品网站在线观看| 色版视频在线观看| 国产精品国产三级国产专播品爱网| 涩多多在线观看| 麻豆一区在线| 国产精品扒开腿做| 成年人网站在线免费观看| 亚洲成人www| 久操视频免费在线观看| 在线欧美三区| 日韩精品免费一区| 国产又色又爽又黄刺激在线视频| 中国china体内裑精亚洲片|