鲁鲁免费五月天视频_美美女免免费亚洲片国视频_日本精品在线不卡中文字幕_一级毛片看看_aw字幕中文一区二区三区_精品资源在线视频_国产三级无遮挡在线播放_丰满少妇蜜桃av_AV色综合青青草原加勒比_久久成人影院精品99

當前位置:首頁 > 服務(wù)支持 > 博客

nRF Connect SDK(NCS)/Zephyr固件升級詳解 – 重點講述MCUboot和藍牙空中升級作者:迅通科技    時間:2025-03-06

如何在nRF Connect SDK(NCS)中實現(xiàn)藍牙空中升級?MCUboot和B0兩個Bootloader有什么區(qū)別?MCUboot升級使用的image格式是怎么樣的?什么是SMP協(xié)議?CBOR編碼如何解讀?NCS可不可以進行單bank升級?可不可以把一個nRF5 SDK應用升級到NCS應用?MCUboot拷貝操作中的swap和overwrite有什么區(qū)別?為什么說MCUboot升級永遠都不可能變磚?本文將對以上問題進行闡述。

目錄

1.概述

2. NCS中的Bootloader

  2.1 nRF5 SDK Bootloader

  2.2 MCUboot

  2.3 B0,亦稱nRF Secure Immutable Bootloader(NSIB)

3. DFU協(xié)議

  3.1 概述

  3.2 SMP DFU協(xié)議

    3.2.1 SMP包頭和命令

    3.2.2 SMP包payload和CBOR編碼

    3.2.3 SMP包詳細解析示例

    3.2.4 SMP DFU流程

  3.3 nrf dfu協(xié)議

4. NCS DFU升級步驟說明

  4.1 SMP DFU升級步驟說明

  4.2 nrf_dfu升級步驟說明

  4.3 存儲器分區(qū)(多image情況)

5. 移植SMP DFU功能到peripheral_uart(NUS)

6 手機端DFU參考代碼

 

1.概述

先講一下DFU和OTA的概念。DFU(Device Firmware Update),就是設(shè)備固件升級的意思,而OTA(Over The Air)是實現(xiàn)DFU的一種方式而已,準確說,OTA的全稱應該是OTA DFU,即通過空中無線方式實現(xiàn)設(shè)備固件升級。只不過大家為了方便起見,直接用OTA來指代固件空中升級(有時候大家也將OTA稱為FOTA,即Firmware OTA,這種稱呼意思更明了一些)。只要是通過無線通信方式實現(xiàn)DFU的,都可以叫OTA,比如4G/WiFi/藍牙/NFC/Zigbee/NB-IoT,他們都支持OTA。DFU除了可以通過無線方式(OTA)進行升級,也可以通過有線方式進行升級,比如通過UART,USB或者SPI通信接口來升級設(shè)備固件。

不管采用OTA方式還是有線通信方式,DFU包括后臺式(background)和非后臺式兩種模式。后臺式DFU,又稱靜默式DFU(Silent DFU),在升級的時候,新固件在后臺悄悄下載,即新固件下載屬于應用程序功能的一部分,在新固件下載過程中,應用可以正常使用,也就是說整個下載過程對用戶來說是無感的,下載完成后,系統(tǒng)再跳到BootLoader程序,由BootLoader完成新老固件拷貝操作,至此整個升級過程結(jié)束。比如智能手機升級Android或者iOS系統(tǒng)都是采用后臺式DFU方式,新系統(tǒng)下載過程中,手機可以正常使用哦。非后臺式DFU,在升級的時候,系統(tǒng)需要先從應用程序跳到BootLoader程序,由BootLoader進行新固件下載工作,下載完成后BootLoader繼續(xù)完成新老固件拷貝操作,至此升級結(jié)束。早先的功能機就是采用非后臺式 DFU來升級操作系統(tǒng)的,即用戶需要先長按某些按鍵進入bootloader模式,然后再進行升級,整個升級過程中手機正常功能都無法使用。

下面再講雙區(qū)(2 Slot)DFU和單區(qū)(1 Slot)DFU,雙區(qū)或者單區(qū)DFU是新固件覆蓋老固件的兩種方式。后臺式DFU必須采用雙區(qū)模式進行升級,即老系統(tǒng)(老固件)和新系統(tǒng)(新固件)各占一塊Slot(存儲區(qū)),假設(shè)老固件放在Slot0中,新固件放在Slot1中,升級的時候,應用程序先把新固件下載到Slot1中,只有當新固件下載完成并校驗成功后,系統(tǒng)才會跳入BootLoader程序,然后擦除老固件所在的Slot0區(qū),并把新固件拷貝到Slot0中,或者把Slot0和Slot1兩者的image進行交換。非后臺式DFU可以采用雙區(qū)也可以采用單區(qū)模式,與后臺式DFU相似,雙區(qū)模式下新老固件各占一塊Slot(老固件為Slot0,新固件為Slot1),升級時,系統(tǒng)先跳入BootLoader程序,然后BootLoader程序把新固件下載到Slot1中,只有新固件下載完成并校驗成功后,才會去擦除老固件所在的Slot0區(qū),并把新固件拷貝到Slot0區(qū)。單區(qū)模式的非后臺式DFU只有一個Slot0,老固件和新固件分享這一個Slot0,升級的時候,進入bootloader程序DFU模式后立馬擦除老固件,然后直接把新固件下載到同一個Slot中,下載完成后校驗新固件的有效性,新固件有效升級完成,否則要求重來。跟非后臺式DFU雙區(qū)模式相比,單區(qū)模式節(jié)省了一個Slot的Flash空間,在系統(tǒng)資源比較緊張的時候,單區(qū)模式是一個不錯的選擇。不管是雙區(qū)模式還是單區(qū)模式,升級過程出現(xiàn)問題后,都可以進行二次升級,都不會出現(xiàn)“變磚”情況。不過雙區(qū)模式有一個好處,如果升級過程中出現(xiàn)問題或者新固件有問題,它還可以選擇之前的老固件老系統(tǒng)繼續(xù)執(zhí)行而不受其影響。而單區(qū)模式碰到這種情況就只能一直待在bootloader中,然后等待二次或者多次升級嘗試,此時設(shè)備的正常功能已無法使用,從用戶使用這個角度來說,你的確可以說此時設(shè)備已經(jīng)“變磚”了。所以說,雖然雙區(qū)模式犧牲了很多存儲空間,但是換來了更好的升級體驗。

可參考下面三個圖來理解上述過程。

  

如果你是第一次接觸nRF Connect SDK(NCS),那么建議你先看一下這篇文章:開發(fā)你的第一個NCS/Zephyr應用程序,以建立NCS的一些基本知識,然后再往下看以下章節(jié)。

2. NCS中的Bootloader

如果你的應用不需要DFU功能,那么Bootloader就可以不要;反之,如果你的應用需要DFU功能,Bootloader就一定需要。Bootloader在其中起到的作用包括:一判斷正常啟動還是DFU升級流程,二啟動并校驗應用image,三升級的時候完成新image和老image的交換或者拷貝工作。進一步說,

  1. Bootloader首先需要判斷是進入正常應用程序啟動流程還是DFU流程。
  2. 要啟動應用image,Bootloader必須知道啟動image的啟動向量表在哪里。
  3. 要校驗一個image,Bootloader必須知道這個image正確的校驗值存在哪里。
  4. 要完成升級,Bootloader必須知道新image所在位置和老image所在位置,并執(zhí)行一定的拷貝算法。

啟動向量表可以放在image的最開始處,也可以放在其他地方,這就涉及到image的格式。Image正確的校驗值可以跟image合在一塊存放,也可以單獨放在一個flash page里面。如果image的校驗值是跟image本身合在一塊存放的,這里再次涉及到image的格式。關(guān)于新image和老image存放位置,這就涉及到存儲器分區(qū)問題。Bootloader的實現(xiàn)將直接決定image的格式,以及存儲器的結(jié)構(gòu)劃分。

NCS支持MCUboot,B0和nRF5 Bootloader三種Bootloader,三個Bootloader選其一即可,一般推薦大家使用MCUboot。由于很多讀者對Nordic老的SDK,即nRF5 SDK比較熟悉,我們先以這個nRF5 Bootloader為例來講解他們的Flash分區(qū)以及image格式,然后再講MCUboot和B0,看看他們又是如何分區(qū)和定義image格式的。注意:如果你只對其中某一個具體的Bootloader感興趣,可以跳過其他章節(jié),直接閱讀相關(guān)章節(jié),比如如果你只對MCUboot感興趣,可以只看2.2節(jié)。

2.1 nRF5 SDK Bootloader

nRF5 Bootloader是指nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_bootloader這里面定義的Bootloader,如果你的DFU想使用這個Bootloader,那么nRF5 SDK的存儲區(qū)劃分(雙bank)是下面這樣的:

 

在nRF Connect SDK(NCS)中,如果也使用nRF5 Bootloader,此時存儲器的分區(qū)跟上面大同小異,我們用NCS中的語言重新組織如下:

  

當前固件(老固件)在Bank0里面執(zhí)行,新固件接收后直接存放在Bank1,而且程序永遠只執(zhí)行Bank0里面的代碼,Bank1的起始地址是動態(tài)的,其計算公式為:Bank0起始地址 + Bank0 image大小。由于nRF5 Bootloader跳到Bank0的時候,直接跳到一個固定地址(0x1000),因此它不需要專門去找新image的啟動向量,換句話說,如果使用nRF5 Bootloader的話,新image就是應用代碼編譯后的樣子,不需要添加任何的頭或者尾信息。如果這樣的話,image的SHA256或者簽名校驗怎么做?在nRF5 Bootloader中,把正確的SHA256或者簽名放在settings page里面,這樣image就真得不需要任何頭或者尾信息,當需要校驗image的時候,從settings page中取出標準值,然后進行校驗。那這些標準的SHA256或者簽名怎么從遠程傳過來呢?答案是init包,所以nRF5 Bootloader升級的時候,需要把一個zip包傳給目標設(shè)備,如下所示:

  

這個zip包除了新image本身,還包含一個dat文件,這個dat文件包含新image的大小,SHA256,簽名等信息。

至于升級拷貝,nRF5 Bootloader做法也很簡單,先擦掉Bank0里面的內(nèi)容,然后把Bank1里面的內(nèi)容拷貝到Bank0,然后重新從Bank0啟動,完成整個升級。在拷貝之前,Bootloader會校驗Bank1里面的image完整性,只有校驗通過才會做下一步的拷貝工作,否則退出升級模式。從上可以看出,雖然nRF5 Bootloader會校驗image的完整性,但是如果出現(xiàn)發(fā)版錯誤(打個比方,Win11和Win7都是微軟驗簽,因此完整性校驗都可以通過,但是如果微軟把Win11發(fā)到一臺只能跑Win7的設(shè)備上,那么這臺設(shè)備將無法運行),由于它沒有新image確認操作,也不支持回滾操作,那么升級后系統(tǒng)有可能掛死在一個錯誤的版本里面。

說完了啟動,校驗和升級拷貝,最后說一下如何進入DFU模式。在nRF5 Bootloader里面,通過判斷某些Flag(標志位)來決定要不要進入DFU模式,這些標志位有一個為真,進入DFU模式,否則正常啟動app:

  • 特定按鍵是否按下
  • 保持寄存器GPREGRET1是否為0xB1
  • Settings page里面當前bank是否為Bank1
  • 上次DFU過程是否還在進行中
  • 應用程序校驗是否通過

可以看出,整個判斷邏輯還是比較簡單,大家很容易讀懂相關(guān)的源代碼。

nRF5 Bootloader既可以運行在nRF5 SDK中,也可以運行在NCS中。nRF5 Bootloader既支持非后臺式DFU,也支持后臺式DFU,我們做了一個跑在NCS中的后臺式DFU例子:https://github.com/aiminhua/ncs_samples/tree/master/nrf_dfu/ble_intFlash_nrf5_bl。跟nRF5 SDK DFU相比,這個例子有兩個要注意的地方:

  • 我們是通過把Settings page里面的當前bank設(shè)置為Bank1來觸發(fā)DFU模式的
  • 由于是后臺式DFU,我們只把DFU進度信息保存在RAM里面,沒有將其保存在Settings page這個Flash頁面中。

從這個例子大家可以體會到,分區(qū)和新image格式只跟Bootloader有關(guān),跟SDK或者DFU協(xié)議無關(guān)。

下面是nRF5 Bootloader啟動的一個示例,供大家參考:

  

2.2 MCUboot

MCUboot位于如下目錄:bootloader/mcuboot/boot/zephyr,在NCS中做DFU的時候,一般都推薦使用MCUboot。MCUboot功能強大,兼容的芯片平臺多,而且是一個久經(jīng)考驗的第三方開源Bootloader。MCUboot把存儲區(qū)劃分為Primary slot和Secondary slot,而且primary slot跟secondary slot兩者大小是一樣的,程序默認在Primary slot中執(zhí)行。有一點需要大家注意,NCS對MCUboot進行了定制,在NCS中,程序只能在Primary slot中執(zhí)行,Secondary slot只是用來存儲新image,而且Secondary slot可以放在內(nèi)部Flash,也可以放在外部Flash,這樣在NCS中,存儲器分區(qū)有如下兩種典型情況:

 

Secondary slot在內(nèi)部Flash

 

Secondary slot在外部Flash

注:MCUboot放在0x000000地址。

如前所述,Bootloader有四大功能:啟動image,校驗image,拷貝image以及DFU模式判斷,那么MCUboot是如何完成這4項功能的:

  1. 啟動image。MCUboot通過讀image的頭信息(header),得到啟動向量,然后跳到啟動向量,完成啟動。Image header信息如下:(感興趣的讀者,仔細看一下各個結(jié)構(gòu)體字段定義,并對應image hex進行解讀) 

從上可以看出,image的最開始是image header,而不是image啟動向量。Image header里面有一個字段image header size,啟動向量就位于image header size的偏移處,image header一般為0x200大小,一般來說,app的基地址是0xC000,這樣image的啟動向量就在0xC000+0x200=0xC200,MCUboot啟動app的時候就跳轉(zhuǎn)到0xC200這個地址。

2. 校驗image。MCUboot通過讀image的尾信息(tail或者tlv),得到image的SHA256和簽名,從而完成校驗。Image tlv緊跟在image后面,其內(nèi)容示例如下所示:(感興趣的讀者,仔細看一下各個結(jié)構(gòu)體字段定義,并對應image hex進行解讀)

 

上述示例解讀結(jié)果為:沒有IMAGE_TLV_PROT_INFO_MAGIC,只有普通的IMAGE_TLV_INFO_MAGIC,IMAGE_TLV_INFO_MAGIC總共有3個tag:IMAGE_TLV_SHA256 (0x10), IMAGE_TLV_KEYHASH(0x01),以及IMAGE_TLV_ECDSA256(0x22)。

nRF5 Bootloader把app image的SHA256和簽名放在settings page里,這樣每次重新編譯一次app image,還需要重新生成一個settings page,然后把兩者一起合并燒到芯片里,這樣Bootloader才能通過image完整性校驗而跳到app;如果只把新編譯的app image燒到芯片里,此時image完整性校驗將失敗而導致程序一直死在Bootloader里,可以看出這種方案是不太方便開發(fā)和調(diào)試的。而MCUboot把app image的SHA256和簽名放在image后面,這樣每次重新編譯一次app image,新的sha256和簽名會自動跟著一起更新,你只需直接下載app而無需去更改Bootloader任何部分,大大方便了開發(fā)和調(diào)試。

3. Image拷貝。MCUboot支持多種image拷貝動作,確切說是image swap(交換)操作,即把secondary slot里面的image交換到Primary slot,如何swap呢?總體上分swap和overwrite兩種。Overwrite跟上面的nRF5 Bootloader一樣,即先擦除primary slot里面的老image,然后把secondary slot里面的新image拷貝到primary slot,完成整個升級過程。Swap就是把primary slot和secondary slot里面的image進行交換,即primary slot里面的image搬移到secondary slot,secondary slot里面的image搬移到primary slot。欲swap A和B,我們需引入一個媒介:C,算法是C=A;A=B;B=C,這樣就實現(xiàn)了A和B的交換。從上可知,實現(xiàn)swap的關(guān)鍵是媒介C的引入,據(jù)此MCUboot支持兩種swap算法:swap_move和swap_scratch,默認采用swap_move。swap_scratch的做法是:在存儲區(qū)中專門劃分一塊scratch區(qū)作為swap媒介,swap的時候,primary slot里面的image先放在scratch區(qū),然后把secondary slot里面的image拷貝到primary slot,最后把scratch區(qū)里面的內(nèi)容拷貝到secondary slot,從而完成一次交換操作,Scratch區(qū)應該比primary或者secondary slot小很多,因此要完成整個image交換,需要循環(huán)執(zhí)行多次上述操作直至整個image(以兩個slot中最大的為準)交換完成。這種算法有兩個弊端:一浪費了scratch區(qū),二由于一次image交換,scratch區(qū)需要執(zhí)行多次擦寫操作,scratch區(qū)的Flash壽命有可能會不夠,為解決上述兩個問題,引入了第二套算法:swap_move,具體做法是:先把primary slot里面整個image向上搬移一個扇區(qū),即先擦掉image size + 1的扇區(qū),然后把image size所在的扇區(qū)內(nèi)容拷貝到image size + 1扇區(qū),然后擦掉image size扇區(qū),并把image size -1所在的扇區(qū)內(nèi)容拷貝到image size扇區(qū),以此循環(huán)往復,直至把整個image向上挪動一個扇區(qū),這樣就為下面的primary slot和secondary slot image交換做好準備。Primary slot和secondary slot image交換的時候,先擦掉primary slot第一個扇區(qū),然后把secondary slot第一個扇區(qū)的內(nèi)容拷貝到primary slot第一個扇區(qū)并擦掉secondary slot第一個扇區(qū),然后把primary slot第二個扇區(qū)內(nèi)容拷貝到secondary slot第一個扇區(qū)并擦掉primary slot第二個扇區(qū),然后把secondary slot第二個扇區(qū)內(nèi)容拷貝到primary slot第二個扇區(qū)并擦掉secondary slot第二個扇區(qū),然后把primary slot第三個扇區(qū)內(nèi)容拷貝到secondary slot第二個扇區(qū)并擦掉primary slot第三個扇區(qū),以此往復,直至primary slot或者secondary slot兩者中最大的那個image size拷貝完成,整個image swap流程宣告完成。從上面算法描述大家可以感覺出,swap操作是比較耗時的,但是它安全,支持回滾操作。如果大家不需要這個回滾操作的話(就像nRF5 SDK那樣),那么大家可以選擇overwrite模式(打開#define MCUBOOT_OVERWRITE_ONLY)以加快MCUboot拷貝速度。

4. 是否進入DFU模式。nRF5 Bootloader通過判斷某些標志位以此決定是否進入DFU模式,與此簡單判斷不同,MCUboot是通過primary slot和secondary slot的狀態(tài)組合來決定是否進入DFU模式。在MCUboot中,有一個變量:swap_type,它的取值將決定是否進入DFU模式,而swap_type的值又依賴如下真值表:

 

swap_type取值

上述的magic,image_ok和copy_done三個字段位于slot最后一個扇區(qū),即slot的最高扇區(qū),他們在扇區(qū)中的排布如下所示(magic字段在扇區(qū)的最高地址):

 

從上可知,根據(jù)magic,image_ok和copy_done三個變量的不同取值情況,可以得到不同的結(jié)果,即swap_type。我們以State1 表格為例來解讀其中的結(jié)果,State1表格如下:

                          

可以看出,當secondary slot最后一個扇區(qū)的magic字段為Good,即設(shè)置成正確的值,而且image_ok字段不等于1,即為unset狀態(tài),則不管其他變量為什么值(正常情況下,此時其他變量的值都是0xFF),此時swap_type的結(jié)果為:BOOT_SWAP_TYPE_TEST,大家以此類推,就知道State2,State3和State4表格的swap_type結(jié)果是怎么來的。這里有一點需要大家注意的,magic字段在Flash中只有兩種正常取值:全FF和0x96f3b83d,而image_ok和copy_done在Flash中也只有兩種正常取值:全FF和0x01,而表格中所謂的“Good”,“Any”,“Unset”,“0x01”,是對上述兩種取值的泛化,比如magic字段等于0x96f3b83d,就叫“Good”;image_ok等于0xFF,就叫“Unset”或者“Any”(當然“Any”意味著0x55等其他非法值也可以兼容)。swap_type總共有6種結(jié)果,每種結(jié)果的意義如下所示:

    1. BOOT_SWAP_TYPE_TEST。MCUboot將進入DFU模式,而且為test目的的DFU。跟下面的BOOT_SWAP_TYPE_ PERM模式相比,BOOT_SWAP_TYPE_TEST的DFU過程與之一模一樣,也就是說BOOT_SWAP_TYPE_TEST就是進行正常的真正DFU,只不過DFU完成后,MCUboot跳到新app,這個時候新app必須把secondary slot里面的image_ok字段寫為1,即調(diào)用boot_write_img_confirmed()這個API來完成,否則再次復位進入MCUboot的時候,MCUboot會認為新image有問題(沒有確認),從而執(zhí)行回滾操作,重新把老image換到primary slot,然后繼續(xù)跑老image(此時升級應該算失?。?。
    2. BOOT_SWAP_TYPE_ PERM。如前所述,BOOT_SWAP_TYPE_ PERM跟BOOT_SWAP_TYPE_TEST DFU過程一模一樣,唯一區(qū)別的是,一旦設(shè)為PERM(永久)模式,哪怕新image沒有去寫image_ok字段,再次復位進入MCUboot,MCUboot也不會去執(zhí)行回滾操作,而強制認為升級已成功。
    3. BOOT_SWAP_TYPE_ REVERT,回滾操作。前述的回滾操作,swap_type就是BOOT_SWAP_TYPE_ REVERT。一旦檢測到BOOT_SWAP_TYPE_ REVERT,MCUboot將進行回滾操作。
    4. BOOT_SWAP_TYPE_ NONE。正常啟動模式,MCUboot將直接跳到app,而不是進入DFU模式。
    5. BOOT_SWAP_TYPE_ FAIL。當MCUboot校驗primary slot里面的image失敗時,就會報BOOT_SWAP_TYPE_ FAIL,此時程序?qū)⑺涝贛CUboot里面。
    6. BOOT_SWAP_TYPE_ PANIC。當MCUboot啟動過程中出現(xiàn)了致命錯誤,就會報BOOT_SWAP_TYPE_ PANIC,此時程序?qū)⑺涝贛CUboot里面。

從上我們可以總結(jié)出,為了讓MCUboot進入DFU模式,swap_type結(jié)果必須為BOOT_SWAP_TYPE_TEST或者BOOT_SWAP_TYPE_ PERM,而讓swap_type取值為BOOT_SWAP_TYPE_TEST或者BOOT_SWAP_TYPE_ PERM的關(guān)鍵是讓secondary slot最后一個扇區(qū)的magic字段為0x96f3b83d,這是通過調(diào)用boot_request_upgrade()來實現(xiàn)的,當調(diào)用boot_request_upgrade(false)進入BOOT_SWAP_TYPE_TEST模式,當調(diào)用boot_request_upgrade(true)進入BOOT_SWAP_TYPE_ PERM模式。

State1,State2,State3和State4四個表格是有優(yōu)先級順序的,越往前優(yōu)先級越高,也就是說,如果State1表格匹配成功就不再匹配后面的表格,此時swap_type就是BOOT_SWAP_TYPE_TEST。下面是MCUboot正常啟動的一個示例,可以看出,因為magic,image_ok和copy_done三個變量的取值沒有匹配成功真值表State1,State2和State3,但匹配成功State4表格,所以swap_type的最終結(jié)果是BOOT_SWAP_TYPE_ NONE,即正常啟動app。注:0x3就代表“Unset”(實際取值為0xFF),“Unset”可以看成“Any”一種,因此下述啟動日志表明此時swap_type不匹配State1,State2和State3表格,而匹配State4表格。

 

很多人會好奇為什么MCUboot使用這么復雜的DFU模式判斷算法?究其根本,還是因為Flash的限制導致的。Flash每次只能擦一個page(擦除時間還比較長),而且壽命又有限,在盡可能少擦Flash的情況下,又要實現(xiàn)上述那么多swap操作,然后有人就想出了上面的算法。

一般來說,一旦你使能MCUboot(CONFIG_BOOTLOADER_MCUBOOT=y),編譯系統(tǒng)會自動幫你生成升級需要的升級文件:app_update.bin或者app_signed.hex(兩者內(nèi)容一模一樣)。當然如果你選擇雙核MCU,那么除了上述應用核的升級文件,編譯系統(tǒng)還會自動生成網(wǎng)絡(luò)核的升級文件:net_core_app_update.bin或者net_core_app_signed.hex(兩者內(nèi)容一模一樣)。升級文件示例如下所示:

 

升級的時候,把相應的升級文件傳給設(shè)備端,設(shè)備端把接收到的升級文件放在secondary slot,待整個image接收完畢,復位進入MCUboot,MCUboot將完成后續(xù)工作直至升級成功。 

2.3 B0,亦稱nRF Secure Immutable Bootloader(NSIB)

NSIB(nRF Secure Immutable Bootloader),亦稱B0,位于nrf/samples/bootloader,這個是Nordic自己開發(fā)的一個不可升級的Bootloader。b0把存儲區(qū)劃分成slot0和slot1,并且slot0大小等于slot1大小,s0_image跑在slot0,s1_image跑在slot1,B0根據(jù)s0_image和s1_image的版本號來決定跑哪一個image,如果s0_image的版本號高于或等于s1_image的版本號,那么B0啟動的時候就會跳到s0_image;反之,如果s1_image的版本號高于s0_image的版本號,那么B0啟動的時候就會跳到s1_image。由于s0_image和s1_image都有可能被執(zhí)行,所以s0_image和s1_image必須都放置在內(nèi)部Flash,也就是說slot0和slot1必須都在nRF設(shè)備內(nèi)部Flash中。B0將存儲區(qū)劃分成如下模樣:

 

如前所述,Bootloader有四大功能:啟動image,校驗image,拷貝image以及DFU模式判斷,那么b0是如何完成這4項功能的:

1. 啟動image。B0通過讀provision區(qū)域信息,得到s0_image和s1_image信息,provision屬于B0的一部分,下面為provision的定義及一個示例:(感興趣的讀者,仔細看一下結(jié)構(gòu)體各個字段定義,并對應image hex進行解讀) 

從上面示例可以看出,s0_address為0x9000,0x9000即為s0_image的起始地址,s1_image起始地址可以用同樣道理獲得。得到S0_image或者S1_image的起始地址后,就可以得到兩個image的fw_info,fw_info定義及示例如下所示:

 

通過fw_info就可以找到boot_address,從而跳轉(zhuǎn)到相應app。

2. 校驗image。B0也支持SHA256或者簽名驗簽,SHA256或者簽名放在image的最后,稱為fw_validation_info,其定義及示例如下所示:

 

B0通過magic字段找到hash和signature,然后進行校驗。

3. 拷貝image。B0沒有拷貝image的操作,所謂升級,就是執(zhí)行高版本image,具體來說,如果s1_image版本比s0_image版本高,則執(zhí)行s1_image;否則執(zhí)行s0_image。

4. DFU模式進入。B0不存在DFU模式,也就不存在所謂進入DFU模式判斷。每次復位B0都去讀s0_image和s1_image的版本,那個image版本高就執(zhí)行那個image。

基于b0的DFU,有一點需要特別注意,由于S0_image和S1_image兩者的偏移或者啟動向量不一樣,因此即使S0_image和S1_image兩者功能一模一樣,他們的image內(nèi)容也不一樣,這也意味著slot0和slot1對應的升級image是不一樣的。一般來說,手機app或者其他主機并不知道設(shè)備當前正在運行哪個slot里面的image,因此DFU的時候,手機app或其他主機需要先跟設(shè)備溝通,獲知設(shè)備當前正在執(zhí)行哪個image。如果S0_image在運行,就給它傳S1_image(signed_by_b0_s1_image.bin)并放置在slot1中;如果S1_image在運行,就給它傳S0_image(signed_by_b0_s0_image.bin)并放置在slot0中。升級image接收完畢,系統(tǒng)復位,B0自動選擇高版本image執(zhí)行,至此整個升級完成。從上可知,DFU的升級文件必須同時包含signed_by_b0_s0_image.bin 和signed_by_b0_s1_image.bin,實際中我們一般使用如下zip文件:

 

這里我們做了一個基于b0的DFU例子:https://github.com/aiminhua/ncs_samples/tree/master/nrf_dfu/ble_intFlash_b0,大家感興趣的話,可以自己去看一下(按照里面的readme來操作)。下面是B0正常啟動的一個示例,可以看出B0選擇了slot0里面的s0_image進行裝載,校驗和跳轉(zhuǎn)。 

 

3. DFU協(xié)議

3.1 概述

前面說過,為了實現(xiàn)固件升級,需要把新image放在secondary slot(以MCUboot為例),如何把新image傳輸?shù)絪econdary slot?這就是DFU協(xié)議要做的事情,一般來說,DFU協(xié)議需要把image文件分塊一塊一塊傳給設(shè)備端,然后設(shè)備端按照要求將image塊寫入secondary slot,并回復寫入結(jié)果給主機。期間有可能還需要校驗傳輸?shù)膇mage對不對,或者告知每次image塊寫入的偏移地址。最后DFU協(xié)議還有可能涉及一些管理操作,比如image塊寫入的準備工作,讀取設(shè)備狀態(tài),復位設(shè)備等。

這里需要特別強調(diào)一下,DFU協(xié)議是脫離于傳輸層的,也就是說,同樣的DFU協(xié)議可以跑到不同的傳輸層,比如藍牙,WiFi,UDP,USB CDC,UART等,千萬不要把DFU協(xié)議跟特定的傳輸層混為一談。

nRF Connect SDK包含多種DFU協(xié)議,最著名的就是SMP DFU協(xié)議,除此之外,還有其他DFU協(xié)議,比如http_update,hid_configurator,USB DFU class,PCD DFU,以及從nRF5 SDK移植過來的nrf_dfu協(xié)議。不同的應用場景有不同的DFU協(xié)議需求,大家需要根據(jù)自己的情況選擇合適的DFU協(xié)議,就像前述的Bootloader一樣,這些DFU協(xié)議選擇一個適合自己的就可以,不需要全部都要會用。下面著重講一下smp dfu和nrf_dfu兩個dfu協(xié)議。

3.2 SMP DFU協(xié)議

smp 全稱simple management protocol(簡單管理協(xié)議),它是設(shè)備管理協(xié)議的一種,在NCS中,mcumgr模塊實現(xiàn)了smp協(xié)議,或者說,smp協(xié)議按照mcumgr的要求對相應的傳輸數(shù)據(jù)進行編碼,這樣mcumgr里面注冊的命令組(command group)可以直接對傳輸數(shù)據(jù)進行解析。mcumgr實現(xiàn)的功能比較多,smp DFU只是其中一種,除此之外,它還有很多其他功能,比如shell管理,日志管理等。這里我們只對DFU相關(guān)命令組進行介紹,其他命令組就不在這里講了。

3.2.1 SMP包頭和命令

mcumgr里面有兩個命令組跟DFU有關(guān):

  • img_mgmt,即image管理命令組,該命令組又具體包括3個命令集4個具體命令,詳細定義如下:                                                                 

  • os_mgmt,即OS管理命令組,該命令組又具體包括3個命令集4個具體命令,詳細定義如下:(實際上,DFU只用到了os_mgmt_reset這個命令) 

        

smp協(xié)議把數(shù)據(jù)包(packet)分成兩部分:包頭(header)和有效載荷(payload),包頭每一個字節(jié)正好對應如下結(jié)構(gòu)體的每一個字段,即第一個字節(jié)代表nh_op(操作類型),第二個字節(jié)代表nh_flags,第三和四個字節(jié)代表nh_len,第五和六個字節(jié)代表nh_group(命令組編號),第7個字節(jié)代表nh_seq,第8個字節(jié)代表nh_id(命令在該命令組中的編號)                                                                 

這樣我們就可以通過SMP的包頭找到相應的handler,比如包頭00 00 00 02 00 01 00 00,即對應命令組1的0號命令集的00操作(讀命令),最終找到img_mgmt_state_read這個handler。我們會在3.2.3節(jié)對此示例的解析做詳細說明。

3.2.2 SMP包payload和CBOR編碼

SMP payload采用CBOR編碼,CBOR將一連串二進制數(shù)據(jù)分成多個data item,如下所示: 

從上可知,每個data item第一個字節(jié)包含2部分:數(shù)據(jù)類型和數(shù)據(jù)長度,數(shù)據(jù)類型定義如下:

  • 0,正數(shù)
  • 1,負數(shù)
  • 2,字節(jié)串(byte string)
  • 3,UTF-8字符串(text string)
  • 4,數(shù)組
  • 5,map(又稱字典)
  • 6,tag(這個用得少)
  • 7,浮點數(shù)或者特殊類型,其中特殊類型將short count 20–23定義為 false, true, null和undefined

關(guān)于數(shù)據(jù)長度(count)字段,這個有點特殊,它的定義如下:

  • 如果長度為0–23,則直接用short count的5 bits來表示,從第2個字節(jié)開始表示data payload
  • 如果short count為24(0x18),則表示第2個字節(jié)代表長度,從第3個字節(jié)開始表示data payload
  • 如果short count為25(0x19),則表示第2和第3個字節(jié)合起來表示長度,從第4個字節(jié)開始表示data payload
  • 如果short count為26(0x1A),則表示第2,第3,第4和第5個字節(jié)合起來表示長度,從第6個字節(jié)開始表示data payload
  • 如果short count為27(0x1B),則表示第2至第9個字節(jié)合起來表示長度,從第10個字節(jié)開始表示data payload
  • 如果short count為31(0x1F),則表示長度為未定義,從第2個字節(jié)開始表示data payload,直到遇到停止符:0xFF

count字段后面就緊跟著data payload了,count有多大,data payload就有多長,比如count為0x0032,則表示后面0x32個字節(jié)都屬于data payload,至此一個data item結(jié)束,同時意味著另一個data item的開始,以此往復,周而復始。需要大家注意的是,CBOR中的data item可以嵌套另一個data item,也就是說,data item之間是可以有結(jié)構(gòu)的。

比如數(shù)據(jù)payload:64 64 61 74 61,0x64(0b011 00100)表示此data item的數(shù)據(jù)類型為utf-8字符串,長度為4字節(jié),即后面緊跟的64 61 74 61,這4個ASCII碼對應的字符就是:”data”,這樣我們就成功解析出這個payload了。

3.2.3 SMP包詳細解析示例

smp協(xié)議的核心就是通過包頭找到要處理該數(shù)據(jù)包的handler(命令),并把payload打包成一個特定參數(shù)傳給該handler,然后執(zhí)行該handler。

我們現(xiàn)在結(jié)合上面的定義,再看一個實際的smp數(shù)據(jù)包(包含包頭和payload),看看我們最終解析的結(jié)果是什么。

  • 00 00 00 02 00 01 00 00 bf ff

可以看出,nh_op為00,而nh_op定義如下,所以此時為read操作。

 

nh_group的值為0x0001,目前mcumgr支持的group ID見下圖,所以該數(shù)據(jù)包將觸發(fā)img_mgmt命令組。

 

nh_id為00,由于nh_group指向 image management group,而img_mgmt命令組定義了如下命令,可以看出00為IMG_MGMT_ID_STATE。

 

再次結(jié)合下面這個命令或者handler定義列表:

 

我們現(xiàn)在可以解讀出最終的結(jié)果:00 00 00 02 00 01 00 00  bf ff這個數(shù)據(jù)包將觸發(fā)img_mgmt組里面的IMG_MGMT_ID_STATE集里面的mh_read函數(shù),即img_mgmt_state_read,這個函數(shù)的定義是:

int img_mgmt_state_read(struct mgmt_ctxt *ctxt)

而數(shù)據(jù)包的payload,即bf ff,將作為實參賦給上面的ctxt。我們用CBOR編碼來解析一下bf ff,看看它表示什么意思?bf,即0b101 11111,可以看出,data type為5(表示map類型),count為0x1F(表示未定義長度,通過0xFF劃分data item);ff,根據(jù)前面的描述,此處應該是分隔符,至此一個data item結(jié)束??梢钥闯?,bf ff本身并沒有實際的意義,實際上img_mgmt_state_read也沒有使用輸入?yún)?shù):ctxt,兩者是可以對起來的。

3.2.4 SMP DFU流程

講完smp DFU工作原理,我們再講smp DFU整個工作流程,具體來說,包括如下幾步:

  1. 簽名升級image。注:app_update.bin已經(jīng)是簽過名的image
  2. 上傳image,即把app_update.bin傳送到目標設(shè)備
  3. 列出image以獲得image的hash值
  4. 測試image,即寫magic字段,以讓MCUboot進入DFU模式
  5. 復位設(shè)備,以重新進入MCUboot,從而MCUboot進入DFU模式,并執(zhí)行相應的swap操作,并完成兩個slot image之間的交換或者拷貝動作
  6. Confirm image,即新image啟動成功后,對其image_ok字段進行置1操作

上述有幾個步驟,可以通過發(fā)命令遠程去完成,也可以通過調(diào)用本地API自己去完成,兩種選擇都可以。比如confirm image這一步,你可以等待新image啟動成功,然后重連主機,主機再發(fā)“confirm image”命令,這個時候升級才算真正完成;也可以在新image啟動成功后,在不連主機的情況下,通過調(diào)用前述API:boot_write_img_confirmed()來完成這個確認過程。不管采用那種方法,本質(zhì)上都是調(diào)用boot_write_img_confirmed()來實現(xiàn),不同的是觸發(fā)方式或者時機,發(fā)命令的方式由主機遠程觸發(fā)(SMP DFU就是選擇這種主機遠程發(fā)命令方式),而本地API方式則是設(shè)備自己選擇時機來觸發(fā)(nrf dfu就是選擇這種本地API調(diào)用方式)。

DFU命令說明

當采用UART或者USB傳輸層的時候,上述DFU流程對應的命令如下:

  1. mcumgr conn add myCOM type="serial" connstring="dev=COM13,baud=115200,mtu=256"     (Note: change the COM if needed)
  2.   mcumgr -c myCOM image upload app_update.bin
  3.  mcumgr -c myCOM image list
  4.  mcumgr -c myCOM image test <hash of slot-1 image>
  5.   mcumgr -c myCOM reset
  6.  mcumgr -c myCOM image confirm

上面每一個命令就是一個request(請求),每一個request就有一個response(響應),通過這種request/response方式,SMP DFU可以安全可靠地完成DFU數(shù)據(jù)傳輸。

藍牙DFU流程解讀

當采用BLE作為傳輸層的時候,上面命令都被手機app打包成二進制數(shù)據(jù)包直接下發(fā)給設(shè)備端,但解析出來之后,你會發(fā)現(xiàn)藍牙DFU流程跟上面說明的流程基本上一模一樣。比如前面的00 00 00 02 00 01 00 00  bf ff,就是手機發(fā)給設(shè)備的第一條DFU命令或者說請求(request)。我們再舉一個例子:上傳image命令(request),它的第一個數(shù)據(jù)包示例如下所示:

 

從包頭02 00 00 eb 00 01 00 01可以看出,這個數(shù)據(jù)包將觸發(fā)handler:img_mgmt_upload,我們再來看數(shù)據(jù)包payload的前面8個字節(jié):bf 64 64 61 74 61 58 cc,bf表示后面是map數(shù)據(jù),即key/value數(shù)據(jù)對,0x64,表示后面是text string數(shù)據(jù),長度為4,從而得到64這個data item對應的payload為:64 61 74 61,即key=”data”;從0x58開始,就表示value這個data item了,0x58表示這個item為字節(jié)串并且長度為下一個字節(jié):0xcc,也就是說”data”這個key對應的value包含了0xcc個數(shù)據(jù)的字節(jié)流,這樣第一個key/value對解析完畢。然后再解析63 6c 65 6e 1a 00 02 05 a8,0x63,表示此item為text string數(shù)據(jù),長度為3,從而得到payload為6c 65 6e,即key = ”len”;0x1a表示此item為正數(shù),count為后面4個字節(jié),也就是說”len”這個key對應的value為0x000205a8,至此第二個key/value對解析完畢。以此類推,我們后面又可以解析出”sha”和”off”兩個key以及他們各自的value,最后碰到停止符:0xFF,整個map item結(jié)束。前面說過,整個數(shù)據(jù)包的payload會通過參數(shù)傳給img_mgmt_upload作為實參,img_mgmt_upload的函數(shù)聲明為:

img_mgmt_upload(struct mgmt_ctxt *ctxt)

而struct mgmt_ctxt定義如下:

復制代碼
struct mgmt_ctxt {

    struct CborEncoder encoder;

    struct CborParser parser;

    struct CborValue it;

};
復制代碼

實際上,SMP數(shù)據(jù)包payload所在的buffer地址將賦給成員變量it后面的指針(這個指針本身不屬于結(jié)構(gòu)體的一部分,但它緊挨著結(jié)構(gòu)體最后一個元素),這樣我們通過ctxt就可以間接操作SMP數(shù)據(jù)包的payload

請看如下代碼: 

rc = cbor_read_object(&ctxt->it, off_attr);

這樣我們就把一個image chunk拷貝到變量:req.img_data,再通過如下代碼調(diào)用Flash訪問API。

img_mgmt_impl_write_image_data(req.off, req.img_data, action.write_bytes, last);

如前所述,每一個request命令都會有一個response,比如上面request命令的response為:

  • 03 00 00 0d 00 01 00 01 bf 62 72 63 00 63 6f 66 66 19 09 40 ff

這樣,一個image chunk數(shù)據(jù)就成功寫入到Flash中,不斷循環(huán)這個request和response過程,直至整個image傳送完畢,最后主機還會發(fā)送如下兩條命令以正式結(jié)束整個DFU傳輸過程:

  • 02 00 00 32 00 01 00 00 BF 67 63 6F 6E 66 69 72 6D F4 64 68 61 73 68 58 20 47 7C C8 4B 52 27 23 03 DA 27 41 F1 1D 38 46 0F 11 AE DB 5E 75 A2 D3 25 0C 6E DE EF 15 84 24 49 FF,大家可以仿照上面的做法來解析一下這個數(shù)據(jù)包,它解析的結(jié)果是:調(diào)用img_mgmt_state_write,并寫入magic字段,同時將swap類型設(shè)為BOOT_SWAP_TYPE_TEST
  • 02 00 00 02 00 00 00 05 BF FF,這個包解析的結(jié)果是:調(diào)用os_mgmt_reset,對設(shè)備進行復位

3.3 nrf dfu協(xié)議

nrf dfu協(xié)議就是nRF5 SDK使用的DFU協(xié)議,相信很多讀者都很熟悉它。nrf dfu協(xié)議定義了兩個角色:controller和target,controller發(fā)request,target回response,一來一往,完成DFU傳輸過程。nrf dfu定義了如下request命令以及他們的response。

Request命令的格式是:Opcode + parameters,Response的格式是:60 + Opcode + parameters,比如編碼:01 02 00 10 00 00,通過上面解析可以知道它是一個創(chuàng)建數(shù)據(jù)對象命令NRF_DFU_OP_OBJECT_CREATE,而這條命令的響應是:60 01 01,可以看出也符合上面的定義。

nrf dfu用到了對象概念,什么叫對象(object)?對象分兩種:command object和data object,其中init包是command對象,而image chunk(image塊)是data對象。

我們可以進一步提煉一下,nrf dfu協(xié)議主要涉及的命令是如下幾個:

  • 選擇對象(NRF_DFU_OP_OBJECT_SELECT),用來選擇init包或者image包
  • 創(chuàng)建對象(NRF_DFU_OP_OBJECT_CREATE),用來創(chuàng)建init包或者一個image 4kB塊
  • 寫對象(NRF_DFU_OP_OBJECT_WRITE),即傳輸實際數(shù)據(jù)。由于藍牙將命令和數(shù)據(jù)分成兩個不同characteristic,寫對象其實就是寫數(shù)據(jù),是一個專門的characteristic:packet characteristic,因此發(fā)送寫對象命令時,就沒有必要加上Opcode,而是直接把數(shù)據(jù)寫到packet characteristic上。由于串口只有一個RX線,因此通過串口DFU的時候,寫對象命令還是有Opcode的。
  • 獲取對象的CRC(NRF_DFU_OP_CRC_GET),用來獲取前面init包或者4kB image塊的CRC值
  • 執(zhí)行對象(NRF_DFU_OP_OBJECT_EXECUTE),即把數(shù)據(jù)真正寫入Flash中

我們可以把nrf dfu流程大致歸納為如下幾步:

  1. 選擇init對象
  2. 創(chuàng)建init對象
  3. 執(zhí)行init對象
  4. 選擇image data對象
  5. 創(chuàng)建第一個4kB data對象
  6. 寫對象,即設(shè)備(target)循環(huán)接收主機發(fā)過來的image chunk,直至4kB
  7. 計算4kB image塊的CRC,并返回給主機(controller)以供其校驗
  8. 執(zhí)行4kB image塊對象,即將其寫入到Flash中
  9. 循環(huán)往復,直至整個image寫入完畢
  10. 寫DFU標志,并復位設(shè)備
  11. 復位后進入Bootloader DFU模式,Bootloader完成后續(xù)的拷貝工作,至此整個DFU過程宣告結(jié)束

這里就不再對nrf dfu協(xié)議進行詳細解讀了,有興趣的讀者可以自己查閱Nordic infocenter的相關(guān)章節(jié)介紹,具體鏈接為:https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v17.1.0%2Flib_dfu_transport.html

4. NCS DFU升級步驟說明

4.1 SMP DFU升級步驟說明

在nRF connect SDK中,有一個現(xiàn)成的smp DFU例子,它所在的目錄為:zephyr\samples\subsys\mgmt\mcumgr\smp_svr,這個例子支持多種傳輸層:藍牙,串口,USB CDC,UDP,Shell,F(xiàn)S等,如果使用藍牙作為傳輸層,其升級操作步驟如下所示:

  1. 進入項目目錄:cd zephyr\samples\subsys\mgmt\mcumgr\smp_svr
  2. 編譯:west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -p -- -DOVERLAY_CONFIG="overlay-bt.conf"(根據(jù)你自己手上的板子情況,把nrf52840dk_nrf52840換成其他DK,比如nrf5340dk_nrf5340_cpuapp)
  3. 燒寫:west flash -d build_nrf52840dk_nrf52840,此時設(shè)備將廣播“Zephyr”

 

4.修改原始工程,比如廣播名字(CONFIG_BT_DEVICE_NAME="NEW_DFU"放在overlay-bt.conf中),再重新編譯,然后拷貝“build_nrf52840dk_nrf52840/zephyr/app_update.bin”到手機版nRF Connect

 

5.用手機nRF Connect連接設(shè)備,成功后,點擊右上角的“DFU”圖標,選擇前面的“app_update.bin”文件,然后選擇“Test and Confirm”,DFU開始

 

 

 

6.升級文件傳輸完畢,系統(tǒng)將重啟

 

7.MCUboot完成swap操作,并跳到新app,廣播將變成“NEW_DFU”

 

 

8.手機nRF Connect連接新app,并發(fā)送confirm命令

9.至此整個升級結(jié)束

除了上述的smp_svr例子,我們還做了其他smp例子,這些例子都放在GitHub這里:https://github.com/aiminhua/ncs_samples/tree/master/smp_dfu。請大家仔細閱讀例子里面的readme,并按照readme去操作。

4.2 nrf_dfu升級步驟說明

這篇文章:詳解藍牙空中升級(BLE OTA)原理與步驟,詳細闡述了nrf dfu升級步驟說明,雖然文章是以nRF5 SDK為例來敘述的,但其步驟也適用NCS nrf dfu過程。我們在NCS中做了很多nrf dfu例子,他們都放在這里:https://github.com/aiminhua/ncs_samples/tree/master/nrf_dfu,我們以nrf_dfu/ble_intFlash為例來簡要闡述nrf dfu升級步驟,以幫助大家理解整個DFU過程:

1)      準備。

a. 安裝PC版nrfutil。nrfutil安裝有兩種方式,一種是直接下載exe文件,一種是以Python的方式進行安裝。nrfutil.exe直接下載鏈接為:https://github.com/NordicSemiconductor/pc-nrfutil/releases,記得把nrfutil.exe所在目錄放在Windows環(huán)境變量中。Python方式安裝nrfutil步驟如下所示:

    •  安裝Python,下載地址:https://www.python.org/downloads/,安裝成功后請確保Windows環(huán)境變量包含Python目錄 
    • 通過pip安裝最新版的nrfutil,即打開Windows命令行工具CMD,輸入如下命令:pip install nrfutil,即可以完成nrfutil的安裝。

安裝完成后,在Windows命令行工具輸入:nrfutil version,如果可以正確顯示版本信息,說明安裝已經(jīng)成功

對于Windows用戶,nrfutil運行需要幾個特殊的DLL庫,而這幾個庫有些Windows機器是沒有的,如此,可往:https://www.microsoft.com/en-us/download/details.aspx?id=40784下載

b. 進入nrf_dfu/ble_intFlash/sdk_change目錄,選擇你的SDK版本,比如ncs_v1.8.0,把nrf_dfu/ble_intFlash/sdk_change/ncs_v1.8.x下面內(nèi)容直接覆蓋nrf倉庫目錄

c. 建議大家對照例子里面的readme看一下還有沒有其他準備工作

2)      進入項目目錄:cd nrf_dfu/ble_intFlash

3)      編譯:west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -p (根據(jù)你自己手上的板子情況,把nrf52840dk_nrf52840換成其他DK,比如nrf5340dk_nrf5340_cpuapp)

4)      燒寫:west flash -d build_nrf52840dk_nrf52840,此時設(shè)備將廣播“Nordic_DFU”

 

5)      修改原始工程,比如廣播名字(CONFIG_BT_DEVICE_NAME="NEW_DFU"),再重新編譯,然后拷貝“build_nrf52840dk_nrf52840/zephyr/ app_signed.hex”到update目錄

 

6)      雙擊update目錄中的zip_generate.bat,將生成ble_intFlash.zip,將ble_intFlash.zip拷貝到手機nRF Connect中

 

7)      用手機nRF Connect連接設(shè)備,成功后,點擊右上角的“DFU”圖標,選擇前面的“ble_intFlash.zip”文件

  


8)      升級文件傳輸完畢,系統(tǒng)將重啟

 

9)      MCUboot完成swap操作,并跳到新app,新app自動完成image confirm操作

 

10)   此時廣播已經(jīng)變成“NEW_DFU”,至此整個升級結(jié)束

 

https://github.com/aiminhua/ncs_samples/tree/master/nrf_dfu這個目錄下面還有很多其他nrf dfu例子,建議大家可以好好看一下,按照里面的readme文件實際操作一下,相信對MCUboot和nrf dfu理解就會更深入了。

4.3 存儲器分區(qū)(多image情況)

不管是smp dfu還是nrf dfu,都存在secondary slot在內(nèi)部flash還是在外部flash情況,即ble_extFlash和ble_intFlash這兩個例子,兩個例子功能基本上一模一樣,唯一區(qū)別就是secondary slot所在位置,ble_intFlash這個例子secondary slot在內(nèi)部flash,ble_extFlash這個例子secondary slot在外部flash,這兩個例子的main.c文件一模一樣,唯一不同的是conf文件,以及分區(qū)文件partitions.yml。conf文件大家比較容易理解,但是分區(qū)文件大家經(jīng)常困惑,這里再給大家介紹一下,具體可以參考:開發(fā)你的第一個NCS(Zephyr)應用程序。

所謂分區(qū)(Partition),就是對Flash(包括內(nèi)部Flash和外部flash)或者RAM物理區(qū)域進行一個邏輯劃分,人為劃定哪塊區(qū)域干什么工作,比如把MCUboot這個image放在0x0000到0xC000這塊區(qū)域,這種分區(qū)是人為的,所以你可以隨意調(diào)整,比如你把MCUboot放在0x0000到0x10000,當然也是可以的。我們對Flash或者RAM進行分區(qū),目的就是為了把空間利用好,給各個分區(qū)一個ID以便后續(xù)引用,如果代碼里不引用這個分區(qū),那么此分區(qū)只是一個占位符而已,比如app和mcuboot這兩個分區(qū)。

我們先看一下smp_dfu/ble_intFlash這個例子生成的partitions.yml:

 

從上面可以看出,這個partitions.yml定義了很多分區(qū),比如app,mcuboot,mcuboot_pad,mcuboot_primary等(冒號前面的就是分區(qū)名),而且每一個分區(qū)規(guī)定了它的起始地址,結(jié)束地址,大小,相對位置以及放在什么物理存儲器上,比如app這個分區(qū):

 

關(guān)于分區(qū)名,只有“app”這個名字是必須有,而且是固定的,代表著主應用程序image;其他分區(qū)名,比如mcuboot,settings_storage,external_flash等,都是隨意定義的,可以修改。比如0x0~0xc000這塊內(nèi)部Flash區(qū),上面取名叫mcuboot,你也可以改成“my_boot”之類的名字,這個也沒關(guān)系的,取名字主要考慮兩點:一是能醒目標識這塊區(qū)域的功能,二是跟代碼里面的引用對起來,比如如下分區(qū)定義,經(jīng)常有人困惑:

 

第一個“external_flash”是分區(qū)名,第二個“external_flash”是物理存儲器名。作為分區(qū)名的“external_flash”,其實我們可以改成其他名字,以消除某些困惑,之所以使用這個名字,是因為老的littlefs例子里面對外部文件系統(tǒng)所在區(qū)域就稱為“external_flash”,代碼如下所示: 

復制代碼
FS_LITTLEFS_DECLARE_DEFAULT_CONFIG(external_flash);
static struct fs_mount_t fs_mnt = {
    .type = FS_LITTLEFS,
    .fs_data = &external_flash,
    .storage_dev = (void *)FLASH_AREA_ID(external_flash),
    .mnt_point = "/lfs",
};
復制代碼

實際上最新的littlefs例子已經(jīng)把這塊區(qū)域重新命名為:littlefs_storage或者storage,所以大家可以把這塊分區(qū)名改為littlefs_storage,如下:

 

partitions.yml里面使用的region其實是在這個文件:nrf\cmake\partition_manager.cmake定義的,大家可以通過build目錄下的regions.yml文件得知目前定義了幾個物理存儲器:

 

至于partitions.yml里面使用的placement/span等,這個是用來指定各個分區(qū)的相對位置的,很多人會疑問,既然指定了分區(qū)的起始地址和結(jié)束地址,那還有必要去指定各個分區(qū)的相對位置嗎?這種情況下的確沒必要再指定相對位置了,其實這里弄反了一件事情:partitions.yml里面的地址是placement相對位置定下來之后的結(jié)果。使用placement相對位置,為編譯系統(tǒng)動態(tài)確定各個分區(qū)的位置提供了便利。如果是我們自己來劃分存儲器的分區(qū),我們就可以直接使用絕對地址的方式靜態(tài)指定各個分區(qū)的位置(當然使用placement也是可以的)。

如何人為靜態(tài)指定?答案就是把剛才動態(tài)生成的partitions.yml文件拷貝到項目根目錄下,然后改名為:pm_static.yml,然后再按照自己的需求去修改,比如smp_dfu/ble_extFlash這個例子,如果由系統(tǒng)動態(tài)生成partitions.yml文件,此時mcuboot_secondary分區(qū)所在地址為0x0~0xf0000,而文件系統(tǒng)external_flash或者littlefs_storage分區(qū)所在地址為0xf0000~0x800000,實際上很多客戶喜歡把文件系統(tǒng)放在外部Flash 0x00地址,而把secondary slot放在外部flash最后,據(jù)此可以做如下修改:

 

這個pm_static.yml文件沒有定義的分區(qū),還是由系統(tǒng)動態(tài)分配。有時為了后續(xù)升級方便,我們會在pm_static.yml文件里面把所有的分區(qū)都按照自己的規(guī)劃重新定義一遍,這樣就不擔心某個image突然變大而導致新的partitions.yml跟老的文件不兼容,從而無法升級。在定義pm_static.yml文件時,有如下規(guī)則必須遵守:

  • mcuboot_primary大小必須等于mcuboot_secondary,而且CONFIG_BOOT_MAX_IMG_SECTORS最好也等于他們大小/4096
  • 如果使用了一個region(flash_primary這個region除外),那么這個region每一塊區(qū)域都要屬于一個分區(qū)名字,不能出現(xiàn)某塊區(qū)域沒有分區(qū)名字情況。比如上面重新定義了external_flash region,根據(jù)regions.yml文件定義,external_flash總共有8Mbytes,那么這8Mbytes都必須有一個分區(qū)名字,而我們定義的littlefs_storage和mcuboot_secondary兩個分區(qū)的確包含了全部8MB區(qū)域。如果我們定義littlefs_storage所在區(qū)域為0x0~0x700000,而mcuboot_secondary所在區(qū)域為0x710000~0x800000,那么系統(tǒng)就會報錯,因為這里還有一個空隙(gap):0x700000~0x710000是沒有取分區(qū)名字的。解決這個問題有兩個辦法:一個就是上面的方法把0x700000~0x710000劃到littlefs_storage分區(qū),一個就是給這塊區(qū)域?qū)iT取一個名字,比如:my_unused_area(見下面示意),也是可以解決問題的。

 

對于flash_primary這個region,由于系統(tǒng)默認認為必須要有一個“app”分區(qū),所以它可以存在而且只能存在一個空隙(gap),這樣系統(tǒng)默認這個gap就是“app”分區(qū)。當然你也可以把flash_primary所有區(qū)域都分好區(qū),包括“app”分區(qū)。

  • regions.yml文件里面各個存儲器的物理大小必須符合實際,這個通過修改dts文件來保證的。這里面最容易出錯的就是external_flash,external_flash的大小在regions.yml文件里面是以字節(jié)為單位(在kconfig文件里面也是以字節(jié)為單位的),但是external_flash對應的設(shè)備樹,比如MX25R64,它在dts文件里面是以bit為單位的,所以當大家使用其他外部Flash的時候,請仔細檢查這些size對不對
  • settings_storage,即settings使用的分區(qū),大家可以將分區(qū)名改成:storage,這是其一,其二settings系統(tǒng)最終使用的最大flash區(qū)域大小是由CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE決定,而不是settings_storage分區(qū)本身大小決定,所以建議大家把CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE的值設(shè)為settings_storage分區(qū)大小。
  • 至于RAM分區(qū),道理也是一樣的。這里需要注意的是,RAM各個分區(qū)的大小大家可以直接到dts文件里面去調(diào)整,而無需在pm_static.yml文件里面調(diào)整。當然,大家在pm_static.yml里面調(diào)整也是可以的,殊途同歸,達到目的就好了。對于nRF52系列,只有一個sram_primary分區(qū),這個沒什么好講的;對于nRF53系列,除了sram_primary這個分區(qū),它還有rpmsg_nrf53_sram分區(qū)以及pcd_sram分區(qū),其中rpmsg_nrf53_sram是用來藍牙協(xié)議棧host和controller之間進行雙核通訊的,而pcd_sram是用來升級網(wǎng)絡(luò)核image的。

5. 移植SMP DFU功能到peripheral_uart(NUS)

現(xiàn)在我們從零開始,一步一步教大家如何把smp服務(wù)添加到peripheral_uart例子中。

peripheral_uart例子所在目錄為:nrf\samples\bluetooth\peripheral_uart,這個例子跟nRF5 SDK里面的nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_uart功能一模一樣,都實現(xiàn)了著名的NUS服務(wù),即藍牙透傳服務(wù)。如前所述zephyr\samples\subsys\mgmt\mcumgr\smp_svr這個例子則實現(xiàn)了SMP DFU服務(wù),我們現(xiàn)在把smp藍牙服務(wù)移植到peripheral_uart上。

我們仔細查看zephyr\samples\subsys\mgmt\mcumgr\smp_svr這個例子,為了實現(xiàn)SMP DFU,主要修改兩個地方:一是修改prj.conf以包含相應模塊,二是修改main.c的初始化函數(shù)以初始化SMP相關(guān)模塊,prj.conf主要修改點如下:

復制代碼
CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_MCUMGR=y
CONFIG_MCUMGR_CMD_IMG_MGMT=y
CONFIG_MCUMGR_CMD_OS_MGMT=y
CONFIG_BT_L2CAP_TX_MTU=252
CONFIG_BT_BUF_ACL_RX_SIZE=256
CONFIG_MCUMGR_SMP_BT=y
CONFIG_MCUMGR_SMP_BT_AUTHEN=n
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2304
CONFIG_MAIN_STACK_SIZE=2048
復制代碼

我們把上述config加在nrf\samples\bluetooth\peripheral_uart\prj.conf文件最后,這樣prj.conf就改完了。                                                                                                 

main.c的修改就更簡單,在啟動廣播之前,我們加入如下初始化函數(shù):

            smp_bt_register();

            os_mgmt_register_group();

            img_mgmt_register_group();

                                       

就這樣兩步工作,輕輕松松就把SMP DFU服務(wù)移植到peripheral_uart上,整個代碼已經(jīng)上傳到https://github.com/aiminhua/ncs_samples/tree/master/smp_dfu/peripheral_uart,大家可以下載下來參考或者測試一下。

從上述例子我們可以看出,在NCS中移植一個例子非常方便,它不需要去添加c文件和頭文件,也不需要去修改編譯選項,還不需要去修改傳統(tǒng)的頭文件進行配置,僅僅修改conf文件和初始化函數(shù),就輕輕松松完成了整個移植,這也是NCS非常大的一個好處。

其實https://github.com/aiminhua/ncs_samples/tree/master/smp_dfu下面包含的例子都同時具備smp和nus兩個服務(wù),并且區(qū)分各種不同情形下的DFU情況,比如secondary slot在外部Flash,通過串口傳輸image等,同時其對peripheral_uart例子進行了小小改動,以更符合某些實際應用場景,建議大家好好看一下,相信對大家理解MCUboot和SMP會幫助不少。

6 手機端DFU參考代碼

Nordic不僅提供設(shè)備端的DFU參考代碼,同時提供手機端的參考代碼。Nordic分別開發(fā)了Android版和iOS版的DFU庫,大家可以直接拿過來使用,集成到自己的移動端app中,這兩個庫都放在github上,其中smp dfu對應的DFU庫鏈接如下所示:

關(guān)于smp DFU庫如何集成到自己的app,可以參考Nordic如下兩個app:

而nrf dfu對應的DFU庫鏈接如下所示:

Nordic還有一個移動端app:nRF Toolbox,nRF Toolbox是代碼開源的,里面也集成了上面提到的兩種DFU庫(iOS版同時支持SMP DFU和nrf dfu,而Android版僅支持nrf dfu),大家可以參考nRF Toolbox來開發(fā)自己的移動端app。nRF Toolbox源碼也可以在github上找到:

nRF Toolbox軟件界面如下所示:

   

噜噜免费在线欧美| 人妻诱惑无码专区?v| 天天摸夜夜添夜夜添| 久久高清毛片一级| 成人精品国产永久免费网站| 久久99九九99九九| 撕开她的乳罩慢慢揉捏亲吻视频 | 精品国产Av无码久久久不卡 | 久久99国产精一区二区三区| 香蕉大黄香蕉在线观看| ?久久一区二区三区精品视频| 国产一区二区丰满| 99久久er热在这里只有精品99| 黄色刺激视频免费在线观看| 91久久久久成人无码一区二区| 日韩欧美另类自拍一区| 真实的和子乱拍在线观看| 事物的秘密截取水中一段| 日本一本a不卡高清| 刻晴ちゃんが部下を什么意思| 香蕉视频app污污污| 午夜国产一区二区视频| 亚洲色偷偷综合亚洲?V| 超碰最新公开无码97廣大網友最新影片| 成品短视频app下载免费合集| 亚洲国产欧美一二三四区| 国产精品18p年美女网站色免费| 白丝M字开腿强制呻吟| 亚洲人成网站18禁止大| 日本高清在线观看| 99视频久九热精品| 免费VA国产欧美一区高清| 国产在线看老王影院入口2021| 国内少妇人妻精品视频| 免费成在人线无码| 饥渴少妇一区二区视频| 亚洲一区二区三区红桃视频| 国产手机在线精品亚洲| 91第四色国产在线视频| 欧美性爱乱伦视频| 久久黄色片三级片黄色网址| 婷婷精品国产av麻豆不片| 亚洲丁香婷婷久久一区二区| yiren22亚洲综合高清一区| 国产αV无码日韩αV无码网站 | 国产精彩美女久久| 久久99国产精一区二区三区| 变态另类国产欧美在线播放| 欧美在线一级va免费观看互動交流| 国产在线97免费观看| 欧美性猛少妇xxx| 国产经典影视网全集播放免费| 一区二区三区高清日本国产| 人妻人人操综合网| 欧美一级精品高清在线观看网站| 国产精品成人久久久久A级| 高清无码在线你懂的| 男男做a爱过程免费视频| 大骚妞国语对白骚| 色悠久久久久久久综合网| 奇米四色aⅴ在线视频| 蜜桃污视频APP下载| 大骚妞国语对白骚| 久久高清影视无码| 欧洲亚洲色一区二区色99| 在线日本国产成人免费的| 最新在线黄色网址国产一区二区| 另类国产第一在线| 自拍中文欧美三级| 2019久久综合网| 巨爆中文字幕巨爆区爆乳| 蜜臀va亚洲va欧美va天堂| 国产A∨国片精品美女视频| 国产成人无码精品露脸| 久久精品视频一级二级| 男人j桶女人p免费视频国产| 国产一二三区韩国女主播| 一本大道久久无码AV天堂| 国产成人高潮免费观看精品| 日韩av网址在线| 国产欧洲野花A级| 国产真人一区二区三区 | 亚洲?V高清一区二区三区| 日韩精品欧美成人国产不卡| 免费看黄在线观看网站| 天堂在线观看视频资源| av鲁丝片一区二区免费| 欧美亚洲成人精品在线| 波多野结衣中文字幕加勒比| 在线看片毛片国产| 国产成人精品亚洲A∨无人区一区| 久久久久人妻一区精品性色av| 2019国产三级在线观看| 在线视频国产日韩色欲| 免费AV淫乱毛片| 91九色精品国产一区二区| 欧美少妇一级婬片免费放 | 亚洲av成年人在线观看| 中国女人与动人物牲交| 日韩av在线播放乱码| 国产中文第一页在线播放| 日韩天天综合网| 在线观看不卡播放的av| 亚洲激情91大神在线观看| 亚洲av午夜精品人妻| 中文字幕乱码亚洲V日本1| 三根一起玩真的会坏掉 | 亚洲欧洲∨国产一区二区三区| 亚洲综合小视频| 自偷自偷国产在线播放| 青青草原视频这里只有精品久久| 五月天一区二区三区精品无码视频| 直接免费看黄色视频| 精品无码少妇30p| 夫の目の前犯中文字幕| 饥渴少妇一区二区视频| 亚洲日韩av在线不卡互動交流 | 成年视频人网站在线观看| 国产精品无码一区二区三区aaa| 亚洲一级毛片淫片| 经典国产三级在线观看| 国产精品日日摸免费看视频 | 五月丁香六月婷综合缴情在线| 真实的和子乱拍在线观看| 饥渴少妇一区二区三区| 午夜一区二区亚洲福利22 | 亚洲熟女一区| 成人无码视频在线观看免费播放| 性一交一乱一倫一视频| 中文国产无码日韩| 三级视频久久影院| 国产精品日韩一区在线| 欧美黄色片子午夜福利| 人妖亚洲一区二区| 正在播放宾馆少妇高潮大叫| 久久久久久亚洲精品美女| 国产αV国片精品一区二区| 国产毛片精品av一区二区| 国产精品性国产综合第一页| 中文国产无码日韩| 天堂网www种子中文在线| 一区二区日本网站| 高清亚洲精品aⅴ欧美日韩 | 日本A级毛不卡一区二区三区| 亚色中文91在线| 国产三级高清无码视频| 日韩精品视频在线一区二区三区| 在线 国产 一区二区| 亚洲 欧美 日韩 一区二区三区在线| 最新亚洲成人无码网站在线观看| 亚洲精品1卡2卡三卡4卡乱码| 高清无码人妻在线视频| 国产每日更新avv网站| 小乌酱女警双丝脚足在线看| 精品国产三级中文字幕| 成熟人妻AV无码专区A片| 老伦熟女一区二区三区红豆| 男女羞羞视频网站免费| 思思99精品国产自在现线| 国产成人久久精品流白浆下载| 亚洲av成人无码日韩久久精品| 青青草原视频这里只有精品久久| 亚洲女教师丝祙在线播放| 男人j进女人j啪啪无遮挡| 欧美日本一道一区二区三区| 精欧美一区二区国产三区| 97人妻碰碰碰久久久| 亚洲精品欧美精品| 国产一区二区三区中文字幕在线播放| 成人性大片免费观看网站yy一| 日本三级带日本三级带黄首页 | 五月六月丁香婷婷激情| 青青青91草字vip国产线观| 直接免费看黄色视频| 成人性大片免费观看网站yy一| 一本久道久久综合婷婷五月| 在线免费视频国产| 午夜性做爰aaaaa| 精品国产污的网站在线观看| 国内一级毛片成人七仙女 | 国产亚洲AV无码一区二区三区| 免费日本成人黄色| 中文字幕亚洲精品亚洲成人| 欧美三级在线观看不卡1区| 国产极品精彩视频在线| 97亚洲国产精品| ?愛妃?色婷婷六月亚洲综合香蕉| 第一亚洲国产成人网站| 国产中文在线视频| 国产亚洲精品久久久999| 亚洲风情无码五月天无码| 国产激情二区欧美三区| 久久精品国产片免费看| 日韩丝袜视频一区二区| 亚洲老师人人香蕉AⅤ| 九色在线亚洲自拍| 国产的3p高清在线观看| 亚洲一区二区三区少妇无码| 国产精品免费人成网站等最新內容| 欧美日韩人妻| 亚洲毛片无码专区亚洲乱| 国产视频不卡在线观看| 黑色丝袜脚足国产在线观看| 久久成人午夜视频| 国产性色强伦免费视频| 国产japanese在线播放| 一区二区三区免费视频 www| 中文字幕在线不卡一二三区超清| 亚洲 欧美 中文 AⅤ在线视频| 国产亚洲欧洲日韩在线91区| 亚洲午夜精品一区二区| 成人有声小说有哪些| 久久亚洲综合精品人妻| 一道本不卡的日韩高清av| 在厨房征服美丽领导夫人| 久久伊人免费观看| 在线A级毛片无码免费真 | 国产高清无码大学生| 国产又爽又黄免费下载| 日韩欧美成人综合| 夫の目の前犯中文字幕| 亚洲精品有码在线观看| 五月婷综合网| 久久国产午夜精品一区二区三区 | 国产视频永久a级毛片| 最新高清无码在线a√| 国产丝袜在线精品丝袜导航| 暖暖免费高清在线观看一区二区 | 国产欧美在线一区二区视频| 亚洲av无码乱码在线观看性色扶 | 极品嫩模高潮叫床视频| 国产成人剧情av一区二区| 玩弄初次红杏出墙少妇| 国产理论午夜三级在线观看 | 码精品一专区| jiuse国产精品视频| 性奴调教在线观看视频1区2区 | 亚洲V日韩V精品v无码一区二区| 另类图片一区二区三区久久久| 一道本不卡的日韩高清av| 久草热视频免费的网址| 800av在线免费观看| 久久99日韩中文字幕| 国产户外调教视在线播放| 三根一起玩真的会坏掉| 在线观看AV永久免费手机| 久久超碰一区二区三区| 狠狠色丁香久久综合网| 免费观看欧美一级牲片| 午夜欧美午夜激情在线观看| 在线A级毛片无码免费真 | 日韩高清在线播放不卡| 欧美V国产V日本V| 中文字幕在线欧美| 无码一区二区三区av免费可不| 国产真实迷j在线观看网站 | 亚洲AⅤ无码一区二区波多野BT | 亚洲黄色免费网站| 曰本熟妇毛葺葺XXXXX电影| 三级视频黄色| 黄片一区二区三区| 亚洲AV美日韩AV丝袜美腿| 国产精品免费人成网站等最新內容| 娇妻被邻居灌满精h| 日韩欧美黄色一级视频| 真实的和子乱拍在线观看| 性福导航在线短视频| 欧美亚洲成人精品在线| 久久精品夜色av| 日本有码在线观看| 国产精品不卡在线看| 亚洲国产成人精品无码区蜜| 妓女在线一区二区三区| 波多野结衣高潮喷水在线观看 | 张婉莹视频暑假作业网站 | 久久精品香蕉| 日产精品一线二线三线区人妻激情偷乱视频一区二区三区 | 国产欧美在线一区二区视频| 91热久久免费频精品16| 国产αV无码日韩αV无码网站| 国产av无码精品色午夜| 入禽色网视频免费看| 麻豆一區二區三區av| 国产精品九九精品久久免费 | 五月丁香激情视频在线免费观看| 九九99香蕉精品| 毛片免费网站| 永久免费精品人人视频| 亚洲天堂精品福利国产一区| 国产日产成人免费视频| 国产一级精品精品一级毛片| 国产a∨精品一区二区久久| 久久影音第一页午夜| 欧美日韩激情精品蜜桃| 米奇影院日韩免费| 精品无码综合高清| 久久久精品欧美潮喷三级| 日本高清一区二区久久| 在线一区二区三区国产| 欧美丰满大乳大屁股a片| 欧美一中文字暮不卡| 好吊色免费在线视频| 日本无卡码高清免费v在线| 日韩av无码成人无码免费| 亚洲无码免费在线观看视频| 亚洲经典一区二区的| 黄片小视频久久| 在线看片免费人成视频久试看| 久热国产v视频在线观看| 中文字幕人妻精品一区| 亚洲精品国产av失美传媒| 亚洲天堂视频在线观看视频| 久久91亚洲精品中文字幕奶水| 一本大道香蕉视频大在线| 好吊色免费在线视频| 精选国产网站无码不卡| 国产女主播勾搭外卖在线播放| 国产一区二区亚洲污在线观看| 日韩 欧美 国产 综合 在线| 国产成人综合色在线观看| 熟女分类香蕉视频黄网站| 最新亚洲中文字幕不卡| 岛国午夜一级毛片网站| 成年人小视频免费在线观看| 久久黄色片三级片黄色网址| 久久久久成人精品| 久久99精品波多结衣一区| 国产精品亚洲专区无码WEB| 老色鬼永久无码精品免费视频| 亚洲av老熟妇在线| 自慰喷潮国产在线观看| 国精产品一二三四区产品| 亚洲激情人妻| 免费大片一级a一级久久漫画| 高清无码人妻在线视频 | 国产又大又粗又长在线无码视频| 国产精品成人超久久久| 国产好痛疼轻点好爽的视频| 成年人毛片在线观看| 无码精品亚洲日韩中文字幕| 欧美一区二区淫片| 欧美性与交视频在线观看| 国产亚洲午夜福利在线在线视频| 国产自产2024最新麻豆| 国产在线不卡福利一区二| 欧洲精品伦理一区二区| 亚洲欧美国产卡通动漫| 久久视频精品3线视频在线观看| 噜噜综合亚洲āv中文无码| 欧性美掹交69式ⅩⅩⅩXXX| 能看女生隐私的软件| 亚洲丁香婷婷久久一区二区| 五月丁香六月婷综合缴情在线 | 无码免费h成年在线观看h| 日韩免费看视频三区中文字幕| 无码人妻高清碎红楼| 精品偷自拍另類在線觀看| 污污污的视频网站| 综合激情久久婷婷| 码精品一专区| 公交车大龟廷进我身体里图| 国产午夜精品视频| 最新国产不卡无码一区二区| 男人又大又硬又粗好爽视频| 亚洲欧美国产日本在线观看| 免费欧美在线观看少妇| 久久国产乱子伦精品免费草莓 | H性视频在线播放| 中日韩欧美一中文| 岛国午夜一级毛片网站| 精品无码制服丝袜自拍APP欧美| 成人免费无码大片| 二攻一受4p嗯啊巨肉寝室| 國產成人精品三級麻豆| 让你变得红润中文字幕无码免费不卡视频| 在线A级毛片无码免费真 | 暖暖免费高清在线观看一区二区| 老少配XXX性老少配| 免费的特黄A级毛片| 国产午夜成年免费视频| 高清精品中文综合| 日韩精品免费观看大全网站视频 | 欧美亚洲成人日韩| 久久久久久九九| 日本不卡一区更新二区| 国产精品性国产综合第一页| 国产亚洲综合欧美一区二区| 密桃午夜精品福利一巨二区三区| 日韩钻石无码专区| 成人在线观看日韩网站| 久久99九九99九九| 日本高清不卡视频一区二区三区| 亚洲AⅤ无码午夜福利精品一区| 中日韩欧美国产一区二区三区| 亚洲综合在线5区| 亚洲精品国产av失美传媒| 亚洲AⅤ无码午夜福利精品一区| 国产最新婷婷综合一区| 2019国产三级在线观看| 13萝自慰喷白浆| 777米奇影院在线观看| 乱伦亚洲欧美中文| 亚洲国产人在线| 黄片无码中文字幕免费高清| 国产亚洲视频在线观看视频在线 | 人与人恔配视频免费看| 欧美亚洲精品二区久久久| 日本强乱中文字幕43页在线| 欧美日韩一区二区三区视频播放9| 亚洲综合无码色噜噜狠狠爱| 无码一区二区三区亚洲人妻| 最新国产不卡无码一区二区| 扒开jk制服双腿进入| 亚洲男人的午夜天堂| 午夜片无码ab区在线观看| 亚洲熟女系列精品之熟女中文字幕| 久久无码精品福利海天翼| 国产美女爽到高潮嗷嗷叫| 午夜1区2区3区4区5区入口| 大香j蕉75久久精品免费8| 久久久国产片精品| 国产无遮挡又爽又刺激的在线观看| 中文字幕无码笫一页| 成人日韩在线中文字幕有码| 欧美V国产V日本V| 97色伦综合在线欧美视频| 国产黄色片免费播放| 国产欧美亚洲网站| 老司机午夜福利免费视频| 国产一级 级内射视频网站| 国产美女在线一区二区| 91九色精品国产一区二区| 国产人成高清在线99| 国产欧美曰韩久久久| 夜夜嗨亚洲国产糸列久久精品| 三级视频黄色| 中文文精品字幕一区二区| 午夜视频欧美| 狼人精品一区二区无码视频| 伊人久久九九热综合网| 欧美日批在线观看视频 | 精品国产自在在线| 成年视频人网站在线观看| 一级黄片视频直播无码| 自偷自偷国产在线播放| 久久婷婷五月天激情综合网| 综合激情久久婷婷| 欧美亚洲丁香五月社区| 91精品手机国产在线能| 国产欧美一区二区三区在线播放 | 极品福利视频| 国产v在线在线观看视频免费| 91久久无码一区人妻A片蜜桃| 精品一区二区三区高清av| 天天躁夜夜躁狠狠综合20| 国产A∨国片精品美女视频| 免费黄片免费看久久| 欧美日韩国产午夜激情| 国产成年人无遮挡| 成人日韩在线中文字幕有码| 无码极品人妻| 男女生免费差差的在线小视频| 国产免费成人一区| gay男生露j网站| 欧美美女性爱喷水网址| 五月六月婷婷| 国产AV无码精品国产精品| 国产v综合ⅴ日韩v欧美大片| 国产v在线在线观看视频免费| 亚洲日韩高清蜜芽在线观看| 人人爽人人草| 成人免费毛片精品推荐| 香蕉521av在线观看| 国产99一区二区三区高清视频| 国产午夜成年免费视频| 国产一级一级特黄女人精品毛片| 亚洲啪在线午夜福利| 青青自拍视频| 久久无码一区二区二三区性色| 亚洲精品人成三区| 国产女主播三级在线观看| 亚洲欧洲国产激情在线| 亚洲经典一区二区三区| 国产成人啪精品网站| 亚洲精品人成三区| 天天摸夜夜添夜夜添| 亚洲av秘无码国产精品一区| 一二三四影院网在线观看免费互動交流| 亚洲欧美日本在线一区麻豆| 国产自产2024最新麻豆| 日本成人免费观看| 国产玖玖玖精品视频| 99re在线这里只有精品| 欧美日韩偷拍一区二区三区蜜桃| 久久成人激情免费视频| 制服丝袜无码人妻日韩一区| 在线观看免费av无码不卡| 韩国电影爱的色放在线观看| 中文字幕爱爱| 亚洲国产精品欧美日韩| 亚洲一二三区天堂久久久| 久久中文字幕久久无码最熱門最齊全電影!| 国产精品视频免看一级?| 直接免费看黄色视频| 欧美真做精品三级免费观看| 久久久久成人精品| 国产麻豆剧传媒精品国产?V| 一区二区三区免费视频 www| 东北老熟女高潮大声叫痒视频| 在线免费亚洲欧美| 亚洲av成人无码日韩久久精品| 久久高清毛片一级| 中国农村野战freesexvideo| 国产av无码精品色午夜| 欧美成人经典一级在线观看| 制服丝袜无码人妻日韩一区| 亚洲日韩不卡在线| 国产成人精品免费直播| 辣妹子影院电视剧免费播放| 九九99香蕉精品| 九色在线亚洲自拍| 国产在线视频大学生白嫩| 欧美午夜三级理论| 成人网站亚洲欧美| 日出水了好深好涨h文| 高清在线观看最新电影和热门影视剧| 青青亚洲国产成一综合在线| 国产白嫩极品白嫩在线观看| 天天操视频 夜夜| 国产xxx视频在线观看| 日韩禁区视频在线观看直播免费 | 宝贝你的小缝好紧好滑| 欧美日韩亚洲精品成人| 高潮胡言乱语熟女国产| 亚洲三级毛片免费视频国语| 亚洲 欧洲 日韩 综合AV| 欧美黄色大片在线观看| 成人午夜福利剧场一区二区| 国产一级在线一级播放| 2012精品视频在线观看免费毛片 | yiren22亚洲综合高清一区| 16—17女人毛片毛片同性| 成人免费毛片精品推荐| 午夜一区二区亚洲福利22| 国产欧美日韩麻豆三级| 香蕉青草久久成人网| 欧美精品成人在线| 琪琪视频在线观看伊人| 无码一区二区免费波多野播放搜索| 日韩精品无码免费专区网站| 局长揉着秘书的双乳h文电影| 欧美高清黄片永久免费| 国产精品嫩草影院99| 成人精品国产永久免费网站| 亚洲AV午夜成人无码网站色优 | 高清国产黄a毛片| 欧美中文字幕精品一区| 久久国产精品99丁香婷婷| 亚洲国产激情无码久久久久久| 四虎永久在线精品免费网址观看| 高清无码爆乳护士在线播放| 伊人思思久99久女女精品视频| 色噜噜亚洲一本在线视频| 国产欧美一区二区三区在线播放| 国产美女在线免费福利| 免费网站永久入口视频| 国产极品精彩视频在线| 精品国产电影在线| 激情四射婷婷| 国产视频在线观看福利| 国产色综合久久| 青青青免费国产在线视频 小草| 久久国产精品娇妻素人| a欧美日韩在线不卡视频| 老司机午夜福利免费视频| 巨爆中文字幕巨爆区爆乳| 97高清无码视频在线| 欧洲成品大片在线播放| 成人区人妻精品一区二区不卡不卡| 潮喷中文字幕在线精品无码 | 中文字幕国产片视频在线观看| 人妻人人捏捏人人揉揉| 亚洲第一大综合区日韩无码人妻电影 | 国产99在线男女一级大黄| 免费网站美女被敢在线观看| 亚洲不卡精品在线| 成年女人免费毛视频| 白丝在线喷水免费| 国产成人久久精品流白浆下载 | 国产精品V?在线播放我和闺蜜| 男妓用舌头舔我高潮不退小说| 国产三级爽死你个荡货| 999精产国品一二三区| 久久婷婷色香五月综合激情| 久久黄色免费电影| 免费看裸裸体美女啪啪无遮挡| 中文字幕码一二三区在线| 日韩中文字幕在线不卡网址| 超碰在线97中文| 精品国产一区二区在线| 人妻公交被从后面进去| 亚洲av无码av男人的天堂| 少妇人妻无一区二区三区| 成人AAA级免费视频| 特黄特色大片免费视频app| 日本最新一区二区网站视频 | 都是在线观看无码精品| 亚洲欧美久久精品中文字幕| 欧美一区二区午夜福利在线观看 | 欧美精品九九99久久V视界| 女被啪到深处GIF动态图| 大骚妞国语对白骚| 五月丁香六月婷综合缴情在线 | 久久麻豆亚洲av电影| 国产下药迷倒白嫩丰满美女bd| 婷婷丁香五月综合在线| 任我橹在线视频精品| 99vv1在线看国产| 久久99精品波多结衣一区| 神马老子影院午夜伦| 欧日韩av一区二区三区四区| 国产永久免费观看黄网站| 午夜宅男永久在线观看| 日韩精品不卡国产| 任我橹在线视频精品| 免费网站永久入口视频| 日本妞高清毛茸茸| 欧美日本韩国精品一区二区| 久久精品国产亚洲av高清片五虎| 亚洲美女在线视频专区| 理伦片理伦影院| 国产校花露脸在线观看| 性欧美videofree高清杂交| 免费黄色电影在线观看| 婷婷无码在线视频| 超碰97国产欧美中文| 真正国产ts人妖系列视频| 亚洲AV无码专区在线观看网页| 免费黄片大全www| 大屁股迷人少妇在线观看| 亚洲无码动漫在线观看视频| 午夜福利美女网站观看| 积积对积积桶免费网站入口软件| 免费看裸裸体美女啪啪无遮挡| 国产精品永久免费无遮挡| 亚洲国产中文无码视频在线观看| 国产极品91在线免费观看| 小乌酱女警双丝脚足在线看| 精美久久久久久人妻字幕| 久久久久人妻一区精品性色av| 男人j桶女人p免费视频国产| 卡通动漫亚洲综合第一页| 欧美性猛少妇xxx| 欧美一级性爱A级| av无码人妻波多野结| 欧美性猛少妇xxx| 无码三级视频xxxx69| 精品国产午夜在线观看| 久热国产区二三四| 日韩精品专区一二三区| 亚洲欧美日韩卡通另类| 91精品国产?ⅴ在线观看入口| 久久精品國產亞洲AV成人| 欧美高清在线精品一区| 亚洲欧美激情在线观看91| 伊人思思久99久女女精品视频| 777米奇影院在线观看| 欧美高清在线精品一区| 越狱犯强奷漂亮人妻| 国产91精品久久久久久久| julia中文字幕在线观看| 男妓用舌头舔我高潮不退小说| 精品精品欲天堂| 免费A级毛片在线播放不收费..| 欧美性大战xxxxx久久久| 欧美日韩精品成人在线| 亚洲欧洲中日韩手机在线床| 日韩一级在线视频| 国产不卡一级无码视频| 亚洲波多野结衣一区二区三区| 小乖乖糙汉粗口h文1v1视频| 91精品无码国产一区二区| 337p日本欧洲噜噜噜噜| jiuse国产精品视频| 91精品国产无线乱码在线观看 | 亚洲日韩中文字幕一级在线播| 久久國產精品1區2區3區網頁| 再深点灬舒服灬太大了添小书| 亚洲精品成人无限看| 韩国草草久久久无码国产专区| 亚洲三级毛片女人18水好多| 亚洲呦呦免费| 免费一区二区视频| 在线免费亚洲欧美| 又粗又硬又长又爽免费视频| 二人剧烈运动扑克网站真实| 亚洲国产日韩精品二三四区91| 亚洲AV秘 无码一区牛牛影视| 亚洲色大成网站www同| 久久偷拍视频大全| 中文字幕爱爱| 欧美一级午夜片在线观看| 欧美浓毛大泬视频| 国产免费av片久久久| 欧美 激情 另类 自拍| 午夜福利波多野结衣| 久久精品国产精品第一区| 18成人片黄网站WWW| 国产精品日日摸免费看视频| 亚洲欧美日韩 第一区| 高潮喷水香蕉视频色| 中文字幕有码专区在线视频| 婷婷丁香五月综合在线| 国产成人久久精品二区三区爱涩 | 成人十八禁影院在线观看| 国产日韩精品一区二区在线观看| 精品成人AV一区二区在线播放| 超碰最新公开无码97廣大網友最新影片| 日韩禁区视频在线观看直播免费| 国产v在线在线观看视频免费| 国产欧洲野花A级| 国产精品九九精品久久免费 | 91精品成人综合| 免费精品无码毛片视频在线播放| 日韩AV天堂久久无码| 潮喷中文字幕在线精品无码 | 精选国产一区二区三区| 国产无套粉嫩白浆内射在线| 99精品视频只有精品高清6| 亚洲欧美精品网站| 国产探花精品一区在线| 国产精品一区免费在线观看| 粉嫩在线资源视频| 国产一区二区三区中文字幕在线播放 | 18禁在线永久免费观看黄| 国产美女嫩模午夜福利| 狠狠躁天天躁综合网| 亚洲一区二区三区少妇无码| 久久精品国产亚洲av无码成都| 亚洲欧美日韩一区久久五月丁香| 午夜人成免费视频观看| 国产精品初高中害羞小| 国产肉丝精品视频一区二区 | 超prom国产在线观看| 被体育老师抱着c到高潮| 91亚洲一区二区| 狠狠躁天天躁综合网| 午夜刺激爽爽视频免费观看| 在线看片免费人成视频久试看| 久青青国产综合视频在线观看| 中文字幕人妻熟人妻丝袜美| 久草免费福利资源视频在线观看| 精品国产无码精品毛片| 无码三级视频xxxx69| 国产粉嫩泬一区二区三区| 91香蕉视频黄下载| 亚洲国产日韩欧美综合79146| 亚洲欧美日韩激色国产精品| 97亚洲国产精品| 免费网站永久入口视频| 国户精品久久人妻无码hd| 成在线人视频免费视频| 国产剧情18禁免费网站| 国产麻豆午夜在线| 成人综合婷婷国产精品| 国产一区二区乐插| 欧美日韩国产系列播放在线观看| 日韩欧美一级特黄大片| 日韩亚洲欧美香蕉精品区| 亚洲国产日韩精品二三四区91| 亚洲最大色大成www网站| 日本一卡二卡四卡无卡乱码视频免费| 中文字幕日韩一区二区三去不卡| 日韩一区二区精品图片| 精品日产1区2区| 女被啪到深处GIF动态图| 亚洲国产国产一区二区三区| 国产黄片动漫版在线观看| 亚洲国产一区二区三区中文字幕影视日韩精品 | 激情五月婷婷无码电影| 毛片免费网站| 人人爽视频免费公开| 日本免费不卡在线观看的NV| 国产成人精品免费直播| 久久久久久一级毛片| 亚洲欧美色图多人轮换| 亚洲 欧洲 日韩 综合AV| 欧美麻豆乱伦中文字幕| 久久久综合东京热| 国产日韩精品一区二区在线观看 | 成人的天堂视频一区二区三区 | 亚洲不卡精品在线| av永久国产在线导航导航导航| 国产大学生一区二区三区| 黄片观看一区二区在线免费三级片| 尤物在线一区二区三区| 欧美人与物ⅴideos另类| 边做饭时猛然进入高H| 亚洲国产精品欧美日韩| 免费VA国产欧美一区高清| 狠狠色丁香婷婷综合五月| 欧美日韩精品区久久久| 成人有声小说有哪些| 乱码视频在线播放专区| 免费网站美女被敢在线观看| 亚洲一区二区三区久久久久久天堂| 欧美久久综合九色综合| 欧洲成品大片在线播放| 大屁股迷人少妇在线观看| 日韩欧美手机在线观看第一页| 国产美女一级做视须爱| 国产成a人大片在线观看| 2012精品视频在线观看免费毛片| 国产在线97免费观看| 国产又色又爽又黄刺激的大片| 在线观看视频中文字幕你懂的| 国产精品成人久久久久A级| 美女毛片免费视频| 久久久精品一区二区视频| 国产一区免费公开在线观看| 人妖亚洲一区二区| 在线观看精品免费三级| 精品黑人一区二区三区| 日韩三级黄色av| 免费国产成人高清在线视频| 337p日本欧洲噜噜噜噜| 國產在線精品一區二區不卡頓 | 欧美亚洲变态另类重口在线| 高清国产黄a毛片| 国产视频第四页在线观看| 欧美在线播放不卡| 亚洲国产欧美一二三四区| 日韩精品午夜无码专区福利| 欧美熟妇乱伦色网视频 | 久久久亚洲精品国产亚洲áV女同| 激情在线观看污视频| 97久久精品人人槡人妻人人玩| 国产精品亚洲精品久久品尚网| 国产精品一区二区色欲x99| 久久成人午夜视频| 无码专区人妻视频在线| 国产成a人大片在线观看| 337p日本大胆欧美人术艺术68 | 亚洲经典一区二区的| 日韩在线视频在线| 亚洲一区二区AV人片在线观看| 国产成人剧情av一区二区| 国产香蕉日韩线精品视频| 日韩欧美精品一区在线播放| 919191精品人妻无码电影| 精品国产三级片| 久久亚洲欧美国产日韩导航| 久久av影院免费观看| 国产日韩在线永久免费观看?v| 黑人巨大av无码专区在线| 久久亚区不卡日本| 亚州毛片1234也解说| 国产欧美一区二区三区在线播放 | 小草在线久草视频免费播放 | 37pao成人国产永久免费视频| 国产在线不卡国产高清| 日产无人区一线二线三线观看| 91久久国产丁香| 天天av影院免费看网址| 四虎影院在线网址| av视频在线观看撸| 久久精品亚洲免费视频| 欧美极品少妇×xxxbbb| 粗大猛烈进出高潮视频大全| 久久国产一级137片| 国产乱码精品一区二区跑去四川人| 亚洲一区二区AV人片在线观看 | 亚洲AV日韩AV无码喷潮下载| 征服好友的保守人妻| 久久久夜色精品国产欧美乱| 国产视频一区在线观看一区| 人妻公交被从后面进去| 激情图片qvod国产一区二区| 久青青国产综合视频在线观看| 麻豆激情久久av| 欧美中文字幕在线视频区| 亚洲无码中文字幕色网视频| 97高清无码视频在线| 妖精视频成人精品日韩一区| a毛片免费播放完整版| 少妇人妻精品午夜无码| 亚洲国产嫩草在线视频| 超碰最新公开无码97廣大網友最新影片| 尤物在线一区二区三区| 在线观看有码无码| 国产精品一区二区在线欢| 经典国产三级在线观看| 无码一区二区三区av免费可不 | 欧美国产日产一区二区三区| 一级毛日本特黄网站| 亚洲日韩av在线不卡互動交流| 亚洲成人áv在线一区久久精品 | 疯狂做受xxxⅹ高潮男女韩国| 三级片黄色国产在线| 妖精网站免费黄色视频| 8090yy亚洲人精品久久| 精品动漫视频第一页| 成人免費一區二區三區| 欧美一区二区淫片| 另类图片一区二区三区久久久 | 欧美一区二区淫片| 国产美女爽到高潮嗷嗷叫| 免费看片A级毛片免费| 成年人视频在线免费| 特级天码a级毛片特黄| 國產人成精品免費視頻| 一区二三区国产中文字幕播放| 日韩高清无码中文字幕综合一二三区 | 免费无码高清综合| 欧美日韩国产在线、| 亚洲中文无码不卡| 日本一区二区免费视频播放| 亚欧洲乱码视频在线专| 精品少妇人妻系列无码| 九九性爱视频免费看| 日本久久久久精品免费| 日本免费高清一区二区三区视频| 人妻无码不卡在线看| 分腿吊起来抽打中间的视频| 日韩精品免费观看大全网站视频| 午夜国产一区二区视频| 欧美一区二区三区开放视频| 午夜福利+无码+自拍| 欧美成人生活v片观看| 四虎永久在线精品免费视频观看| 亚洲?V高清一区二区三区| 國產A√精品區二區三區四區| 蝴蝶谷成人网| 无码人妻精品一区二区三区?v片| 日韩一区二区精品图片| 亚洲AⅤ无码一区二区波多野BT| 神马影院秋霞一区二区三区| 久久久久成人精品| 日韩欧美手机在线观看第一页| 色色色激情五月天| 精品人妻1080PYW尤物| 亚洲精品成人片在线观看精品| 亚洲成人欧美一区二区| 欧美日韩精品一品二区三区| 国产激情二区欧美三区| 亚洲欧美在线不卡| 91久久精品人人搡人妻人 | 日韓亞洲不卡在線視頻中文字幕在線觀看 | 日本亚洲欧美激情| 欧美黄色片子午夜福利| 日韩免费午夜视频| 久久久综合东京热| 国产日韩欧美精品区性色| 三级视频黄色| 成人国产片女人爽到高潮免费 | 久热最新视频| 国产一级精品精品一级毛片| 亚洲三级香港三级久久| 欧美日韩午夜电影| 激情亚洲一区国产精品婷婷九月| 欧成人毛片一区二区三区| 软萌小仙女自慰粉嫩小泬网站| 久久国产精品成人av| 日韩人成免费网站大片| 男人强撕开奶罩揉吮奶头视频| 一个人看的片在线WWW免费中文| 中文字幕人妻一区二区三| 九色在线亚洲自拍| 高清无码在线你懂的| 国产一级在线一级播放| 人人爽视频免费公开| 精品久久久久成人无码免费| 天天视频在线91频| 少妇高潮呻吟在线观看网站| 欧美高清黄片永久免费| 手机最新入口婷婷激情免费| 国产国拍精品av在线观看按摩| 97色伦综合在线欧美视频| 青草99精品欧美国产| 亚洲日韩国产福利专区| 影音先锋亚洲熟女av网| 人妻蜜肉动漫中文| 饥渴少妇一区二区视频| 日本一道本不卡免费| 亚洲欧美国产中文视频一区色偷一区国产精品 | 午夜在线不卡精品国产秋霞| 精品国自产拍天天青青草原| 欧美精品亚洲精品日韩精品一| 午夜福利+无码+自拍| 成人在线国产调教视频| 亚洲日韩精品制服丝袜AV| a级别无码高清黄色电影| 久久久无码精品亚洲日韩下载| 青青国产愉拍视频| 无码免费永久在线观看乱妇| 国产精品嫩草影院99| 日韩av在线观看国产成人精品白浆久久69 | 久久人人超碰av| 人妻18毛片a级毛片免费看| 香蕉国产偷在线| 国产 香蕉 av 在线| 水中色av综合站| 一二三四影院网在线观看免费互動交流| 337p日本大胆欧美人术艺术68| 5a级动作片在线观看| 国产又大又粗又黄专区| 国产成人无码AA精品区| 日韩AⅤ在线免费观看| 国产裸体美女视频| 明星mv换脸造梦视频大全| 亚洲精品十八禁在线| 亚洲av成人影院在线观看| 亚洲国产国产一区二区三区| 高清无码在线你懂的| 妖精网站免费黄色视频| 囯产熟女视频精品免费看| 久久99久国产精品黄毛片色诱 | 五月婷综合网| 国产怡红院在线观看福利| 在线日本看片免费人成视久网 | 日韩中文字幕在线不卡网址| 日本一区二区三区精品中文字幕| 91精品手机国产在线能| 惠民福利亚洲欧美日韩成人综合网| 午夜欧美午夜激情在线观看| 美国农夫导航| 欧美一区二区淫片| 青草99精品欧美国产| 国产婷婷色一区二区三区青椒影视| 日韩人妻制服av| 亚洲一区二区三区高清在线视频| 欧美熟妇与黑人777ey| 欧美国产日韩久久| 成人ai一区综合| 欧美日韩偷拍一区二区三区蜜桃| 國產A√精品區二區三區四區| 91无码在线观看| 久久久婷婷婷| Free熟女裸体舞HD| 国产精品97影院激情偷乱人伦一区| 最新国产不卡无码一区二区| 亚洲人成网站18禁止大| 乱伦亚洲欧美中文| av视频在线观看撸| 欧美高清性色生活片免费观看| 无码免费视频国产片的 | 黄片无码中文字幕免费高清| 无码啪啪精品一区二区三区| 自偷自偷学生自拍另类图片| 去部队喂饱老公起不了床| 欧美午夜免费福利视频| 国产在线视频大学生白嫩| 精品欧美在线视频| 午夜激情在线观看国产| 久久极品盛宴欧美| 久久成人激情免费视频 | 洲国产精品尤物yw在线观看| 不卡日本免费A∨片免费| 99爱国产高清小视频| 免费视频一区二区三区在线观看| 精品国产自在在线| 在线免费观看无码电影 | 无码免费性爱视频| 狠狠躁天天躁综合网| 日本免费视频一区一区| 人妻18毛片a级毛片免费看| 色综合网站资源网站| 欧洲一级黄色| 国产欧美曰韩久久久| 免费大片一级a一级久久漫画| 成品短视频app下载免费合集| 黄片在线免费看最新的| 亚洲韩国无码一区二区| 国产日韩av网址| 国产亚洲欧洲日韩在线91区| 国产极品91在线免费观看| 國產在線精品一區二區不卡頓| 日本天堂视频在线观看| 国产精品第一综合首页| 毛片在线免费观看网站| 无码国产福利αV私拍| 国产精品 久久久精品观看| 国产每日更新avv网站| 中文字幕亚洲乱码高清| 无码免费性爱视频| 欧美国产日产一区二区三区| 99re热这里只有精品视频电影排行榜 | 91香蕉短视频污下载| 经典国产三级在线观看| 日韩免费午夜视频| 亚洲成人午夜在线影院| 啪啪性爱视频网站免费看| 国产三级久久久精品麻豆| 黄豆奶视频亚洲一区手机版| 亚洲午夜精品久久久久久白云| 久久久婷婷婷| 亚洲无码AV免费观看| 97色伦亚洲自偷久久久| 久久无码一区二区二三区性色| 国产午夜亚洲精品不卡免下载| 性一交一乱一猛一从视频| 午夜成人片免费无码福利| 欧美日韩第三页| 日韩中文在线播放| 色91日韩国产在线| 亚洲综合午夜福利| AV无码一区二区二三区| 视频二区亚洲欧美在线观看| 国内一级毛片成人七仙女| 美女mm131爽爽爽毛片| 打扑牌不盖被子怎么办| 亚洲av无码乱码国产精品电影| 国产91制服丝袜在线无码| 熟妇人妻精品中文字幕| 产后漂亮奶水人妻无码| av帝国在线无码影视观看网址| 成人国产片女人爽到高潮免费| 欧美一区二区三区开放视频| 久久无码一级午夜福利免费区| 歐美日韓在線觀看視頻| 超prom国产在线观看| 国产中字幕幕久久| 亚洲性爱熟妇人妻厨房作爱| 办公室强伦片免费看| 男妓用舌头舔我高潮不退小说| 亚洲日韩精品中文hd无码不卡 | 日本中文字幕风情手机永久| 好黄好色一区二区| 在线观看国产一级黄片视频| 国产91制服丝袜在线无码| 强制侵犯系列中文字幕av| 日韩av网址在线| 国产cd安德另类视频| 日本三级视频欧美| 国产素人无码AV手机在线观看 | 国产欧美日韩麻豆三级| 久久狠狠中文字幕2017婷婷| 超碰国产人人草人人爽| 亚洲AV无码Aⅴ久久影视| 日韩成人av在线日韩美女一级| 无码?V蜜臀?Ⅴ色欲在线观看| 国产亚洲清纯唯美视频在线| 久久无码精品福利海天翼| 日韩人妻制服av| 国产一级女人毛片色欲Av| 欧美熟妇乱伦色网视频| 亚洲三级毛片免费视频国语| 国产精品网曝门在线一区| 免费高清不卡视频日本| 久久伊人精品青青草原| 午夜香蕉69久久| 久久青青草国产第一页在线视频观看日韩11页 | 国产中字幕幕久久| 国产小伙嫖妓二十六在线| 日产无人区一线二线三线观看| 国产欧美日韩资源在线观看| 免费看裸裸体美女啪啪无遮挡| 在线观看av日韩| 亚洲国产日韩精品二三四区91| 国产精品亚洲精品久久品尚网| 日韩精品午夜无码专区福利| 国产99一区二区三区高清视频| 久久久婷婷五月亚洲97号色| 依依无码视频在线观看| 国产成人伦精品一区二区 | 777歐美午夜精品影院| 午夜国产在线观看| 寡妇高潮一级毛片114免费看| 99爱国产高清小视频| 性一交一乱一倫一视频| 毛片在线免费观看网站| 欧美国产调教一区二区| 麻豆精品福利视频| 一区二区精品| 日韩亚洲成人精品午夜在线| 一级在线免费观看黄片| 国产99在线男女一级大黄| 精品一卡二卡三卡四卡分类| 国产国产精品一国产精品| 超碰97碰人人人人人| 无码人妻精品一区二区三区?v片| 亚洲AV无码国产乱色欲| 日韩高清av在线| 国产av夜夜爱夜夜操| 成人在线免费看视频| 亚洲性爱 国语对白| 午夜福利不卡一区二区| 久99久热爱视频精品免费| 蝴蝶谷成人网| 成人在线国产调教视频| 三级片黄色国产在线| 激情亚洲一区国产精品婷婷九月| 亚洲av色片一区二区三区| 特一级黄色毛片| 特黄特色大片免费视频app| 精欧美一区二区国产三区| 欧美日韩精品综合在线一区| 刻晴ちゃんが部下を什么意思| 大乳欲妇三级一区二区三区| 国产真人高清无码| 欧美黄色大片在线观看| 日本熟妇乱人伦a| 97国产浪潮a∨无码的视频| 天美麻花星空和麻豆是什么关系 | 国产白嫩极品白嫩在线观看| av精精久久久久中文字幕丁香| 欧美大屁股bbbbxxxx| 欧美15一18sex性成人影片| 在线一级观看免费观看大全| 永久免费精品人人视频| 国产欧美日韩麻豆三级| 成人精品视频免费国产网站| 青青草原上五月婷婷视频| 超prom国产在线观看| 高清在线观看无码国产| 国产亚洲欧美日韩综合综合二区| 一级a片色情大片视频我和少妇| 三级视频久久影院| h黄视频在线观看| 国产精品成人久久久久A级| gay体育生露大鳮的网站| 美女又黄又免费| 男男做a爱过程免费视频| 精品国产一区二区三区a∨ | av无码久久动态图| 亚洲熟女一区| 91精品久久久久久久久久| 亚洲九九黑人视频| 白嫩高耸粉嫩的肉体在线视频| 国产精品日韩一区在线| 中文字幕有码专区在线视频| 成品短视频app下载免费合集| 怡春院怡红院国产a∨| 小草在线久草视频免费播放| 日韩精品午夜无码专区福利| 黄片在线免费看最新的| 国产婷婷色一区二区三区青椒影视 | 激性欧美在线播激性欧美| 再深点灬舒服灬太大了添小书| 日韩在线高清国产一区| 在线 国产 一区二区| a欧美日韩在线不卡视频| 国产αV国片精品一区二区| 精品蜜桃av中文字幕| 337p日本大胆欧美人术艺术68| 国产色网一区二区三区| 五月丁香婷婷在线观看视频| 成人片黄网站免费视频| 欧美亚洲成人精品在线| 2019久久综合网| 国产永久免费观看黄网站| 337p日本大胆欧美人术艺术68| 粗大挺进朋友未婚妻| 亚洲国产精品毛片∧v卡在线| 亚洲午夜精品久久久久久白云| 国产无遮挡18禁无码网站性色 | 夜夜骑狠狠干| julia中文字幕在线观看| 99RE6国产精品视频免费观看| 一级欧美午夜影院| 真实男女XX00动态视频午夜| a级真人片免费高清真人片视频 | 亚洲AV无码无删减在线观看网址| 超碰在线97中文| 午夜国产福利电影| 99vv1在线看国产| 国产精品无码每日更新| 欧美一级性爱视频在线| 日韩无码视频一区二区免费播放| 日本美女性爱高清在线| 国产成人不卡顿视频在线观看免费 | 国产精品午睡沙发系列| 欧美午夜精品久久福利| 免费看片A级毛片免费| 榴莲视频成人在线观看| 岛国无码不卡高清免费v| 好看的看黃a大片爽爽影院| 撕开她的乳罩慢慢揉捏亲吻视频| 日韩精品国产欧美| 成人午夜福利视频中文网| 亚洲国产中字在线精品| 婷婷五月天综合网| 久热最新视频| 一本久久?久久精品亚洲| 白丝M字开腿强制呻吟| 中文字幕日产无码一区久久久久久| 小乖乖糙汉粗口h文1v1视频| 国产一国产一级无码秋霞影院| 国产一级AAAAA免费播放 | 国产一级精品理论片在线观看| 西西4444www无码国模吧| 国产成人A∨在线网| 亚洲三级香港三级久久| 白丝在线喷水免费| 国产中文第一页在线播放| 国产一区二区三区在线精品专区| 国产精品午夜福利不卡120| 青青国产愉拍视频| 16—17女人毛片毛片同性| 久久久亚洲精品综合| 欧美精品一区二区精品久久水多| 777米奇影院在线观看| 国产免费成人一区| 日韩av在线在线观看| 绯色欧美日韩亚洲| 欧美三级不卡在线| 天天欢夜夜爽精品人妻| 精品无码制服丝袜自拍APP欧美| 亚洲欧洲成人在线一区二区| 麻豆激情久久av| 99精品久久久久久国产人三级| 欧洲亚洲色一区二区色99| 国产蜜臀a∨色欲av| 小屁孩与大人A片视频| 在线免费成人日韩亚洲一区网| 久久久久久一区二区三区| 青草久久国产99超碰| 女同一级毛片完整版观看| 国产午夜亚洲精品不卡免下载| 国产无码免费在线| 国产激情久久老熟女精品视频| 国产中文在线视频| 国产成人啪精品视频免费A| 天堂а√在线最新版在线8| 国产成人免费高清Av多毛熟女| 午夜福利视频韩国19禁| 香蕉国产偷在线| 国产极品91在线免费观看| 日韩欧美三级播放| 国产AV无码精品色| 欧美午夜福利短视频| 国产一区日韩二区无码| 性乐园精品视频| 免费夜色污私人影院在线观看| 亚洲三级黄色电影在线播放| 亚洲AV无码高潮蜜臀| 丁香午夜在线视频| 成品人短视频软件大全免费下载| 成年人小视频免费在线观看| 国产亚洲视频在线观看视频在线 | 青青青青青青久久久免费观看| 一女两男野外做爰视频| 亚洲人成无码网WWW电影榴莲| 午夜在线不卡精品国产秋霞| 久久亚洲色WWW成人不卡天美| 91在线看片无码永久免费| AV无毒无缓冲在线| 国产成年女人毛片| 欧日韩av一区二区三区四区| 99久久久久久国产精品婷婷综合| 国产av旡码专区亚洲a| 中国农村野战freesexvideo| 亚洲AV成人无码网站18禁网址| 亚洲综合一区在线免费观看| 激情歐美成人狠狠色金八天國| 亚洲老师人人香蕉AⅤ| 日韩字幕西瓜视频在线观看| 欧美专区黑人的巨大进入精品一区| 国内精品福利丝袜视频| 国产下药迷倒白嫩丰满美女bd| 在线亚洲午夜片av大片动图| 国产男女猛烈视频在线观看麻豆| 亚洲午夜精品?级久久久久| 亚洲人妻中文字幕精品一区人妻| 午夜国产在线观看| 制服丝袜无码人妻日韩一区| 欧美亚洲色图小说| 久久这里有精品99| 日夜夜天天人人综合免费软件 | 亚洲AV成人无码网站18禁网址 | 小乌酱女警双丝脚足在线看| 久久亚洲欧美国产日韩导航| 97极品无码专区| 最新欧美在线| 久久AV红桃秘一区二区| 亚洲人成网站18禁止大| 免费鲁丝片无码一级在线观着| 免费少妇精品日本| 女同一级毛片完整版观看| 欧美成人生活v片观看| 别揉我奶头~嗯啊精品成人| 成人一区二区三区www视频 | 亚洲av色片一区二区三区| 日韩久久中文| 亚洲高清国产精品熟女| acg夜趣福利视频导航| 成人一区二区三区www视频| 国产cd安德另类视频| 国产在线h视频| 亚洲中文字幕师生视频| 国产精品视频aa| 日韩亚洲一区视频二区| 午夜成人性色欧美视频在线播放| 国产一二三区精品亚洲美女| 国产欧美一区二区精品在线观看 | 日本不卡一区更新二区| 欧美日韩美女一级| 色av综合av无码aⅴ电影| 免費精品99久久國產綜合精品| 一级黄片无码高清观看| 中文字幕乱码亚洲V日本1| 国产成人啪精品视频免费A| 免费在线无码观看| 差差差很疼app软件下载大全| 噜噜综合亚洲āv中文无码| 亚洲国产一区二区三区中文字幕影视日韩精品 | 国产成人91高清精品| 久久香蕉精品视频| 二攻一受4p嗯啊巨肉寝室| 真实男女XX00动态视频午夜| 国产av永久无码影院| 欧美第一页浮力影院| 日本高清一区二区久久| 国产一级 级内射视频网站| 激情97综合亚洲色婷婷五月| 日本美女一区二区三区| 熟妇人妻精品中文字幕| 久久成人十八免费网站| 99久久中文字幕日本伦理| av永久国产在线导航导航导航| 3atv精品无码视频在线观看| 日韩动漫在线一区二区观看中文字幕| 国产视频第四页在线观看| 欧美大属黑人吊粗大| 久久精品日韩免费播| 午夜福利18以下勿进| 欧美人与物ⅴideos另类| 欧美黄色免费国产| 中文乱码人妻系列一区| a欧美日韩在线不卡视频| 久久日韩精品在线免费观看| 天堂网www种子中文在线| 精品人妻系列无码天堂| 亞洲VA韓國VA歐美VA| 干进去了视频在线观看| 三级片黄色国产在线| 荡公乱妇第69章公交情欲| 国产精品无码高清在线| 亚洲不卡精品在线| 亚洲动漫无码一区| 无码成人AAAA级婬片| 黄视频在线观看免费不卡| 三级在线观看精品国产| 日韓亞洲不卡在線視頻中文字幕在線觀看| 久久99一区二区三区| 久99久热爱视频精品免费| 少妇av无码免费观看| 国产午夜精品一区二区在线观看| 中国少妇毛茸茸| 精品一级国产一区二区三区| 婷婷午夜电影| 天天躁日日躁狼狼超碰97| 国产优质视频在线观看| 国产农村乱对白刺激视频欧美性爱亚洲 | 亚洲国产拍拍拍拍久久久| 中文字幕一区不卡| 女生裸体的网站在线观看| 免费观看欧美一级牲片| 好看的看黃a大片爽爽影院| 亚洲啪在线午夜福利| 咪咪在线视频| 國產真人無遮擋作愛免費視頻 | 久久91亚洲精品中文字幕奶水| 成人一区二区三区www视频| 一区二区三区高清日本国产| 久久中文字幕精品一区| 亚洲 欧洲 日韩 综合AV| 多男一女一级伦奷片免费观看| 国产亚洲va在线电影中文字幕| 国产午夜av在线秒播| 2021亚洲产中文字幕无码| 亚洲国产精品毛片∧v卡在线| 米奇影院日韩免费| 國產日韓歐美視頻不卡一區二區三區 | 国产免费av片久久久| 欧洲精品伦理一区二区| 亚洲男人天堂综合网| 惠民福利亚洲欧美日韩成人综合网| 无码成人AAAA级婬片| 一本高清码二区三区不卡| 麻豆精产国品一二三产区别| 国产黄色激情免费图片| 黑色丝袜脚足国产在线观看| 亚洲一区二区三区国产精品无码| www中文字幕日本| 在线视频91成人毛片网站| 色一情一乱一伦一区二区三区影视| 日本熟女视频久久| 淫荡视频在线观看| 国产A精品一区二区三区不卡| 国产又色又爽又黄刺激的大片| 欧美亚洲变态另类重口在线| 性开放的交换艳妇俱乐部小说| 日韩 欧美 国产 综合 在线| 91精品手机国产在线能| 亚洲?V高清一区二区三区| 一区二区三区亚洲电影在线| 国产精品视频免看一级?| 在线免费视频国产| 国产成人免费高清Av多毛熟女| 亚洲国产精品欧美日韩| 岛国无码免费一本道直接| 欧美日韩人人天天综合| 成人?毛片免费全部播放| 免费看黄在线观看网站| 成人片黄网站免费视频| 白丝在线喷水免费| 俄罗斯老熟女18一HD| 麻豆19禁A片在线观看| 国产国产精品拍拍偷| 欧美麻豆婷婷丁香五月综合激情| 麻豆精品免费视频在线观看| 中文字幕一区二区在线不卡人妻 | 丰满少妇被猛烈进入无码蜜桃| 亚洲乱色熟女一区二区三区蜜臀| 国产一级免费在线| 欧美日韩午夜电影| 日本一级理论片公妇乱| 婷婷五月天综合网| 亚洲经典一区二区三区| 亚洲国产剧情无码av| 欧日韩av一区二区三区四区| 好吊色免费在线视频| 欧美日韩中文字幕视频在线看| 精品一级国产一区二区三区| 喷水欧美磁力免费第3页欧美| 亚洲日韩AV在线中文字幕国产一区| 亚洲av无码乱码国产精品电影| 日韩三级黄色av| 一区二区三区啪偷拍视频| 日本高清一区二区三区不卡视频| 免费AV淫乱毛片| 青青亚洲国产成一综合在线| 麻豆文化传媒精品一区| 猛男的大粗鳮巴1久久精品综合热久久 | 亚洲熟女偷拍日韩精品| 國產日韓歐美視頻不卡一區二區三區| 天美影视传媒有限公司| 天天操人人爽| 黄片小视频久久| h片在线观看免费无码网站| 天天操小姐夜夜操美女| 国产女主播三级在线观看| 国产欧美日韩综合在线视频观看 | 久久久久久九九| 国产91午夜精品一区在线 | 一区二三区国产中文字幕播放| 无码免费永久在线观看乱妇 | 综合激情涩欧美在线| 国产一级毛片三级毛片| 久久精品免费成人| 西西人体大胆午夜啪啪| 欧美性爱第二区| 人妻va精品va欧美va图片| 亚洲国产中字在线精品| yy成人免费影院| 在线无码不卡18禁| 无码专区人妻视频在线| 在线观看精品免费三级| 91亚洲一区二区| 亚洲中文日本国产| 日本韩国一级片免费的| 东北老熟女高潮大声叫痒视频| 我色综合亚洲欧美综合网| 神马电影超清画质完整版99精品| 国产精品二区三区免费在线| 三级片黄色国产在线| 国产亚洲vs无码中文日日| 潮喷中文字幕在线精品无码| 美女又黄又免费| 伊人天堂在线视频短片| 女生裸体的网站在线观看| 性生大片免费观看网站精彩| 男人j桶女人p免费视频国产 | 五月天丁香婷婷最新| 曰批全过程免费视视频观看| 一级一级一级真人片免费真人片| 久久免費國產精品一區二區| 91久久人澡人人添人人爽| 国产羞羞视频在线观看免费无遮挡| 少妇被粗大的猛烈进出的免费视频 | aaa级久久久精品无码片观看视频| 国产精品免费无需播放器看| 少妇人妻精品午夜无码| 国产不卡一级无码视频| 亚洲AV午夜成人无码网站色优 | 夜夜突夜夜澡人摸人人添| 網友分享国产三级精品视频心得| 成品短视频app下载免费合集| 男人又大又硬又粗好爽视频| 亚洲一区日韩精品| 小黄片污污在线观看| 久久成人AV一区二区大全| 国产亚洲日本欧美在线| 亚洲aⅴ无码一区二区波多| 日韩欧美一区二区免费| 亚洲精品成人无限看| 另类小说区超碰97资源站| 老子影院午夜伦手机卡国产| 久久精品国产欧美高潮| 少妇av无码免费观看| 欧美亚洲变态另类重口在线| 香蕉青草久久成人网| 别揉我奶头~嗯啊精品成人| 能看女生隐私的软件| 在线观看有码无码| 亚洲剧场午夜在线观看| 日本暖视频一区二区三区| 九一国产免费网站| 久久久久久一级毛片| 18禁在线永久免费观看黄| 精品少妇人妻系列无码| 四虎影视精品一区二区884| 国产自慰无码一区二区三区| 最新亚洲中文字幕不卡| 国产日韩欧美电影在线观看| 小苹果日本在线观看| 日韩中文在线播放| 国产人妻人伦精品免费看刘亦菲| 色婷婷大香蕉超碰| 少妇人妻无一区二区三区| 69久热精品亚洲大片在线| 无码一区二区久久中文| 亚洲熟女一区| 黑人巨大欧美一区二区视频| 久久99精品波多结衣一区| 亚洲日韩av在线不卡互動交流| 免费黄片大全www| 亚洲一区二区A| 精品日韩欧美aa级大片| 国产精品久久无码一区二区三区| 亚洲青青青网伊人精品| 黄色片国产视频网站| 亚洲av精一区二区三区四区| 欧美激情在线| 亚欧免费无码āⅴ在线观看| 亚洲欧美日本一区| 免费无码黄网站在线看| 久久午夜福利精品| 国产一区二区亚洲污在线观看| 国产粗大劲爆内射| 玩小雪跪趴把腿分到最大影视频| 午夜激情欧美黄片| 日本久久久久精品免费| 国产免费av片久久久| 白洁被赵振干到九点电影在线观看 | 成人无码免费一级毛片| 91在线看片无码永久免费| 色欲a∨永久无码精品无码蜜桃| 中文字幕一区二区日韩精品| 中文字幕有码专区在线视频| 欧洲一区二区三区精品动漫| 沈阳老熟女高潮喷水| 青青青国产在线91| 亚洲午夜视频黄色aaa网站| 狠操曰韩美女视频播放| 日韩欧乱色一区二区三区在线| 欧美午夜免费福利视频| 亚洲手机无码电影在线| 日韩天天综合网| 亚洲aⅴ中文无码乱人伦在线| 亚洲av无码一区二区三区6| 神马老子影院午夜伦| 久久综合九色综合欧洲98| 欧美中文字幕精品一区 | 日韩一aa级欧美一aa级特黄| 日韩在线不卡一区二区Av| 国产乱子轮XXX农村| 色综合AV在线伊人网站在线观看 | 69堂精品国产一区二区| 越狱犯强奷漂亮人妻| 和两个男人玩3p好爽视频| 国产真实迷j在线观看网站 | 一级黄片一级毛片一级黄片 | 征服好友的保守人妻| 青青自拍视频| 事物的秘密截取水中一段| 精品手机电影| 中文字幕人妻一区二区三| ?愛妃?色婷婷六月亚洲综合香蕉| 精品蜜桃av中文字幕| 足恋踩踏视频网站免费视频网站| 国产av旡码专区亚洲a| 午夜福利18以下勿进| 欧美 激情 另类 自拍| 老师办公室h荡肉呻吟视频日本| 国产超碰97精品免费| 亚洲无码人妻av| 国内精品国产成人国产三级亚洲AV性爱 | 国产av永久无码影院| 天天视频在线91频| 欧美高清在线精品一区| 337p日本大胆欧美人术艺术68 | 中文字幕爱爱| 亚洲av成人无码网站在线观看| 古装性艳史电影在线观看| 国户精品久久人妻无码hd| 国产欧洲野花A级| 亚州高清无码做a免费观看| 日本一区二区三区在线观看网站 | 久久久久成人国产av| 欧美不卡在线一二三区| 国产精品欧美青青草| 一级A视频作爱片免费播放| 人妻蜜肉动漫中文| 国产2o岁美女一级毛片| 96久久精品人人妻人人搡| 99视久久精品人人槡人妻人人玩| 韩国人体vps国产在线视频| 日韓亞洲不卡在線視頻中文字幕在線觀看 | 99国产精品免费调教| 99久久中文字幕日本伦理| 日韩av无码成人无码免费| 国产一级毛片亚洲一级毛片| 三观视频在线观看毛片| 乱伦亚洲欧美中文| 久99久热爱视频精品免费| 国产内射极品中文字幕| 欧美亚洲精品二区久久久| 日本三级带日本三级带黄首页 | 国产超短裙美女在线观看| 国产精品视频观看| 午夜热播影视剧免费电影在线观看完整版 | 国产亚洲A v手机在线观看| 久久影院国产精品视频| 成人漫画网羞羞免费漫画| 亚洲中文字幕无码手机版| 囯闪偷自拍99在线| 亚洲欧洲国产激情在线| 337p日本欧洲噜噜噜噜| 国产黄色片免费播放| ぱらだいす天堂中文www最新版| 国产成本人片免费A| 免费人成视频X8X8入口AA| 91精品一级毛毛片| 午夜人成免费视频观看| 亚洲mv无码播放| 小乌酱女警双丝脚足在线看| 99国产精品久久久久99打野战| 国产成人黄色小视频| 日韩无码小视频| 婷婷丁香五月综合在线| 亚洲一区二区AV人片在线观看| 国产精品九九精品久久免费 | 国产日韩在线另类第八页| 男人强撕开奶罩揉吮奶头视频| 天堂网www种子中文在线| 亚洲青青青网伊人精品| 人妻人人捏捏人人揉揉| 麻豆国产自制在线观看| 岛国无码免费一本道直接| 天天视频在线91频| 亚洲激情91大神在线观看| 欧美成 人禁片 在线播放| (凹凸)青草制服丝袜一区第一页| 臀控福利大臀的网站| 日韩欧美一区二区熟女| 男人强撕开奶罩揉吮奶头视频| 欧美成人丝袜videos| 亚洲国产日韩在线人成一区| 欧美日韩?片一区二区久久精品| av小说在线阅读| 亚洲色大成网站WWW永久网站| 9lporm自拍视频区在线| 久久香蕉国产影片牛电影| 久久精品夜色av| 激情五月综合综合图片区| 日本va欧美va国产va| a一级毛片久久免费| 久久香蕉国产线看播放| 亚洲色大成网站www同| 天堂а√8在线最新版在线| 亚洲欧洲av一区二区三区 | 香蕉大黄香蕉在线观看| 13萝自慰喷白浆| 美国av不卡在线观看| 国产无码一区二区久久| 在线欧美综合自拍| 日本暖视频一区二区三区| 亚欧洲乱码视频在线专| 国产卡一卡2卡3卡4卡精品 | 日韩欧美一区二区免费| 欧美大屁股bbbbxxxx| 高潮喷水香蕉视频色| 国产一级一级特黄女人精品毛片| 538国产亚洲欧美日韩精品 | 国产下药迷倒白嫩丰满美女bd| 国产欧洲野花A级| 91香蕉污污视频| 饥渴少妇一区二区三区| 中文字幕你懂的| 自拍高清综合中文| 无码免费视频国产片的| A级黑粗大硬长爽猛视频| 國產真人無遮擋作愛免費視頻| 亚洲日韩高清蜜芽在线观看| 欧美黄色片子午夜福利| 美女被操了免费看视频| 亚洲日韩欧洲无码妖精视频| 超碰在线97中文| 另类小说图片区日本久久大视频| 午夜性做爰aaaaa| 男女生免费差差的在线小视频| 咪咪在线视频| 日本熟女视频久久| 亚欧av在线播放| 被体育老师抱着c到高潮| 26uuu欧美日本在线播放| 综合激情涩欧美在线| 中文字幕第一页第二页| 亚洲AV无码专区在线观看网页| 黑又大又粗又大欧美视频| 91精品无码国产一区二区| 国产交换配乱婬视频a级| 欧美日韩第三页| 韩国电影爱的色放在线观看| 欧美a级久久大片| 大香蕉无码在线视频整| 日韩欧美手机在线观看第一页| 欧美日韩激情精品蜜桃| 日韩欧美成人综合| 东北老熟女高潮大声叫痒视频| 热亚洲热中文热日韩| 91久久电影国产高清| 少妇无遮挡十八禁网站| 亚洲欧美日韩久久精品国产| 五月天丁香婷婷最新| 99视频全部看免费观| 日本成日本片免费aⅴ| 青青草久热精品视频在线观看| 亚洲第一aⅴ无码专区| 亚洲AV成人无码网站18禁网址| 在线观看视频中文字幕你懂的| 久久一热久久这里只有精品图片| 精品一区二区三区高清av| 成人一区二区三区www视频| 国产白嫩极品白嫩在线观看| 久久久久人妻一区精品性色av| 亚洲性爱无码视频| 天天视频在线91频| 黄色刺激视频免费在线观看| 亚洲国产日韩在线人成一区| 亚洲自拍偷拍宗合| 亚洲韩国无码一区二区| 美女的视频黄a免费| 少妇厨房与子伦HD| 在线观看国产美女主播| 国产在线高潮流白浆视频| 啪啪性爱视频网站免费看| 26uuu欧美日本在线播放| 韩国午夜理伦三级好看| 亚洲欧美中文日韩在线V日本| tubexxxxmovies中文巨大超乳在线播放| 亚洲啪在线午夜福利| 久久麻豆亚洲av电影| 久久精品国产欧美高潮| 亚洲av色片一区二区三区| 99精品国产精品亚洲一级毛片| 婷婷午夜电影| 武松叼着潘金莲奶头的是谁扮演的| 亚洲欧美国产日本在线观看| 性变态sM虐女重口文| 香蕉视频免费看| 亚洲欧美日本大片在线观看| 亚洲国产中出无码| 巨爆中文字幕巨爆区爆乳| 国产91学生粉嫩喷水| 亚洲A∨综合色区无码在线播放| 青青青91草字vip国产线观| 简单av网在线播放免费| 草莓国产手机在线视频| 日本三级带日本三级带黄首页| 日韩精品有码一区二区三区| 亚洲三级香港三级久久| 国产日韩欧美精品区性色| 成年无码av网站天堂网| 国产精品网曝门在线一区| 少妇被粗大的猛烈进出的免费视频| 久久成人AV一区二区大全| 欧美亚洲成人日韩| 久久国产精品娇妻素人| 日韩AV天堂久久无码| 精品不卡电影AV| 美女毛片免费视频| 在线看片网站| 高潮无遮挡猛烈国产| 午夜久久成人一区| 啪啪性爱视频网站免费看| 韩国电影爱的色放在线观看| 欧美成 人禁片 在线播放| 真实的和子乱拍在线观看| 欧美高清在线精品一区| 在线看片网站| 国产超短裙美女在线观看| 123456成年免费视频| 99re热这里只有精品视频电影排行榜 | 国产一级特黄aaaa大片毛片| 日韩欧美一区二区熟女| 青青色无码视频在线观看| 日本a在线免费观看| 一区二区精品| 高清日韩精品更新视频| 成人免费一区二区三区| 色一情一乱一伦一区二区三区影视| 女人被狂躁的高潮免费视频| 日韩欧美黄色一区二区| 精产嫩模国品一二三区| 高清精品中文综合| 波多野结衣系列亚洲一区二区| 久久影音第一页午夜| 国产精品18p年美女网站色免费| 中文字幕人妻熟人妻丝袜美| 一区二三区国产中文字幕播放| 在线一级观看免费观看大全| 在线日本国产成人免费的| 久久免费看尻b影视| 手机在线视频国产片欧美| 三级片一级中文版| 99久久国产综合精品麻豆66| 快色1024美女插| 欧美日韩精品一区二区在线新| 国产v大片淫在线免费观看| 亚洲欧洲av一区二区三区| 99久久婷婷国产麻豆精品| 欧美一级视频免费| 日夜夜天天人人综合免费软件| 高潮喷水香蕉视频色| 国产古装全黄A级视频一本久久精品一区二区| 粉嫩小泬久久久久久| 午夜爱爱爱爱爽爽爽视频网站| 国产中文在线视频| 伊人天堂在线视频短片| 黑人巨大av无码专区在线| 欧美成 人 在线播放免费BD| 麻豆爱爱视频| 国产剧情18禁免费网站| 亚欧成人无码?V在线播放| 中文字幕在线不卡一二三区超清| 亚洲国产精品有声| 国产一级 级内射视频网站| 日韩精品无码久久久观看| 中国一区二区三区毛片| 精品一级国产一区二区三区| 天天躁日日躁狼狼超碰97| 国产最新婷婷综合一区| 爽死你免费视频在线观看| 国产suv精品高清观看视频| 最新亚洲中文字幕不卡| 欧美日韩激情精品蜜桃| 软萌小仙女自慰粉嫩小泬网站| 亚洲欧美国产中文视频一区色偷一区国产精品 | 国产精品大屁股白浆久久| 国产69精品久久久久乱码韩国| 亚洲精品成人无限看| 中文字幕近親偷子亂伦| 中文字幕潮喷大痉挛绝顶失禁| 老旺的大肉蟒进进出出bd高清版| 国产午夜激无码av毛片网| 狠操曰韩美女视频播放| 欧美一级精品高清在线观看网站 | 2019国产三级在线观看| 欧美熟妇乱伦色网视频| 亚洲无人区免费视频在线观看| 成人在线国产调教视频| 久久影院国产精品视频| 中文字幕第63久久| 真人片免费视频网站| 久久www免费人成看片下载| 欧美国产一级片| 成人免费毛片精品推荐| 综合激情久久婷婷| 九一国产免费网站| 日韩麻豆乱婬一区二区三区| 欧美娇小XXXX性| 欧美理论电影视频在线| 久热国产区二三四| 99热精品国产三级午夜免费观看| 影音先锋av网站你懂得| 欧美最大色情网183| 久久国产精品成人av| 日本中文字幕1区| 午夜片无码ab区在线观看| 亚洲性爱熟妇人妻厨房作爱| 91精品无码国产一区二区| 国产午夜成年免费视频| 日韩av在线播放乱码| 日韩在线高清国产一区| 国产日韩欧美电影在线观看| 超碰97国产欧美中文| 密桃午夜精品福利一巨二区三区| 草莓视频app下载无限看| 他揉捏她两乳不停呻吟| 情爱视频国产在线观看| 人妖亚洲一区二区| 2018亚洲偷偷的一区二区| 2019国产三级在线观看| 亚洲午夜福利天堂狼友| 国产午夜av在线秒播| 欧美第一页浮力影院| 欧美GAY巨大动漫3D| 国产亚洲综合欧美一区二区| 无码啪啪精品一区二区三区| 亚洲AV美日韩AV丝袜美腿| 影音先锋人妻AV在线电影| 亚洲精品久久久久久国| 国产精品香蕉在线| 欧美三级全黄的视频| 岛国无码免费一本道直接| 色综合久久88色综合天天蜜臀| 免费看片在线网站| 最新国产精品欧美激情| 美女又黄又免费| 精品日韩aⅤ一区二区三区v免| 久久香蕉国产影片牛电影| 伊人精品影视一二三区| 亚洲欧洲国产激情在线| 欧洲美熟女乱又伦AV色欲| 在线A级毛片无码免费真| Free熟女裸体舞HD| 美国农夫导航| 无码专区人妻视频在线| 日韩av在线播放乱码| gay体育生露大鳮的网站| 777歐美午夜精品影院| 這裏隻有国产强伦姧在线观看 | 性奴调教在线观看视频1区2区 | 国产成人黄色小视频| 在线欧美综合自拍| 国产免费成人一区| 欧美老妇牲交videos| 国产视频不卡在线观看| 久久久精品一区二区视频| 国产1级av免费在线播放| 網友分享99久热国产精品视频尤物不卡心得 | 四虎影院在线网址| 四虎国产在线视频网站| 波多野结衣系列亚洲一区二区| 99vv1在线看国产 | 亚洲国产精品毛片∧v卡在线| 别揉我奶头~嗯啊精品成人| 国产一级片射精免费看| 中文国产无码日韩 | 国产精品中文无码第一页av在线| 成人AAA级免费视频| 精选国产网站无码不卡| 在线日本国产成人免费的| 久久久国产精品亚洲一区国产福利免费看| 亚洲AⅤ无码午夜福利精品一区| 粉色成视频人app下载| 国产交换配乱婬视频a级| 亚色中文91在线| 欧美日本韩国中文字幕| 免费看裸裸体美女啪啪无遮挡| 岛国无码不卡高清免费v| 亚洲日韩欧洲无码妖精视频| 亚洲一区二区AV人片在线观看 | 白嫩高耸粉嫩的肉体在线视频| 国产日韩欧美综合亚洲| 91嫩草人人国产线| 国产欧美日韩不卡一区二区| 亚洲av秘无码国产精品一区| 欧美大片aaaaa免费观看| 6068理伦午夜少妇| 日本不卡一区更新二区| 精品无AMM毛片亚洲| 免费看h片的网站| 中文字幕无码笫一页| 亚欧洲乱码视频在线专| 深爱五月婷婷亚洲中文| 臀控福利大臀的网站| 免费视频一区二区三区在线观看| 国产在线一区二区三区免费大片| 亚洲六月丁香缴情久久丫| 中年夫妇大白天啪啪| 一级成人a免费视频| 在厨房征服美丽领导夫人| 最新亚洲人无码无线在线| 亚洲国产中文日韩一区三区 | 天堂а√8在线最新版在线| 怡春院怡红院国产a∨| 日韩精品专区一二三区| 国产亚洲清纯唯美视频在线| 美精品a∨在线观看| 波多野结衣系列亚洲一区二区| 免费一区二区视频| 中文字幕近親偷子亂伦| 国产人成高清在线99| 波多野结衣少妇的寂寞| 97久久久人妻一区精久久| 桃花视频一区二区| 亚洲A v永久纯肉无码精品动漫| 国产每日更新avv网站| 精品熟女AV一区2区三区| 亚洲中文无线乱码在线观看| 精品日产1区2区| 国产日韩欧美精品区性色| 国产首页一区二区| 亚洲综合小视频| av在线最新网址亚洲| 国产美女被啪进深处喷白浆视频| 妓女在线一区二区三区| 丝袜双飞国产精品| 国产av夜夜爱夜夜操| 99国产精品久久99久久久| 亚洲AV日韩AV无码喷潮下载 | 中文字幕版免费电影网站| 一二三四影院网在线观看免费互動交流| 久久久久久一区二区三区| 成人一区二区在线播放| 99国产精品免费调教| 产后漂亮奶水人妻无码| 高潮喷水香蕉视频色| 亚洲韩国无码一区二区| 日韩视频三区我爱我色成人网| 亚洲电影国产成人| 国产女主播勾搭外卖在线播放| 亚洲精品成人无限看| 婷婷综合网五月天丁香花| 久久精品香蕉| 精品丝袜一区不卡| 亚洲无码 一区二区三区 波多野结衣| 在线视频91成人毛片网站| 亞洲日本va午夜在線電影| 乱人伦欧美在线| 這裏隻有国产强伦姧在线观看| 最新亚洲人无码无线在线| 欧美激情第5页拍拍| 五月六月丁香婷婷激情| 国产成人午夜高清视频| 美女极度色诱视频国产舒心| 欧美亚洲精品福利免费专区| 国产三级真实在线观看 | 91精品视须免费在线观看| 亚洲综合天堂久久| 国产人妻人伦精品免费看刘亦菲| 久久精品夜色av| 国产精品永久免费无遮挡| 法国老熟女XXXB| 老师你乖乖的可以让你少吃点苦头| 日本有码在线观看| 99re热这里只有精品视频电影排行榜| 男人女人一起嗟嗟嗟很痛原声| 久久国产自产亚洲天堂| 欧美大屁股bbbbxxxx| 国产国产精品拍拍偷| 久久久精品欧美潮喷三级| 亚洲一级av在线天天看| 八戒成人影院午夜在线播放| 宝宝~腿趴开一点就不会疼男男| 最新二日韩区福利午夜视频| 香蕉国产偷在线| 黄色三级网站在线观看不卡| 亚洲欧美日韩久久精品国产| 三根一起玩真的会坏掉 | 欧美日韩亚洲精品成人| 久久综合无码| 午夜性做爰aaaaa| 97日本岛国动作片免费观看| 亚洲一区二区电影视频| 亚洲自拍偷拍宗合| 日本胸大公妇被公侵犯中文字幕小说| 中文无码?Ⅴ专区| 国产AV无码精品国产精品| 亚洲欧美自拍中文字幕| 99re8精品热爱在线视频| 韩日天天干夜夜做视频| 成人国产片女人爽到高潮免费 | 成人精品无码一二三区性色| 国产在线不卡福利一区二| 国产69精品久久久久乱码韩国| 武松潘金莲肉欲1一9老卫淑容| 久久久夜色精品国产欧美乱| 国产精品欧美青青草| 激情亚洲一区二区三区在线观看| 日产无人区一线二线三线观看| 亚洲天堂中文字幕免费视频| 亚洲欧美专区在线播| 国产v综合ⅴ日韩v欧美大片| 日韩久久中文| 国产av成人一区二区三区| 欧美国产调教一区二区| 日本成熟电影不卡www| 成人有声小说有哪些| 麻豆91精品91久久久久久| 草莓视频ios在线| 欧美激情第5页拍拍| 影音先锋成人无码电影| 99热热这里只有精品| 色欲āⅤ蜜臀āV免费观看| 亚洲黄色免费网站| 积积对积积桶免费网站入口软件| A看一级特黄a大片| 在线日本aⅴ免费网站| 中文字幕第5页婷婷五月激情视频| 无码熟妇人妻AV在线影片最多| 理伦片理伦影院| 999精产国品一二三区| 国产偷2018在线免播放观看 | 国产亚洲精品久久久999| 无码专区人妻视频在线| 征服好友的保守人妻| 亞洲日本va午夜在線電影| 亚洲天堂视频在线观看视频| 91香蕉视频黄下载| 中年夫妇大白天啪啪| 国产又色又爽又黄又刺激视频| 亚洲AV无码专区久久性色| 国产偷2018在线免播放观看| 欧美国产精品亚洲| 国产激情精品久久久一区| 欧美国产精品亚洲| 国产精品视频观看| 国产亚洲视频在线观看视频在线| TS人妖陈雯雯深喉口爆| 日韩一区二区不卡无码网站| 日产岛国精品一区| 手机在线视频国产片欧美| 八戒成人影院午夜在线播放 | 国产一区二区亚洲污在线观看| 成年人视频大全| 亚洲日韩欧洲无码妖精视频| 波多野结衣少妇的寂寞| 日本天堂视频在线观看| 中文一区二区视频在线| 在厨房征服美丽领导夫人| 高潮喷水香蕉视频色| 久久不精品亚洲无码视频| 永久地址网址亚洲国产| 91精品国产无线乱码在线观看| 国产男女羞羞视频免费一区| 欧美日本亚洲日韩精品第二| 在线视频无码直播网站| 在线一区二区三区国产| 日本高清专区一区二区| 亚洲欧美另类蜜桃| 久久成人AV一区二区大全| 宝贝对着摄像头自己做忘羡| 欧美日本高清精品| 久久99日韩中文字幕| 在线免费日本亚洲视频| 中文国产无码日韩| 國產一級久久久久久毛片| 国产优质视频在线观看| 正在播放宾馆少妇高潮大叫| 国产美女裸无遮挡裸体免费观在线| 国产又大又粗又长在线无码视频| 美国一级欧美三级| 免费v片免播在线| 亚洲国产中字在线精品| 日韩欧美一区二区免费| 青青国产愉拍视频| 久久久婷婷婷| a级真人片免费高清真人片视频| 三根撑到极致哭着求饶H| 91最猥琐眼镜摄影师国模丝丝| 武松潘金莲肉欲1一9老卫淑容| 亚洲一区二区A| 偷拍日韩中文字幕欧美| 亚洲精品国产av失美传媒| 国产免费观看avvvv| 国产精品18久久久久网站| 国产成人午夜精品影院游乐网| 又粗又硬又长又爽免费视频 | 午夜免费无码福利视频网址#:| 私密按摩师在线观看| 国产精品午夜福利不卡120| 最新国产日韩在线观看| 天堂а√8在线最新版在线| 欧美熟妇色xxxx| 西西大胆裸体4444WwW| 国产精品性国产综合第一页| 一本大道少妇中文字幕在线 | 亚洲国产日韩欧美综合79146| 二人剧烈运动扑克网站真实| 高清无码人妻在线视频 | 国产亚洲性欧美日韩在线观| aaa级久久久精品无码片观看视频| 欧美一级午夜片在线观看| 亚洲国产精品亚洲人成| 久久天天躁狠狠躁夜夜中文字幕| 一本大道香蕉视频大在线| 亚洲无码人妻av| 极品福利视频| 337p日本欧洲噜噜噜噜| 中文字幕爱爱| 亚洲?V无码一区二区乱子伦| 国产特黄a一级毛卡片免费| 久久久亚洲欧洲国产av线| 韩国精品久久电影| 囯产熟女视频精品免费看| 久久麻豆亚洲av电影| 亚洲AV无码一区二区久久观看| 日本最新免费的一区二区三区| 欧日韩97人人摸| 性奴调教在线观看视频1区2区| 日韩人妻丝袜无码中文字幕| 91福利在线观看视频| 人妻公交被从后面进去| 亚欧一区在线播放| 欧美 日本一区二区三区视频| 一级不卡中文字幕精品片| 国产一区二区高清视频在线观看| 精品国产自在现偷99| 97日本岛国动作片免费观看| 亚洲人成无码网WWW电影榴莲 | 欧美精品亚洲精品日韩精品一| 欧美日韩精品一区二区在线新| 性欧美videofree高清杂交| 午夜色午夜视频之日本在线播放| 香蕉大黄香蕉在线观看| 亚洲av老熟妇在线| 亚洲成人免费一级生活片| 色多多www視頻在線觀看免費| 国产一级高潮片免费| 自拍亚洲欧美精品| 2021亚洲产中文字幕无码| 在线观看国产一级黄片视频| 国产又大又粗又长在线无码视频 | 国产乱码精品一区二区跑去四川人| www中文字幕日本| 春药按摩人妻弓中文字幕| 亚洲欧美日韩激色国产精品| 亚洲人妻中文字幕精品一区人妻 | 国产91制服丝袜在线无码| 特一级黄色毛片| 日本免费一区二区三区最新ⅴr| 日韩精品久久久久av电影| 激情歐美成人狠狠色金八天國| 五月天丁香婷婷最新| 亚洲AV无码一区二区久久观看 | 亚洲欧洲一激情在线观看| 色综合网站资源网站| 亚洲Aⅴ男人的天堂网址在线观看| 不卡日本免费A∨片免费| 欧美黄色大片在线观看| 午夜福利+无码+自拍| 91精品国产亚洲九色| 无码国模国产在线观看| 久久国产乱子伦精品免费草莓| 午夜福利视频韩国19禁| 狠狠色噜噜狠狠狠狠2021| 婷婷中文字幕在线免费观看| 中文字幕亚洲欧美色图| 免费视频一区二区三区在线观看| www插插插无码视频网站| 色噜噜91成人网在线观看| 国产下药迷倒白嫩美女在线观看| 影音先锋强奸少妇| 欧美第一页浮力影院| 日本日本中文熟妇在线视| 午夜香蕉69久久| 国产伦精品一区二区高清版| 日本高清一区二区久久| 在线亚洲午夜片av大片动图| 亚洲成?人在线| 荫蒂添的好舒服嗯快嗯呢来了视频 | 亚洲日韩欧洲无码妖精视频| sao虎视频在线精品永久| 91精品手机国产在线能| 波多野结衣少妇的寂寞| 亚洲精品成人无码在线导航| 亚洲欧美婷婷五月色综合| 丝袜双飞国产精品| 亚洲乱色熟女一区二区三区蜜臀| 欧美精品一区二区三| 91久久人澡人人添人人爽| 日本无卡码高清免费v在线| 色91日韩国产在线| 波多野结衣视频三区| 日本成日本片免费aⅴ| 日韩片欧美一道本一区二区三区| 国产无码一二三区| 大屁股迷人少妇在线观看| 91精品91久久久中文字幕app| 日本熟女视频久久| 免费观看污片不要钱| 美国一级欧美三级| 老熟妇乱子伦系列视频| 超碰97国产欧美中文| 国产内射一级一片高清视频蘑菇| 青青青91草字vip国产线观| 中国黄页无码v91| 亚洲无码片在线gv网站| 火辣辣福引导内江市welcome| 午夜视频悠悠在线观看| 超碰国产人人草人人爽| 亚洲aⅴ中文无码乱人伦在线| 狠狠干狠狠操视频| 欧美一二三级精品在线| 狠狠色丁香婷婷综合五月| 噜噜免费在线欧美| 在线免费亚洲欧美| 人妻被按摩到潮喷中文字幕久久| 乱码视频在线播放专区| 欧美性爱乱伦视频| 亞洲日本va午夜在線電影| 火辣辣福引导内江市welcome| 国内精品大屁股白浆一区二区| 欧美真做精品三级免费观看| 国产美女被啪进深处喷白浆视频| 欧美三级全黄的视频| 国色天香视频.www| 酒店里面s椅怎么用示范| 在线视频精品网站| 欧美黄色大片在线观看| 综合青草青草久热精品视频| 亚洲午夜精品一区二区| 国产成年人无遮挡| 国产自慰无码一区二区三区| 色护士AⅤ色护士色大片| 精品丝袜一区不卡| 国产伦精品一区二区高清版| 日韩女人毛片在线| 日韩av无码成人无码免费| 五月天综合网日本中文字幕网站| 99久热er在线精品| 日韩精品不卡国产| 日韩天天综合网| 国产精品午夜一级毛片无码| 国产在线视频大学生白嫩| 秋霞2016午夜限制电影在线| 国产一区二区欧美专区| 国产图片一区| 亚洲最大日夜无码中文字幕| 精品无码综合高清| 亚洲国产精品毛片∧v卡在线| 欧美亚洲精品二区久久久| 9299yy看片婬黄大片软件| 男生和女生差30分很痛app下载| 久久久国产精品亚洲一区国产福利免费看| 国产中文在线视频| 為您推薦精品国产日本欧美亚洲成品精品 | 亚洲欧美综合自拍20页| 国产v在线在线观看视频免费| 国产极品91在线免费观看| 2020国产精品无码色在线| 亚洲色偷偷综合亚洲?V| 宝贝对着摄像头自己做忘羡| 自拍偷拍欧美视频| 韩日天天干夜夜做视频| 37pao成人国产永久免费视频| 在人线AV无码免费高潮喷水| 16—17女人毛片毛片同性| 日本韓國亞洲三級片一區二區三區| 韩国人体vps国产在线视频| 亚洲一区日韩精品| 变态视频软件全程观看免费| 2018亚洲偷偷的一区二区| 亚洲熟女一区| 人成高清毛片亚洲| 精品手机电影| 97国产精品97久久久久免费| 天天爱天天做久久狠狠做频道| 风韵中年熟妇呻吟视频| 亚洲人妻性感视频第二页| 国内盗摄视频一区二区三区| 久久国产这里只有精品| 日韩在线不卡一区二区Av| av免费一区二区三区| 粗大猛烈进出高潮视频大全| 自拍亚洲欧美精品| a∨色狠狠一区二区三区| 日韩久久中文| 久久久久久久久波多野高潮| 1024手机视频免费观看| 日韩高清在线播放不卡| 亚洲av乱码久久免费 | 蜜桃污视频APP下载| 国产肉丝精品视频一区二区| 青青青青青国产免费观看| 国产成人aⅤ在线免播| 无码啪啪视频免费| 天天人人综合影院123| 张婉莹视频暑假作业网站| 国产一区二区三区欧美精品| 丁香五月激情啪啪啪啪啪| H性视频在线播放| 日韩精品无码久久久观看| 欧美15一18sex性成人影片| 亚洲午夜精品久久久久久白云| 亚洲美女在线视频专区| 久热国产v线观看视频| 无码久久精品中文| 国产无码内射| 成熟孕妇裸体作爱视频| 亚洲Av宅男无码网站| 女人高潮一级毛片免费观看| 久青青国产综合视频在线观看| 91se亚洲国产综合在线| 一女两男野外做爰视频| 水蜜桃精品人妻网站| 尤物在线一区二区三区| 婷婷无码在线视频| 久久久婷婷婷| 亚洲国产人在线| 99vv1在线看国产 | 国内一级毛片成人七仙女| 亚洲午夜福利影院一区| 久久国产频频| 日韩欧乱色一区二区三区在线| 久久久久久一区二区三区| 国产在线看老王影院入口2021| 免费看a级肉片| 中文字菷夫前侵犯人妻| 中文字幕AV电影动漫亚洲有码| 成人a免费α片在线视频网站| 日韩亚洲欧美香蕉精品区| 亚洲欧美日本在线一区麻豆| 日韩字幕西瓜视频在线观看 | 特级特黄一级毛片免费| 国产免费观看avvvv| 97精品免费公开在线视频| 亚洲综合小视频| 成人漫画网羞羞免费漫画| 香蕉视频成人在线观看| 日韩人妻制服av| 男女生免费差差的在线小视频| 波多野结衣高潮喷水在线观看| 最新国产精品欧美激情| 免费观看又色又爽又湿的软件| 国产有码久久一区精品| 国产亚洲观看视频播放器| 精品精品国产自在久国产| a丨明星自慰18禁网站| 亚洲国产人在线| 国产精品二区三区免费在线| 经典国产三级在线观看| 国产精品99久久久久久久人美貌| 中文无码成人免费视频在线观看| 国产欧美中文字幕日韩| 国产99在线男女一级大黄| 亚洲国产成人αV人片久久网站| 亚洲丁香婷婷久久一区二区 | 欧美在线播放不卡| 日韩精品aⅴ一区二区| 欧美 日本一区二区三区视频| vr虚拟专区亚洲精品二区| 久久精品国产亚洲av高清片五虎| 黄色刺激视频免费在线观看| 小乌酱女警双丝脚足在线看| 欧美性爱乱伦视频| 91嫩草人人国产线| 97色偷偷福利视频| 东京热久久精品视频| 亚洲av午夜精品人妻| 亚洲男人天堂综合网| 在线观看国产一区亚洲bd| 四虎影院在线网址| 亚洲色大成网站www同| 91精品国产亚洲九色| 老怡红院av在线永久免费| 小草在线久草视频免费播放| 免费观看又色又爽又湿的软件 | 91第四色国产在线视频| 一级毛片免费不卡| 少妇极品少妇无码精品| 在线观看国产一区亚洲bd| 国产一级 级内射视频网站| 超碰国产人人草人人爽| 午夜性做爰aaaaa| 欧美精品白嫩BBWBBW| 黄色三级网站在线观看不卡| 精品日韩aⅤ一区二区三区v免| 岛国午夜一级毛片网站| av鲁丝片一区二区免费| 久久久精品欧美潮喷三级| 一级黄片一级毛片一级黄片 | 男女羞羞视频网站免费| 国产一级女人毛片色欲Av| 天天av影院免费看网址| 丝袜熟女脚交足在线一区| 亚洲av成年人在线观看| 欧美性猛交xxxx免费看久久| 黑丝制服影院| 亚洲Aⅴ男人的天堂网址在线观看 国产农村乱对白刺激视频欧美性爱亚洲 | 在线看片毛片国产| 妓女在线一区二区三区| www.视频在线观看| 亚洲熟女偷拍日韩精品| 欧洲成品大片在线播放| 免费无码黄网站在线看| 国产欧美日韩综合在线视频观看| 人妻蜜肉动漫中文| 国产成人啪精品网站| 色综合福利视频一区二区三区| 国产日韩欧美综合亚洲 | 亚洲精品成人片在线观看精品| 国精品人妻无码一区免费视频| 国产成人无码AⅤ片| 午夜1区2区3区4区5区入口| 91九色精品无码片一区二区三区| 野花日本大全免费观看3| h黄视频在线观看| 亚洲国产精品亚洲人成| 麻豆爱爱视频| 无码国模国产在线无码精品| 亚洲高清国产精品熟女| 亚洲最大精品久久久久久| 日本日本中文熟妇在线视| 久久免费看尻b影视| 欧美色色免费网站| 视频一区二区无码制服师生| 人妻无码AV天堂二区| 国产精品久久91| 自拍中文欧美三级| 精品一卡二卡三卡四卡分类| 欧美牲交A欧美牲交A图片| 中文字幕乱码一区二区免费| 中文字幕人妻少妇伦伦| 91香蕉视频黄下载| 亚洲第一大综合区日韩无码人妻电影| 亚洲最新在线不卡| 国产成人伦精品一区二区| 久久免費國產精品一區二區| 丁香色婷婷成人综合在线| 国产99精品婷婷天天逼插| 亚洲日本精品一区二区| 亚州毛片1234也解说| av无码人妻波多野结| 激情五月亚洲色图| 亚洲av无码乱码国产精品电影| 欧美专区黑人的巨大进入精品一区| 免费人成在线观看视频色| 欧美亚洲精品二区久久久| 国产激情二区欧美三区| 美精品a∨在线观看| 日韩激情小电影在线免费观看| 自拍中文欧美三级| 網友分享国产三级精品视频心得| 美女趴着被狂作爱动态视频| 欧美一中文字暮不卡| 国产精品激情综合久久| 成熟人妻AV无码专区A片| 久久超碰一区二区三区| 中文字幕人妻一区二区三| 久久99一区二区三区| 日韩中文字幕免费| 欧美老妇牲交videos| 性~交~乱~伦~色!| 激性欧美在线播激性欧美| 四虎综合九九色九九综合色| 国产福利酱国产一区二区| 亚洲国产人在线| 免费人成在线观看视频色| 欧美性猛交xxxx免费看久久| 国产午夜激无码av毛片网| 被伴郎的内捧猛烈进出h视频| 一级AA大片免费| 亚洲国产一区二区三区中文字幕影视日韩精品| 国产卡一卡2卡3卡4卡精品| 九一国产免费网站| 一本大道香蕉久97在线视频| 九九九国产这里只有精品视频| 最新欧美在线| 99亚洲一区二区三区在线观看| 精品国产自在在线| 老熟妇乱子伦系列视频| 青草99精品欧美国产| 中国女人与动人物牲交| 五月天综合网日本中文字幕网站| 免费无码黄网站在线看| 99精品国产精品亚洲一级毛片 | 日韩高清人妻一区| 国产A级理论片免费网站| 无码一区二区三区亚洲人妻 | 国产99在线男女一级大黄| 青草99精品欧美国产| 欧美午夜福利视频| 熟女分类香蕉视频黄网站 | 白丝jk网站国产免费| 荫蒂添的好舒服嗯快嗯呢来了视频| 老色鬼永久无码精品免费视频| 久久一热久久这里只有精品图片 | 中文字幕在线不卡一二三区超清| 国产一级AA片在线视频| 国产精品少妇一区二区| 精品国产无码一区| 边做饭时猛然进入高H| 亚洲 欧美 国产 制服 动漫| 激情亚洲一区国产精品婷婷九月| 日韩高清无码中文字幕综合一二三区| 中文字幕无线码免费人妻| 日韩天天综合网| 中文字幕版免费电影网站 | 白丝M字开腿强制呻吟| x8x8免费人成视频在线观看| 红桃视频在线无码观看| 欧美精品一区二区精品久久水多| 少妇无遮挡十八禁网站| 国产 欧美 日韩 精品 二卡| 亚洲综合av 一区| 青草影院在线观看| 欧美国产日产一区二区三区| sss视频在线手机| 性奴调教在线观看视频1区2区| 中文字幕 久久小次郎| 久久97成人欧美日韩网站| 国产a∨精品一区二区久久| 国产成人久久精品二区三区爱涩| 精美久久久久久人妻字幕| 久久老子午夜精品无码怎么打| 粉色成视频人app下载| 无码啪啪视频免费| 中文亚洲字幕福利12| 久久久国产精品亚洲一区国产福利免费看| 中国少妇毛茸茸| 一区二区三区高清日本国产| 国产一区二区三区性爱视频| 激性欧美在线播激性欧美| 清纯唯美自拍偷亚洲专区| 欧美又黄又裸乳的视频| 性一交一乱一猛一从视频| 99精品国产精品亚洲一级毛片| 三级视频黄色| 国产丝袜在线精品丝袜导航| 高清在线观看最新电影和热门影视剧 | 国产一区二区三区视频在线观看| av视频在线观看撸| 亚洲动漫无码一区| 国产真人一区二区三区| 欧美日韩精品区久久久| 日本免费视频一区一区| 丁香五月精品无码在线观看 | 欧美性爱亚洲激情| 国产图片一区| 狠操曰韩美女视频播放| 激情五月天婷婷在线视频| 在线观看视频中文字幕你懂的| 人与人恔配视频免费看| 九色视频免费看亚洲国产一久网摸| 亚洲无码另类高清| 日韩亚洲成人精品午夜在线| 精品自拍自产一区二区三区高清 | 免费福利午夜视频| 国产一区二区亚洲污在线观看| 91久久无码一区人妻A片蜜桃| 黑人巨大欧美一区二区视频| 成人国产片女人爽到高潮免费| 国产精品美女午夜勾搭| 国精产品一二三四区产品| 人妻18毛片a级毛片免费看| awyy爱我影院午夜| 老司机视频福利导航| 国产91丝袜在线播放国产| 亚洲精品国产自产| 午夜三级a三级三点窝558888| sss视频在线手机| 操逼无码视频| 18成人片黄网站WWW| 99热热这里只有精品| 高清无码爆乳护士在线播放 | 亚洲A∨日韩AⅤ无码电影| 亚洲男人的午夜天堂| 波多野结衣中文字幕加勒比| 青青青国产在线91| 婷婷六月激情在线综合| 奇米第四色在线观看| 欧美日韩中文字幕视频在线看| 日日摸夜夜添夜夜添破第一| 国产精品九九精品久久免费| 2012精品视频在线观看免费毛片| 少妇人妻精品午夜无码| 中文字幕+欧美+日韩| 在线观看十八禁无码| 精品偷自拍另類在線觀看| 欧美三级不卡在线| 男人天堂社区| 国产 日韩 在线 亚洲 字幕 中文| 午夜1区2区3区4区5区入口| 一区二区三区亚洲电影在线| 亚洲av无码一区二区三区6| 久久久夜色精品国产欧美乱| 亚洲综合色一区| 国产粉嫩泬一区二区三区| 在线 国产 一区二区| 欧美videos另类精品| 日韩中文无码AV系列电影| 日本高清一区二区久久| 国产一级免费在线| 强制侵犯系列中文字幕av| 九色在线亚洲自拍| 午夜色午夜视频之日本在线播放| 国产理论午夜三级在线观看 | 国产黄色片免费播放| 亚洲呦呦免费| 亚洲AV午夜成人无码网站色优| 韩国草草久久久无码国产专区 | 欧美破苞流血视频| 越狱犯强奷漂亮人妻| 日韩AⅤ在线免费观看| 亚洲一级毛片淫片| 毛片在线免费观看网站| 日韩钻石无码专区| 欧美日本亚洲日韩精品第二| 蜜臀久久人妻一区二区| 在线欧美综合自拍| 大骚妞国语对白骚| 中文亚洲字幕福利12| 久久中文字幕精品一区| 国产又色又爽又黄刺激的大片| 久久亚州AV无码精品午夜麻豆| 国产精品一区女同日常| 伊人97超碰在线观看| 在线免费成人日韩亚洲一区网| 老司机精品在线观看| 99爱国产高清小视频| 国产一级高潮片免费| 国产一区二区三区视频在线观看 | 亚洲欧美久久精品中文字幕| 囯产熟女视频精品免费看| 青草影院在线观看| 国产亚洲vs无码中文日日| 日本天堂视频在线观看| 偷拍日韩中文字幕欧美| 小苹果日本在线观看| 日韩精品视频在线一区二区三区| 丝袜熟女脚交足在线一区| 欧美午夜三级理论| 国产国产精品一国产精品| 国产v大片淫在线免费观看| 国产高清视频青青青在线| 亚洲国产欧美日韩在线| 色哟哟哟www精品视频观看软件| 亚洲精品中文字幕乱码4区| 亚洲国产日韩精品二三四区91| 国产精品午夜福利不卡120| 777米奇影院在线观看 | 欧美色激情在线二区| 一级日本牲交大片无遮挡| 久久精品免费一区二区不卡| 久久极品盛宴欧美| 大乳欲妇三级一区二区三区| 青青青免费国产在线视频 小草 | 成熟人妻AV无码专区A片| 中年夫妇大白天啪啪| 亚洲高清视频日本在线| 国产视频不卡在线观看| 国产精品香蕉在线| 亚洲精品十八禁在线| 香蕉国产偷在线| 久久日韩精品在线免费观看| 暖暖免费高清在线观看一区二区| 亚洲av乱码久久免费 | 国产一级黄片视频播放| 久久久无码精品亚洲日韩下载| 黄片一区二区三区| 妖精视频成人精品日韩一区| 奇米第四色在线观看| 人成高清毛片亚洲| 人与驴交配过程高清网站| 欧美一区二区午夜福利在线观看| 欧美成 人 在线播放免费BD| 免费在线观看你懂得| 国产精品一区二区在线欢| 国产无遮挡18禁无码网站性色| 欧美性猛少妇xxx| 国产又色又爽又黄刺激的大片| 国产传媒视频在线观看| 久久精品国产亚洲?v豆腐| 午无影院免费看视频| 水中色av综合站| 日韩AV毛片在线观看免费| 国内天码乱码一区二区| 一本色道久久综合亚洲av| 精品婷婷乱码久久久久久| 日出水了好深好涨h文| 成熟人妻AV无码专区A片| 疯狂做受xxxⅹ高潮男女韩国| 国产精品99在线一区二区| 国产成人无码AⅤ片| 国产手机在线91精品观看| 欧美在线一级va免费观看互動交流| 97人妻碰碰碰久久久| 国产成人av一区二区三区在线| 亚洲伊人a和欧美伊人和a| 在线看片网站| 激情四射婷婷| 沈阳老熟女高潮喷水| av无码久久动态图| 亚洲欧美日韩久久精品一区| 让人看了想要做的文章1000字| 免费无码爽刺激视频| 乱码视频在线播放专区| 亚洲日本免费不卡一二三区| 欧美一级视频免费| 国产精品亚洲不卡二区性色| 久久久夜色精品国产欧美乱| 无码 人妻 在线| 国产成人不卡顿视频在线观看免费| 国产自慰无码一区二区三区| 无码三级视频xxxx69| 大香j蕉75久久精品免费8| 夜夜嗨亚洲国产糸列久久精品| 国产又大又粗又长在线无码视频| 国产精品中文无码第一页av在线| 亚洲丝欧美精日韩综合一二三妖精| 亚洲无码电影一区二区| 女人的精水喷出来视频| 亚洲中文字幕无码手机版| 亚洲A v片不卡无码久久蜜芽| 色av综合av无码aⅴ电影| 在線播放人成午夜免費視頻| 日韩 国产 欧美 视频| 无码av不卡一区中文字幕| 日本免AⅤ欧美在线观看| 国产欧美久久久精品影院| 国产白丝袜美女久久久久久久 | 黄片AV在线免费播放| 午夜热播影视剧免费电影在线观看完整版| 国产黄色A一片免费看| 天天操小姐夜夜操美女| 国产精品免费无需播放器看| 国产男女猛烈视频在线观看麻豆 | 亚洲AV无码专区久久性色| 亚洲精品人成三区| 国产精品嫩草影院永久在| 99久久中文字幕日本伦理| 青草99精品欧美国产| 欧美日韩精品黄漫在线观看| 极品福利视频| 成熟孕妇裸体作爱视频| 一级黄片视频直播无码| 国产又大又粗又黄专区| 2022无码视频网站| 欧美一二三级精品在线| va亚洲v专区在线| 男人天堂社区| 操逼无码视频| 久久影音第一页午夜| 日韩中文在线播放| 无码一区二区久久中文| 国产国拍精品av在线观看按摩 | 老少配XXX性老少配| 神马影院三级| 国产古装全黄A级视频一本久久精品一区二区| 成人无码视频在线观看免费播放| 亚洲丝欧美精日韩综合一二三妖精| 最新国产孕妇孕交视频| 欧美色色免费网站| 亚洲精品欧美精品| 在线亚洲午夜片av大片动图| 国产精品无码高清在线| 国产无码一区二区久久| 欧美精品一区二区精品久久| 欧美中文字幕精品一区| 天天狠天天插| 国产精品淫荡人成视频免费vod| 精品婷婷乱码久久久久久| 大乳欲妇三级一区二区三区| 在线免费亚洲欧美| 国产色综合久久| 777米奇影院在线观看| 亚洲国产中出无码| 五月六月丁香婷婷激情| 欧美V国产V日本V| 亚洲综合av 一区| 在线视频高清无码| 亚洲精品成人毛片久久久| 久久99九九99九九| 好看的看黃a大片爽爽影院| 麻豆激情久久av| 欧美激情第5页拍拍| 国产无遮挡又爽又刺激的在线观看 | 国产欧美日韩麻豆三级| 久久久夜色精品国产欧美乱| 二人剧烈运动扑克网站真实| 欧洲亚洲色一区二区色99| 亚洲午夜视频在线观看一区二区三区| 自慰喷潮国产在线观看| 成人网站亚洲欧美| 都是在线观看无码精品| 中文文精品字幕一区二区| 国产精彩美女久久| 国产最新婷婷综合一区| 欧美一区二区三区开放视频| 美女黄免费网站| 成人无码AV网站在线观看| 成人AAA级免费视频| 亚洲国产日韩欧美高清片18| 刻晴ちゃんが部下を什么意思| 粉嫩一区二区三区粉嫩性色av| 一本大道香蕉久97在线视频| 国产在线一区二区三区四区aV| 99国产精品久久99久久久| 韩日天天干夜夜做视频| 在線播放人成午夜免費視頻| 亚洲无码中文字幕色网视频| 亚洲av午夜精品三区| 老师办公室h荡肉呻吟视频日本 | 沈阳老熟女高潮喷水| 国产刘玥在线视频观看| 真实的和子乱拍在线观看| 国产成人不卡综合亚洲看片| 激情婷婷综合图片亚洲综合| 国产下药迷倒白嫩丰满美女bd | 欧美一区二区三区午夜| 亚洲AV无码一区东京热久久妖精| 麻豆精品福利视频| 老色鬼永久无码精品免费视频 | jizz动漫精品视频免费观看|