999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MicroBlaze的μC/OS-II操作系統移植①

2017-06-07 08:24:04常華利尹震宇
計算機系統應用 2017年5期
關鍵詞:嵌入式系統

常華利,尹震宇

1(中國科學院大學,北京100049)

2(中國科學院 沈陽計算技術研究所,沈陽 110171)

基于MicroBlaze的μC/OS-II操作系統移植①

常華利1,2,尹震宇2

1(中國科學院大學,北京100049)

2(中國科學院 沈陽計算技術研究所,沈陽 110171)

LT-H10滾齒機數控系統采用基于ARM的系統結構,其處理器等性能、資源比以往基于x86的系統受到很大的限制,所以CPU的占用率也相對較高.為了降低ARM CPU的占用率把系統運行的部分主站控制驅動程序遷移到底板FPGAMicroBlaze軟核處理器上運行,本文提出了一種基于MicroBlaze軟核處理器的μC/OS-II的移植方案.測試實驗結果表明μC/OS-II系統移植到MicroBlaze之后能穩定的運行.快速的任務上下文切換更有利于數控系統的實時性.針對MicroBlaze μC/OS-II系統和ARM Linux系統設計了兩個不同的任務調度算法對任務上下文切換的時間開銷進行研究、測量和分析.此研究方案不僅可以滿足基于ARM的數控系統的應用需要,同時適用于基于x86的數控系統,達到降低系統CPU占用率的目的,在嵌入式數控系統中具有重要的研究意義與應用價值.

FPGA;MicroBlaze;μC/OS-II;移植

LT-H10控制系統是針對滾齒機的專用控制系統,是基于ARM處理器的嵌入式數控系統[1],底層硬件采用了FPGA實現系統主站,完成基本的電平轉換、信號采集等功能.系統主站要實現伺服-脈沖控制,總線協議,I/O控制,數字光柵尺控制,計數器,主軸控制等功能.進一步的這些控制功能還需要實現在驅動程序部分,運行這些功能會占用大量ARM主處理器資源[2],而且控制指示燈以及超時報警的檢測、處理等也會占用ARM CPU資源.此外,GPMC總線帶寬有限,傳輸原始數據時,也會帶來總線的大量開銷,并不利于實時性.

本文以LT-H10控制系統為研究對象,提出了一種基于MicroBlaze軟核處理器的μC/OS-II的移植[3]方案.把系統運行的部分主站控制驅動程序遷移到底板FPGA MicroBlaze軟核處理器上運行,以達到降低ARM CPU占用率的目的.

此研究方案不僅適用于基于ARM的數控系統,同時適用于基于x86的數控系統,達到降低系統CPU占用率的目的,在嵌入式數控系統中具有重要的應用價值.

1 μC/OS-II、MicroBlaze概述及系統移植的可行性分析

1.1 實時操作系統μC/OS-II

μC/OS-II操作系統[4]目前在工業領域中使用的非常廣泛,作為一種源代碼公開的實時嵌入式操作系統,最多可支持63個任務,其內核為占先式(即執行就緒態中優先級最高的任務)并支持信號量、郵箱、消息隊列等多種進程間通信機制;同時用戶可以根據需要對內核中的功能模塊進行裁剪[5];并且μC/OS-II操作系統代碼很簡潔,僅有5500行代碼,而且其大部分代碼是使用C語言編寫的,只有與硬件相關的少量代碼需要使用目標板支持的匯編語言[6].所以說μC/OS-II具有內核小巧、可裁剪、實時性強、多任務、方便移植到多種嵌入式平臺等特點,使得各個任務獨立工作,互相不干涉,從而很容易使得任務被準確執行,使實時應用程序的設計和擴展變得簡單[7,8].

1.2 軟核處理器MicroBlaze

Xilinx首創了現場可編程邏輯陣列(FPGA)這一創新性的技術,隨著FPGA的技術的發展,其邏輯容量逐步增大而成本越來越低[9].這種趨勢下,FPGA可以代替系統中越來越多的器件,并且發展到FPGA片上系統.Xilinx推出了32位軟核處理器MicroBlaze,用來替代片上的微控制器,有效的縮小了PCB板的面積和器件數量,降低了整個系統的成本.該處理器采用32位RISC哈佛存儲結構,擁有極其靈活的架構以及豐富的指令集.MicroBlaze軟核處理器具有占用資源少、可配置性強的特點,可以和其他外設IP核一起,完成可編程芯片的設計.MicroBlaze軟核處理器采用Xilinx公司提供的嵌入式開發套件EDK進行設計開發,設計套件DEK提供了硬件平臺開發環境XPS和軟件平臺開發環境SDK[10].

1.3 μC/OS-II代碼結構分析以及處理器相關核心代碼

從μC/OS-II移植的過程來看,μC/OS-II代碼邏輯上可以分為三大組成部分:與處理器無關的內核代碼、與處理器有關的核心代碼、與軟硬件環境設置有關的配置代碼[11].如圖1是μC/OS-II操作系統的代碼結構.

圖1 μC/OS-II的代碼結構

其中與處理器無關的內核代碼主要實現是任務管理、信號量、內存管理、消息隊列、系統調用等功能(主要包括os_core.c、os_flag.c、os_mbox.c、os_mem.c、os_mutex.c、os_q.c、os_sem.c、os_task.c、os_time.c、ucos_ii.h、ucos_ii.c);

與處理器有關的核心代碼主要與操作系統的移植相關(主要包括os_cpu.h、os_cpu_a.s、os_cpu_c.c);

與軟硬件環境設置有關的配置代碼主要用于裁剪和設置操作系統(主要包括os_cfg.h、includes.h).

1.4 μC/OS-II在MicroBlaze上移植的可行性分析

移植的目標是使得這個實時內核能夠在軟核處理器MicroBlaze上得到運行.要使μC/OS-II能夠正常運行,處理器必須要滿足:

1)處理器的C編譯器能夠產生可重入代碼,并且使用C語言就可以完成開關中斷;

2)處理器支持中斷;

3)處理器支持可以容納一定數據量的硬件堆棧;

4)處理器有把堆棧指針和其他寄存器讀出和存儲到堆棧或者是內存中的指令.

DEK軟件開發套件內置的編譯器能夠產生可重入代碼,并支持內嵌匯編語言,在C語言環境中可進行任意的開關中斷操作;MicroBlaze有專門的堆棧指針寄存器,足夠大的內部BRAM容量能夠完全硬件堆棧;另外,MicroBlaze的指令集包含有豐富的指令對堆棧進行操作,可以方便的對處理器中的寄存器進行堆棧操作.所以,μC/OS-II完全可以移植到軟核處理器MicroBlaze上.

2 系統移植設計和相應測試實驗

2.1 使用ISE14.7集成軟件環境搭建系統移植環境

主要設備和軟件:PC機一臺、ISE14.7集成軟件環境以及圖2所示的FPGA測試板.

圖2 FPGA測試板、Xilinx JTAG下載器,和FPGA測試板電源盒

利用EDK的板級開發包向導(BSB Wizard)對硬件平臺進行定制,處理器時鐘頻率是50MHZ,內存約束至32KB,添加一個GPIO IP核.

搭建系統移植環境的步驟:

1)使用ISE14.7建立工程

根據所用FPGA芯片設置對應測試板信息:架構是Spartan3e,設備型號是xc3s500e,封裝是pq208,速度是-4.

2)向工程添加VHDL Module,修改cpuv01.vhd文件,如圖3.

3)向工程添加Embedded processor文件,自動開啟EDK板級開發包向導(BSB Wizard)構建硬件平臺.如圖4所示,處理器時鐘頻率是50MHZ,內存32KB.

4)IP核地址設置

如圖5所示,設置IP核地址:GPIO的基地址是0x90000000,高地址是0x900001FF.

圖3 cpuv01.vhd文件

圖4 處理器信息設置

圖5 設置IP核地址

5)添加UCF約束文件

UCF文件用來添加信號的管腳約束與時序約束,通過文本編輯器來修改.

把串口的輸入輸出信號與FPGA芯片相應管腳相連,時鐘信號引腳為P77,復位引腳為P54,測試板上P96、P97、P98、P99、P100和P102對應測試板上一組LED,并設置輸入時鐘頻率為50MHZ.

通過以上步驟完成硬件平臺的建立,導出硬件平臺文件到SDK,在SDK中新建 Application Project,就完成了系統移植環境的搭建,接下來就可以開始移植μC/OS-II操作系統到MicroBlaze處理器.

2.2 移植的步驟

1)使用SDK軟件開發套件為μC/OS-II操作系統建立一個目錄,在該目錄下創建工程,加入μC/OS-II內核文件到這個工程.

2)根據測試板硬件環境移植os_cpu.h

os_cpu.h包含和CPU相關的不能通用的數據類型的定義、變量聲明、函數代碼的聲明部分.部分數據類型的定義:

由于不同的處理器有不同的字長,μC/OS-II的移植包括一系列類型定義,以確保可移植性.MicroBlaze是32位處理器,堆棧入口寬度是32位,所以OS_STK被定義為32位,所有的任務堆棧也都用OS_STK來聲明,狀態寄存器也是32位的,所以OS_CPU_SR也被定義為32位.

μC/OS-II在進入系統臨界代碼段之前要進行關閉中斷,退出臨界代碼段時要打開中斷,從而保證核心數據不被多任務環境下的其他任務中斷破壞.在μC/OS-II操作系統中提供了三種針對MicroBlaze的處理中斷的方式,這里用到了第三種方式,即OS_CRITICAL_METHOD==3,用戶可以取得當前處理器狀態字的值,保存在C函數的局部變量中,這個變量就是用來恢復程序狀態字的值.另外,MicroBlaze的 堆 棧 地 址 由 低 到 高 增 長 , 故OS_STK_GROWTH==1.

3)根據測試板硬件環境移植移植os_cpu_c.c

需要編寫 10個簡單的 C函數,分別是OSInitHookBegin() 、 OSInitHookEnd() 、OSTaskCreateHook() 、 OSTaskDelHook() 、OSTaskIdleHook() 、 OSTaskStatHook() 、OSTaskStkInit()、OSTaskSwHook()、OSTCBInitHook()、OStimeTickHook().其 中 唯 一 必 要 的 函 數 是OSTaskStkInit(),此函數用來初始化任務堆棧,初始狀態的堆棧模擬發生一次中斷后的堆棧結構在初始化堆棧寄存器時用與寄存器號相對應的值進行初始化,目的是便于調試.其余9個必須聲明,但不一定要包含任何代碼.

4)根據測試板硬件環境移植os_cpu_a.s.

對OS_CPU_A.S進行移植,主要是編寫4個匯編語言函數,分別是:多任務啟動函數調用的一個函數OSStartHighRdy()、任務切換函數OSCtxSw()、中斷任務 切 換 函 數 OSIntCtxSw()和 中 斷 服 務 函 數OS_CPU_ISR().μC/OS-II啟動時調用OSStart(),而OSStart()又調用OSStartHighRdy()運行優先級最高的任務.OSCtxSw()的調用發生在有更高優先級的任務就緒或者當前任務不可執行的情況下.如果任務執行了某個函數,其結果改變了當前任務的狀態,或是改變了別的任務狀態都會引起新的任務調度.判斷有比中斷更重要的任務在運行時,OSIntCtxSw()被OSIntExit()調用.MicroBlaze為每一個中斷都提供一個單獨的中斷向量,Xilinx的XPS工具會自動的生成中斷向量表,地址空間為0x00000010-0x00000014.OS_CPU_ISR()用于判斷中斷源以及執行器件所對應的中斷語句和函數.

2.3 編寫應用程序測試操作系統

為了驗證μC/OS-II操作系統是否成功移植到軟核處理器MicroBlaze中,編寫應用程序進行測試,具體思路是:

首先建立主程序,如main.c.主程序中的入口函數OSInit執行操作系統初始化函數;

其次是調用OSTaskCreate()創建控制測試板LED的任務AppTaskFirst,其優先級為5用來控制引腳分別為P96、 P98、P100的LED的亮滅;

最后OSStart()開啟多任務,調用OSStartHighRdy()運行優先級最高的任務,任務AppTaskFirst優先級最高,會循環執行.

設計測試程序代碼如下:

編譯應用程序,并通過Program FPGA把軟件程序生成的可執行可鏈接格式文件(.ELF)同硬件比特流文件(.BIT)下載到FPGA的測試板.設置斷點調試代碼,通過跟蹤調試移植的μC/OS-II代碼和觀察LED的亮暗情況,不斷修改代碼直到確定操作系統正常運行,至此則μC/OS-II操作系統移植成功.

高職院校的學生營養素攝入少、三餐不合理、進食快、活動量少、經常熬夜,從而造成營養不良、肥胖發生率較高。調查發現,由于學生的營養知識的匱乏與營養意識的淡薄,普遍存在著膳食結構不合理的現象;并且高職院校學生大多數不注意奶制品的攝入,這與他們從小的生活習慣和飲食習慣有關[4]。

3 測量任務切換時間

3.1 在ARM處理器上測量任務切換的時間

實驗環境:安裝 CentOS Linux系統的 ARM Cortex-A8 TQ335X開發板、安裝交叉編譯工具鏈的CentOS Linux系統.

設計一個基于優先級的可搶占的任務調度算法:創建兩個具有不同優先級的實時任務taskA和taskB,其中taskA的優先級高于taskB的優先級,兩個任務每隔5毫秒發生一次調度.taskA和taskB主體部分均可用如下偽代碼表示.

任務開啟時,調用clock_gettime()函數取得一次系統時間,接著執行一段延遲代碼,再次調用clock_gettime()函數取得一次系統時間(兩個時間的差值看做任務一次執行的周期),然后設置任務調度周期(這里設為5毫秒,也可以是其它合理值),最后調用clock_nanosleep()將任務掛起直到這一調度周期結束,將開始下一次循環.

單獨運行taskA的進程時的部分結果:

可以看出taskA每隔5毫秒執行一次,并且使用30組數據計算得到taskA的平均執行時間是1334.229微秒.

單獨運行taskB的進程時的部分結果:

同時運行taskA和taskB的進程時的部分結果:

可以看出taskA和taskB每隔5毫秒執行一次且運行時發生CPU搶占,taskB的進程運行時發現有優先級更高的taskA的進程就緒時,發生一次任務切換,taskA的進程運行結束退出CPU發生第二次任務切換,taskB的進程接著運行直到進程結束,然后下一調度周期,開始新的一輪的進程調度.所以,兩任務共同執行的時間應該包括taskA單獨執行的時間、taskB單獨執行的時間以及兩次任務切換的時間.

表1 19組任務切換的時間及平均時間

13 2047.292 25.878 14 2046.333 25.398 15 2047.000 25.732 16 2046.750 25.607 17 2046.583 25.523 18 2046.583 25.523 19 2046.958 25.711平均值 2053.737 29.100

由表1可以看出,taskA和taskB的共同執行時間是的平均值是2053.737微秒,任務切換的性能:任務切換的平均時間29.100微秒,最差情況下是53.711微秒.

3.2 在MicroBlaze軟核處理器上測量任務切換時間

實驗環境:ISE14.7集成軟件環境、FPGA測試板和示波器.

1)設計基于優先級的任務調度算法

為了測量任務在MicroBlaze軟核處理器上切換時間,設計了一個基于優先級的任務調度算法,具體思路是:任務創建時調用OSTaskCreate()創建兩個控制測試板LED的任務,任務AppTaskFirst優先級為5用來控制引腳分別為P96、P98、P100的LED的亮滅,任務AppTaskSecond優先級為6用來控制引腳分別為P97、 P99、P102的LED的亮滅;OSStart()開啟多任務,調用OSStartHighRdy()運行優先級最高的任務AppTaskFirst,任務AppTaskFirst完成控制引腳分別為P96、P98、P100的LED的亮滅之后調用OSTaskSuspend將自身掛起,進行任務切換,執行系統里優先級最高的任務AppTaskSecond,任務AppTaskSecond完成控制引腳分別為P97、P99、P102的LED的亮滅之后調用OSTaskResume將任務AppTaskFirst喚醒,接下來的時間任務就在AppTaskFirst和AppTaskSecond之間不斷來回切換 .

相關程序代碼如下:

2)估算任務的切換時間

為了得到任務切換的時間這里使用示波器測量了測試板P96、P98兩個管腳對應的I/O口的電平變換.對應不同延遲參數M和N使用示波器來測量LED亮和暗的延遲.如圖6和圖7分別是延遲參數M和N均為4時使用示波器測得的LED亮的延遲和LED暗的延遲.由圖6可知LED亮的延遲是252微秒,由圖7可知LED暗的延遲是272微秒.

圖6 M和N均為4時LED亮的延遲

圖7 M和N均為4時LED暗的延遲

由測試程序的代碼可知,LED亮的延遲是調用delay的延遲;LED暗的延遲調用delay的延遲與任務切換時間開銷之和.這里LED亮的延遲大小和LED暗的延遲中調用delay的延遲大小應該是相等,故可得到任務切換時間是20微秒.

由于使用示波器測得的數值帶一定誤差以及電平變換有延遲等原因,所得到的結果也是有誤差的.所以為了能夠更好的分析LED亮的延遲和LED暗的延遲,這里使用了統計的辦法:針對延遲參數M和N,設計了16組不同的實驗,每組實驗用示波器測得LED亮的延遲T1和LED暗的延遲T2.

表2 針對M和N的16組不同實驗及其結果

由于LED亮的延遲是調用delay的延遲和LED暗的延遲中調用delay的延遲是關于M和N對應成比例的,即T1/M=T2/N,故T2-N*T1/M是任務切換的時間.

4 249 521 23 6 2 361 153 33 8 6 345 265 35 6 6 345 377 33 4 6 345 489 29 8 2 505 153 27 8 8 473 281 41 8 6 489 393 27 4 8 8 473 505 32平均值 28.875

由表2可知,(T2-N*T1/M)在落在一個很小的區間[16微秒,41微秒]內,結果是有意義的.這里(T2-N*T1/M)的平均值是28.875微秒,最大值41微秒,據此得到任務切換的性能:任務切換的平均時間28.875微秒,任務切換的最差情況是41微秒.

3.3 實驗結論

任務在ARM Linux系統上切換的平均時間29.100微 秒,最 差 情 況 是 53.711微 秒;任 務 在MicroBlazeμC/OS-II系統上切換的平均時間是28.875微秒,與在ARM Linux系統下結果一致,最差情況是41微秒較ARM Linux系統要好一些.實驗結果表明μC/OS-II系統移植到MicroBlaze之后,不僅可以穩定的運行,而且可以實現快速的任務切換,符合數控系統的實時性要求,可以滿足LT-H10滾齒機控制系統的應用需要.

4 結語

本文以LT-H10滾齒機控制系統為課題背景,針對系統CPU占用率高的問題,為了降低系統CPU占用率,把系統運行的部分主站控制驅動程序遷移到底板FPGA MicroBlaze軟核處理器上運行,提出了一種基于MicroBlaze軟核處理器的μC/OS-II的移植方案.使用ISE14.7集成軟件環境構建移植環境將μC/OS-II移植 FPGA MicroBlaze軟核處理器上,通過測試μC/OS-II在 MicroBlaze可以穩定運行.針對MicroBlazeμC/OS-II系統和ARM Linux系統設計了兩個不同的任務調度算法對任務的切換時間進行測量和研究.實驗結果表明移植到MicroBlaze上的μC/OS-II系統不僅可以穩定的運行,而且可以實現快速的任務切換,符合數控系統的實時性要求,可以滿足LT-H10滾齒機控制系統的應用需要.

為了降低ARM CPU的占用率還有許多工作要做,首先要實現ARM處理器Linux操作系統與FPGA MicroBlaze軟核處理器μC/OS-II操作系統的通信設計.在LT-H10滾齒機控制系統中主站要實現伺服-脈沖控制,總線協議,I/O控制,數字光柵尺控制,計數器,主軸控制等功能,這些控制功能是實現在驅動程序部分的,為了降低ARM CPU的占用率,需要實現這些驅動從ARM處理器Linux操作系統到FPGAMicroBlaze軟核處理器μC/OS-II操作系統的下載.

1費繼友,周茉.基于+的嵌入式數控裝置設計.制造技術與機床,2010,12(12):61–64.

2季照平.基于單片機ARM嵌入式技術的數控系統的開發研究.輕工科技,2015,(11):47–48,68.

3劉建康,付云忠.基于ARM_FPGA的嵌入式數控系統硬件設計[碩士學位論文].哈爾濱:哈爾濱工業大學,2013.

4張開生,陳明,周子超.實時操作系統μC/OS-II的實現.電子科技,2013,26(10):36–39.

5趙偉國,李文軍,梁國偉.實時嵌入式操作系統-在上的移植.中國計量學院學報,2005,16(2):137–139.

6陳果,馮靜.系統及其消息隊列詳析.電子元器件應用,2011, 3(3):38–42.

7王帥,陳金鷹,鄒振宇.基于的μC/OS-II移植.中國集成電路, 2011,20(7):80–84.

8邵貝貝等譯.嵌入式實時操作系統μC/OS-II.第2版.北京:北京航空航天大學出版社,2003.

9孫豐祥,程玉偉,胡恩俊,等.基于軟核的嵌入式最小系統.化工自動化及儀表,2013,8(8):36–39.

10胡志東,韓曉明,馬瑞.嵌入式技術在雷達數字接收機中的應用.信息通信,2016,3(3):63–65.

11單超,王萍,朱愛民,等.基于 軟核的嵌入式系統設計.單片機與嵌入式系統應用,2011,11(3):18–21.

μC/OS-II System Porting Based on MicroBlaze Processor

CHANG Hua-Li1,2,YIN Zhen-Yu2

1(University of ChineseAcademy of Sciences,Beijing 100049,China)
2(Shenyang Institute of Computer Technology,ChineseAcademy of Sciences,Shenyang 110171,China)

The LT-H10 hobbing machine numerical control system is an embedded system based on ARM processor.The CPU occupancy in ARM-based NC system is always higher than that in x86-based systems for some characteristic of ARM processor itself limits.A μC/OS-II system porting scheme based on MicroBlaze soft-core processor is presented in this paper,to reduce the occupancy of ARM processor by executing some driver programs of master station on the MicroBlaze soft-core processor of FPGA chip on the bottom plate.The experimental test results show that the μC/OS-II system ported on the MicroBlaze processor can run stably.The rapid context-switch benefits to the real-time of the NC system.We design two different tasks scheduling algorithm to measure and research the context-switch time in MicroBlaze-based μC/OS-II system and ARM-based Linux system.This study can not only meet the application needs of CNC system based on ARM,but also can been applied to CNC system based on X86,to achieve the purpose of reducing CPU occupancy,which has important research meaning and application value in Embedded CNC system.

FPGA;MicroBlaze;μC/OS-II;porting

國家科技重大專項(2014ZX04009031)

2016-08-12;收到修改稿時間:2016-09-23

10.15888/j.cnki.csa.005742

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 91福利免费视频| 精品少妇人妻无码久久| 99视频免费观看| 一级毛片免费高清视频| 中国一级特黄视频| 国产不卡在线看| 国产成人乱码一区二区三区在线| yjizz视频最新网站在线| 女同久久精品国产99国| 欧美一区二区自偷自拍视频| 成人a免费α片在线视频网站| 成人久久精品一区二区三区| 国产永久在线观看| 日本中文字幕久久网站| 成人精品视频一区二区在线| 欧美日韩成人在线观看| 国产乱子伦手机在线| 精品无码人妻一区二区| 国产jizzjizz视频| 老司机精品99在线播放| 国产人在线成免费视频| 成年女人a毛片免费视频| 欧美视频免费一区二区三区| 丰满少妇αⅴ无码区| 九九九精品成人免费视频7| 国产一区免费在线观看| 欧美α片免费观看| 在线欧美日韩| 2021国产精品自拍| 欧美.成人.综合在线| 99精品伊人久久久大香线蕉| 大香网伊人久久综合网2020| 无码一区二区波多野结衣播放搜索| 国产成人AV男人的天堂| 国产精品久线在线观看| 国产精品无码久久久久AV| 久久国产黑丝袜视频| 国产女人在线观看| 最新亚洲人成无码网站欣赏网| 久久99国产视频| 色妺妺在线视频喷水| 国产女人在线视频| 久久公开视频| 国产成人精品在线1区| 国产乱人乱偷精品视频a人人澡| 99热这里只有精品国产99| 最近最新中文字幕免费的一页| 67194亚洲无码| 91成人免费观看| 国产成人综合亚洲欧美在| 在线视频亚洲色图| 欧美成人午夜影院| 久久综合九九亚洲一区| 亚洲综合在线最大成人| 五月婷婷综合在线视频| 色老头综合网| 久久精品人人做人人| 亚洲一级毛片免费看| 91成人在线观看视频| 国内精品视频| 青青草原偷拍视频| 57pao国产成视频免费播放| 污网站免费在线观看| 日韩毛片视频| 免费不卡在线观看av| 黄色污网站在线观看| 久久香蕉国产线看观看精品蕉| 国产综合欧美| 国产精品尤物铁牛tv| 国产免费久久精品44| 欧美在线黄| 国产精品流白浆在线观看| 91精品综合| 国产日韩欧美成人| 国产精品亚洲综合久久小说| 国产亚洲精品资源在线26u| 国产特级毛片| 熟妇人妻无乱码中文字幕真矢织江| 中文字幕人成人乱码亚洲电影| 国产一区在线视频观看| 色一情一乱一伦一区二区三区小说| 国产波多野结衣中文在线播放|