• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    MATLAB程序轉C代碼的方法研究

    2018-01-15 22:41:39周世欽王波濤
    價值工程 2018年2期

    周世欽+王波濤

    摘要:通過MATLAB程序轉C代碼的研究與應用可以加快軟件、算法從研究到實際應用的進程,提高軟件、算法研發(fā)的效率。對于轉C的流程、方法、注意事項以及限制等問題需要深入研究。以MATLAB2014的轉C工具MATLAB Coder為基礎,分析了MATLAB轉C代碼的細節(jié),完整地研究了MATLAB代碼轉成C代碼的整體流程。通過合理的轉C規(guī)范,MATLAB支持常規(guī)算法和大多數工具庫函數轉C,保持原功能、邏輯不便。使用動態(tài)預分配內存,外置接口,簡化函數等方法,使得一部分非常規(guī)算法、不支持轉C或限制性MATLAB函數能夠正確轉化為C語言代碼。

    Abstract: The research and application that MATLAB program transforming to C code can expedite the progress from algorithm or software research to practical application and improve the efficiency of software or algorithm development. These problems about transformation's processes, methods, points for attention, limitation and so on need to be further researched. Based on MATLAB Coder of Matlab2014 tool for transforming to C, it analyses details of MATLAB transforming to C code and its whole process. With reasonable transformation specification, MATLAB support general algorithm and most tool functions to transform to C code, which retain intrinsic function and logic. Using some methods such as dynamically pre-allocating memory, external interface and simplifying functions, it also makes a part of uncommon algorithm and MATLAB tool functions which are not support to transform to C or have transformation limitation possible to successfully transform to C language code.

    關鍵詞:Matlab轉C;Coder;代碼規(guī)范;轉C流程;轉C限制

    Key words: Matlab transformingto C;Coder;code specification;transformation process;transformation limitation

    中圖分類號:TP311 文獻標識碼:A 文章編號:1006-4311(2018)02-0182-04

    0 引言

    目前,利用Matlab軟件[1]作為工具來進行算法設計、驗證已經成為研究者們首選的手段之一[2],而通過Matlab轉C,可以直接將Matlab函數轉換成高效優(yōu)化的C程序,移植到嵌入式環(huán)境中去[3]。

    Matlab Coder工具是MathWorks公司推出的Matlab2014a版本中一個重要的產品[4],它可以將Matlab 函數直接生成C代碼[5]。借助Matlab Coder,軟件工程師不再需要將設計的算法進行C語言重新編程,而是利用Matlab軟件中強大的函數庫[6],按照通用的轉C流程,參照轉C規(guī)范,通過建立Matlab函數,并設置目標語言所需要的參數,生成能夠脫離Matlab環(huán)境獨立運行的C代碼,這樣就大大減輕了軟件工程師的編碼工作[7]。

    對于基于Matlab2014a版本Coder的Matlab轉C,本文介紹經過實踐的、行之有效的轉C方案與流程,并將轉C中遇到的問題與解決方法、思路在下文中進行介紹,以助于更好的實現(xiàn)轉C工作。文章接下來的一節(jié)將詳細介紹Matlab程序整體轉C代碼流程。對于轉C過程中的幾個常遇問題及其處理方法,將在隨后的一節(jié)中羅列出來并給出詳細說明。實際轉C過程中,可能會存在障礙和一些限制,對此,創(chuàng)新性地通過動態(tài)預分配內存,外置接口,簡化函數等方法化解,在文章的最后一節(jié)將會對此進行詳細說明。

    運用matlab轉C方法,可以方便、快捷、準備地將matlab算法轉化成C語音實現(xiàn),使之運用在嵌入式環(huán)境成為可能。通過本文的詳細介紹,能夠使讀者對于使用matlab coder工具進行matlab轉C有更加直觀、系統(tǒng)的認識;引導讀者正確使用2014a版本的matlab coder進行matlab轉C工作;為從matlab算法設計、仿真、驗證到算法的C語言實現(xiàn)、嵌入式環(huán)境應用提供了一條切實可行的途徑;同時,文章中也著重列出了多項技術要點,是轉C工作順利進行和是否成功的關鍵所在,對實際matlab轉C工作有著重要的借鑒意義。但也應當了解到, Matlab轉C依然存在著無法解決的情況,這些情況并不在本文討論范圍之內,故應盡量避開之,或者,隨著Matlab Coder的升級,某些問題可隨之化解。

    1 Matlab程序整體轉C代碼流程

    借助Matlab Coder轉C有其一定的步驟與要求規(guī)范,Matlab2014a版本Matlab Coder的轉C流程如圖1所示,以及其重要的幾步工作如下所述。簡單的Matlab函數經過簡單的調整,經過如下步驟和要求就能成功轉C,而面對復雜的情況時,除了要按照上述流程嚴格執(zhí)行外,還要根據具體情況做出相應的修改才能達到某些步驟的要求。endprint

    1.1 封裝Matlab函數

    將Matlab程序所要實現(xiàn)的功能封裝成一個Matlab函數文件,并將其所實現(xiàn)的功能結果作為函數輸出,將所需的數據作為輸入,再將整個函數的代碼進行規(guī)范,以此作為轉C函數。對于Matlab程序,腳本文件[8]是無法通過Coder 工具轉成C代碼的,只有函數文件能通過Coder工具轉成C。

    轉C前要對函數代碼進行轉C規(guī)范。大部分不符合規(guī)范的代碼都可以通過代碼分析器檢測出來(編譯文本框的左側有對應的提示),可通過此依次做出相應的修改,以達到轉C要求。小部分是代碼分析器檢測不到的,需要自己發(fā)現(xiàn)或者轉C編譯報錯時才能從錯誤報告中找到,并對其進行規(guī)范。完成規(guī)范之后才能通過Matlab Coder進行轉C。

    1.2 函數整體分析

    利用Code Generation Readiness Tool整體分析函數是否符合轉C要求。此步驟主要檢查轉C函數中是否調用了不支持轉C的Matlab函數或Matlab對象[9](如:數據類型),Matlab編程[10]是否正確,是否存在嵌套調用等不符合轉C要求規(guī)范的算法,但是,不檢查語法細節(jié)是否符合轉C要求規(guī)范。

    對于檢測出的、不符合轉C要求的,只能對Matlab程序的算法進行修改,去除不符合要求的部分,甚至要對部分算法的功能進行調整、取舍。

    1.3 庫函數轉C限制檢查

    確定轉C函數中調用的Matlab庫函數是否存在轉C限制??梢圆榭碝atlab幫助文檔中的轉C函數支持列表,對照的查看是否存在轉C限制的Matlab工具函數。若調用的Matlab函數存在轉C限制,并且調用時沒有遵循這個限制,則無法轉C。

    1.4 建立轉C工程并運行

    創(chuàng)建轉C工程,加載需要轉C的功能函數,設定輸入變量的數據類型及其大小,選擇轉C后代碼的輸出形式,點擊“編譯”或“Run”即可開始執(zhí)行轉C。創(chuàng)建轉C工程時,創(chuàng)建的轉C工程和需要轉C的功能函數都應存放在當前Matlab工作路徑下。

    1.5 轉C錯誤檢查與修改

    轉C出現(xiàn)錯誤,點擊“Open error report”或“View Report”打開錯誤報告,找到首條錯誤報告并查看錯誤信息和出錯代碼位置,根據相關信息提示修改或規(guī)范源代碼,使得其在不改變源代碼功能邏輯的情況下符合轉C 規(guī)范,保存后再次進行轉C編譯。以此重復類推來逐個消除轉C錯誤,直到最終成功完成轉C編譯。

    1.6 轉C成功

    成功完成轉C。點擊 “View Report”打開轉C結果報告,可以查看到數據類型等的轉C相關信息,也羅列了轉C的輸出文件。在轉C工程路徑下會有個codegen文件夾,里面根據文件輸出類型和轉C工程名新建文件夾,存放著相關輸出的文件,其中.c和.h文件為輸出的C代碼文件,與Matlab源代碼同名文件為其主調函數文件。

    1.7 代碼驗證

    對于轉出的C代碼正確與否,coder提供的方法是生成mex文件用于驗證,但是mex驗證不成功時,又無法通過其分析原因所在。對此,不再用mex函數驗證,直接以代碼驗證的方式進行。其主要解決的問題是,代碼驗證不通過時,可以同步分析C程序和Matlab程序以找出轉C失敗原因。

    新建一個C語言工程用于調用轉C后的功能函數C語言代碼,產生結果并和用Matlab運算產生的結果進行比較,如果結果一樣或者誤差在合理范圍內,則說明轉C成功,轉出的C代碼功能完整,邏輯正確,可直接使用。如果結果不一致、誤差極大,則說明轉C出現(xiàn)問題,可單步運行C程序和Matlab程序,看誤差最先出現(xiàn)在那里,并分析是什么原因造成的,修改或規(guī)范它,然后再進行轉C編譯和代碼驗證,直到二者結果一致或者誤差在合理范圍內為止。代碼驗證時,C程序和Matlab程序用的輸入應當一致,并用多組數據進行驗證。如果有必要,也可以將程序運行中的、有代表性的對應數據進行比較,以此確保轉出的C程序功能、邏輯與源代碼一致。

    2 轉C過程常遇問題及處理方法

    轉C過程中會遇到諸如不符合Matlab Coder轉C規(guī)范的語句、對程序進行轉C規(guī)范時,不符合程序功能邏輯的修改、Matlab和C語言的編程差異[11]導致的轉C問題、Matlab轉C適應性問題與限制性問題、以及轉C對Coder 工具的影響等諸多方面的問題,甚至有些問題不能得到反饋,需自己察覺與分析。

    根據Matlab轉C過程遇到的一些特別的情況總結的一些轉C細節(jié)概述以及對此做出的一些處理,在此列出僅供參考,以避免遇到此情況。

    2.1 統(tǒng)籌編程

    如果計劃要將所編寫的Matlab程序轉成C代碼,那么在設計算法之初,就一定要先參考轉C流程步驟的第二部和第三步,否則就有可能出現(xiàn)完成了算法設計卻無法轉成C代碼的窘境。若到轉C時才發(fā)現(xiàn)這些問題再去改,則有可能需要對算法進行重新設計,改動量較大,甚者是無法修改的情況。

    2.2 數據類型變化

    Matlab變量轉C過程中,變量的第一次調用(多為賦值語句,并為非可忽略語句),決定了它在C語言中的數據類型。如果在Matlab程序中,由于引用賦值(如下面第2)行語句)而導致它的類型發(fā)生變化,那么,則在轉C過程中就會報錯,這是由于Matlab和C語言的編程差異導致的[11]。Matlab程序中變量的數據類型可以發(fā)生改變,而C語言程序中卻不可以。這樣,變量a就從double變量變成了復數變量了。這樣的情況在轉C中會報錯。

    2.3 if語句轉C

    轉C時,Matlab程序中的if語句后面不能是非標量的形式(如數組或結果為數組的表達式),否則報錯。Matlab中,if后面的非標量,只有當全體為真時才認為是真(true),否則為假(false),所以轉C時可以據此做一定的的修改,使得if后面為一個值的標量即可。endprint

    2.4 被忽略的變量

    Matlab程序中,會被“忽略”的變量需要事先“聲明”,即預分配內存[12],否則會出錯。Matlab程序可以在運算中動態(tài)新增變量,有些變量雖然寫在代碼中,但是可能由于沒有執(zhí)行到這段代碼,所以內存中也就沒有出現(xiàn)這個變量,即被“忽略”了。但是在轉C過程中,這些變量卻要求事先“聲明”,這是Matlab與C語言編程差異導致的。

    轉C時會報錯第7)行變量a33未被聲明過,因為第5)行變量賦值語句在選擇語句中,屬非一定執(zhí)行語句,所以被“忽略”了。

    2.5 變量信息問題

    把某項數據固定的寫在Matlab函數的變量中,則轉出的C代碼中,這個變量的信息(長度,數據類型等)都是固定了的,若在Matlab程序中對這個變量的信息有修改,則這些修改未必會反映到轉C中,如果錯誤使用這些信息,將導致程序邏輯錯誤。其他問題導致的變量信息修改未反映到轉C中也會出現(xiàn)這樣的情況。

    2.6 錯誤的預分配內存

    錯誤的預分配內存會導致轉出來的的C代碼邏輯錯誤,即Matlab轉的C代碼中,某些算法的運行結果、次數、或者數值等出現(xiàn)偏差,從而導致和原來的Matlab程序最終結果不一致。分配過多有可能會造成預分配內存前后的Matlab程序運行邏輯不一致,這屬于錯誤的轉C規(guī)范。分配過少則有可能導致Matlab轉出來的C程序邏輯錯誤,甚至轉出來的C程序在運行時會出現(xiàn)堆棧溢出[13]的現(xiàn)象。

    多分配會導致原來的變量冗余,從而有可能導致后面的算法偏離原先設計。如果多分配內存是無法避免的,那么也可以在后面的算法中,加入修正語句,或避開這些冗余量的影響,也可以達到正確效果。預分配內存過少,則在轉C的C代碼后初始化這個變量時會保留錯誤的該變量信息(如數組長度,數據類型等)和申請內存不足,如果后面的算法使用了這些錯誤的信息,則程序運行時會偏離原先設計,甚至會有可能越界訪問內存而導致C程序運行時堆棧溢出。所以應避免預分配內存過少。

    2.7 轉C致軟件崩潰

    Matlab函數的轉C致使Matlab軟件崩潰,直接退出Matlab軟件程序的情況。這樣的情況不常遇見,但很棘手,是轉C的一大障礙。這個故障無法通過反饋分析原因,只能一次次調整程序試出來怎樣的形式才不至于Matlab崩潰。在實踐中發(fā)現(xiàn),Matlab崩潰似乎和復數或復數表達式作為參數調用其它函數再轉C有關。所以,建議轉C的函數盡量避免用復數作為參數參與調用,改用實部虛部做參數,而后在函數內合成復數的方式。另外,避免用作參數的變量重新賦值,尤其是改變長度的幅值。

    3 轉C特殊處理辦法

    3.1 動態(tài)預分配內存

    提供了一種預分配內存的思路,具體是,下一步的預分配內存,是要根據上一步的結果來做出操作的,所以這樣需要預分配的內存長度是未知的。這種情況下,用一個變量作為參數來預分配合適長度的內存。而這個變量的值,則根據上一步運算結果和算法要求而得到。如此,轉出來的C程序就可以根據實際算法運算情況來預分配不同長度的“變量”,而不是固定長度的數組。

    預分配內存是Matlab函數轉C前,規(guī)范Matlab代碼時一步重要的工作。轉C時,大部分的變量都是依照“第一次賦值語句”來聲明變量的,而部分變量在Matlab里的第一次出現(xiàn)卻不是賦值語句,而是循環(huán)語句里的引用賦值語句(例如:a(i)=i)。這樣的情況在Matlab程序中會實時地自動生成和加長對應的變量(即會根據算法迭代而增加變量長度),而轉C過程卻無法適應這種情況,所以要求對這個變量先預分配內存。預分配內存的方法是在其調用之前加一句相對應賦值語句,以起到“第一次賦值語句”的作用。如果這里的“變量”長度是不固定的,則可以采用動態(tài)預分配內存方式。

    3.2 外置接口轉C

    避開某些轉C限制的特殊處理方法,一種妥協(xié)思維。Matlab自帶的Coder轉C工具有其支持轉C函數庫,包括大多數普通常用的函數和信號處理函數。然而,有些函數在Matlab轉C過程中卻有不同的限制。

    重采樣[14]是很多算法和系統(tǒng)中的重要環(huán)節(jié)。在設計算法之時,一般使用Matlab信號處理的resample函數,然而其在轉C時卻有重采樣數據的長度必須為一個確定值,上、下采樣率必須為確定值的常量。在很多算法或系統(tǒng)中,需要重采樣的數據,其長度是不確定的。對于這個情況,設定一個預分配內存足夠大的另一個“變量”,充當外置接口,專門作為resample的參數,把需要處理的數據值轉移到其中,多余的部分忽略(相當于補0值),然后對整體做處理、轉C,最后再從結果中提取出有用的部分(對應有用輸入參數部分的結果)即可。

    經過驗證,確認了這一方法的可靠性,多余部分(補0值的部分、非有用部分)的存在不影響前面的有用輸入參數部分的運算結果,從整體結果中取出的有用結果與單單輸入有用參數所得到的結果相同。通過這種方式,使得在一定數據長度內,既能滿足resample轉C的這項限制要求,又適應了不同長度數據作為輸入的情況。當然這里不同的長度的數據只要不超過前面所說的“一定長度”即可。

    3.3 簡化函數

    通過對Matlab某些不支持轉C的函數進行簡化函數處理(去除冗余語句),使得它需要的部分功能可以轉C。但是,并不是所有的不支持轉C函數都能通過這種方式從而能轉C,只是個別函數能實現(xiàn)。

    一些不支持轉C的函數,可能為了適應多種情況而使用了一些不支持轉C的方法,為了能夠轉C,將這些方法去除或替換。但是這樣一來,原函數的功能就有一定程度上的削弱或缺失。如果,可以確定這些削弱或缺失的功能是算法中所不需要的,那么就可以放心的通過這樣的處理方式以使得程序能夠轉C,不然,無法通過這種方式使得這個函數能夠轉C。整個流程很簡單,關鍵是要自己摸索著查找修改點,然后對其進行正確的簡化操作,并確定這樣子的操作不會對整個算法有影響。endprint

    Matlab庫函數中的medfilter1、lpc函數是不支持轉C的,通過上述思路調整后得以轉C,到達設計要求。以lpc函數為例,大致介紹簡化函數轉C流程:

    ①在matlab庫函數相應的文件夾下找到lpc函數,將其復制到當前工程目錄下;

    ②再用Code Generation Readiness Tool對matlab函數整體分析;

    ③提示lpc函數中try/catch語句不支持轉C。

    ④進入工程目錄下的lpc函數,將try/catch相關語句去掉并保存,通過可行性分析后再轉C。

    ⑤再比較matlab程序和C程序的結果,得以驗證這樣操作能夠滿足要求。

    4 結束語

    Matlab程序轉C代碼是一項集工程創(chuàng)建、代碼規(guī)范[15]、錯誤分析與修正、對比驗證于一身的工程,有其一套行之有效的工作流程和解決方案。符合轉C條件的Matlab程序,通過Matlab Coder工具,按照轉C流程進行操作能夠將完整Matlab程序轉成C代碼。通過Matlab程序的轉C,縮短了算法研發(fā)與實際應用之間的距離,提高了工程師的研發(fā)效率。本文研究了MATLAB程序轉C代碼的方法,介紹了以Matlab2014a版本Coder為基礎的轉C流程,給出了轉C注意事項與處理意見,并且針對一些以前沒有解決辦法的轉C阻礙提出了創(chuàng)新性的解決思路與方法。但是也應看到,Matlab轉C也并不是包治百病的,除了轉C流程第二第三步提到的限制外,在Matlab編程中還應該注意到Matlab和C語言的編程差異以及適應性問題[11],這些都在一定程度上限定了Matlab算法編程。同時,我們可以看到,通過對某些轉C限制進行某種“妥協(xié)”,也可以繞開這樣的限制,以達到我們的目的。

    參考文獻:

    [1]印金國.遙控信號調制與Matlab程序實現(xiàn)[J].電腦編程技巧與維護,2006(10):25-29.

    [2]劉浩,韓晶.MATLAB R2014a完全自學一本通[M].北京:電子工業(yè)出版社,2015.

    [3]廖燦燦,張樹群,雷兆宜.Matlab Coder生成C代碼的研究與應用[J].計算機與現(xiàn)代化,2013(3):175-178.

    [4]Online MATLAB. MATLABR2014a,MATLAB Coder[EB/OL],http:/ /www.mathworks.cn /products /matlab-coder/,2014-10-10.

    [5]Online MATLAB.從 MATLAB 代碼生成 C 和 C++ 代碼[EB/OL]https://cn.mathworks.com/products/matlab-coder.html,2014-10-10.

    [6]李???基于MATLAB函數庫增強VB數值計算能力的研究[J].計算機工程與應用,2003,39(23):57-59.

    [7]陸楠.自動C/C++代碼轉換工具提高MATLAB設計效率[J].電子設計技術,2011(7):38.

    [8]黃根嶺,張清淼,周利紅.MATLAB/Simulink在通信原理教學中的應用[J].鄭州鐵路職業(yè)技術學院學報,2015(3):94-97.

    [9]劉春輝.C++、java、matlab面象對象編程之比較[J].硅谷, 2010(6):75.

    [10]蔣鵬.MATLAB編程的特點與優(yōu)化[J].數字技術與應用, 2016(2):183.

    [11]陳榮榮.C++與Matlab的基本語法比較[J].電腦編程技巧與維護,2011(14):32-34.

    [12]李月潔,李蘭友,尤一鳴.內存預分配管理[J].儀器儀表用戶,2006,13(5):104-105.

    [13]李宛娜.堆棧溢出技術剖析[J].哈爾濱職業(yè)技術學院學報, 2008(1):115-116.

    [14]宗志毅,王曉音,楊莘元.多率信號處理中的重采樣技術[J].電子信息對抗技術,2003,18(3):37-41.

    [15]李大勇.淺談軟件開發(fā)中代碼規(guī)范的問題[J].電子技術與軟件工程,2015(15):50.endprint

    汤姆久久久久久久影院中文字幕| 午夜免费观看性视频| 国产成人免费无遮挡视频| 欧美精品人与动牲交sv欧美| 精品亚洲乱码少妇综合久久| 一二三四中文在线观看免费高清| 丝袜喷水一区| 久久ye,这里只有精品| 亚洲欧美日韩无卡精品| 中文字幕av成人在线电影| 免费观看av网站的网址| 免费av观看视频| 精品久久久噜噜| 最近的中文字幕免费完整| 一区二区三区四区激情视频| 丰满人妻一区二区三区视频av| 国产乱人视频| 国产免费福利视频在线观看| 亚洲在久久综合| 中文资源天堂在线| 日韩视频在线欧美| 男女那种视频在线观看| 黄色欧美视频在线观看| 国产亚洲av片在线观看秒播厂| 国产成人精品一,二区| 日日啪夜夜爽| 美女视频免费永久观看网站| 在线 av 中文字幕| 老司机影院成人| 99久久精品国产国产毛片| 亚洲国产最新在线播放| 国精品久久久久久国模美| 欧美日韩视频高清一区二区三区二| 国产综合精华液| 天美传媒精品一区二区| 听说在线观看完整版免费高清| 国产高清国产精品国产三级 | 日本色播在线视频| 精品酒店卫生间| 99热这里只有是精品50| 国产精品伦人一区二区| 春色校园在线视频观看| 大片电影免费在线观看免费| 国产 一区精品| 夜夜看夜夜爽夜夜摸| 国产男女超爽视频在线观看| 成人亚洲欧美一区二区av| 国产成人一区二区在线| 麻豆乱淫一区二区| 性插视频无遮挡在线免费观看| 欧美少妇被猛烈插入视频| 中国三级夫妇交换| 汤姆久久久久久久影院中文字幕| 国产精品一区二区在线观看99| 国产成人精品一,二区| 国产一级毛片在线| 午夜激情福利司机影院| 亚洲精品日本国产第一区| 青青草视频在线视频观看| 亚洲国产欧美在线一区| 成人国产麻豆网| 一区二区三区精品91| av在线蜜桃| 人人妻人人澡人人爽人人夜夜| 国产成人一区二区在线| 日韩电影二区| 亚洲精品一区蜜桃| 国产视频内射| 国产成人aa在线观看| 性色avwww在线观看| 最近中文字幕高清免费大全6| 麻豆国产97在线/欧美| 久久久成人免费电影| 日本色播在线视频| 亚洲av中文av极速乱| 欧美日韩综合久久久久久| 国产成人精品福利久久| 夜夜爽夜夜爽视频| 如何舔出高潮| 韩国av在线不卡| 在现免费观看毛片| 亚洲国产最新在线播放| 国语对白做爰xxxⅹ性视频网站| 国产黄片视频在线免费观看| 国产综合精华液| av在线播放精品| 超碰av人人做人人爽久久| 一级a做视频免费观看| 精品久久久久久久久av| 亚洲精品国产成人久久av| 免费大片18禁| 久久6这里有精品| 久久人人爽av亚洲精品天堂 | 交换朋友夫妻互换小说| 久久鲁丝午夜福利片| 久热这里只有精品99| 中文在线观看免费www的网站| 人妻少妇偷人精品九色| 国产精品熟女久久久久浪| 日韩亚洲欧美综合| 久久久久精品性色| 少妇 在线观看| 人妻系列 视频| 水蜜桃什么品种好| 免费在线观看成人毛片| 久热久热在线精品观看| 免费黄网站久久成人精品| 欧美高清性xxxxhd video| 亚洲人成网站在线播| 亚洲久久久久久中文字幕| 精品人妻一区二区三区麻豆| videos熟女内射| av专区在线播放| 97超碰精品成人国产| 国产毛片在线视频| 另类亚洲欧美激情| 男人添女人高潮全过程视频| 久久久久久久亚洲中文字幕| 新久久久久国产一级毛片| 亚洲国产成人一精品久久久| 99热这里只有是精品50| 岛国毛片在线播放| 夫妻性生交免费视频一级片| 午夜福利在线观看免费完整高清在| 日本免费在线观看一区| 国产男女超爽视频在线观看| 你懂的网址亚洲精品在线观看| 天天躁夜夜躁狠狠久久av| 国产免费一级a男人的天堂| 国产女主播在线喷水免费视频网站| 日本-黄色视频高清免费观看| 久久久久国产网址| 亚洲在久久综合| 精品少妇黑人巨大在线播放| 亚洲无线观看免费| 久久精品国产亚洲av涩爱| 国产探花极品一区二区| 亚洲国产高清在线一区二区三| 男女下面进入的视频免费午夜| 丰满乱子伦码专区| av在线播放精品| 国产精品国产三级国产专区5o| 亚洲天堂国产精品一区在线| 内射极品少妇av片p| 亚洲欧美日韩无卡精品| 日韩制服骚丝袜av| 久久久久久久午夜电影| 男男h啪啪无遮挡| 水蜜桃什么品种好| 蜜桃久久精品国产亚洲av| 可以在线观看毛片的网站| 看免费成人av毛片| 久久久久久九九精品二区国产| 黄片wwwwww| 夫妻午夜视频| 在线观看免费高清a一片| 水蜜桃什么品种好| av黄色大香蕉| 中文资源天堂在线| 成年女人看的毛片在线观看| 国产精品偷伦视频观看了| 亚州av有码| 久久精品久久精品一区二区三区| 亚洲最大成人手机在线| 国产精品伦人一区二区| 成人综合一区亚洲| 亚洲色图av天堂| 国产亚洲5aaaaa淫片| 国产精品国产三级国产av玫瑰| 观看美女的网站| 老司机影院成人| 日本三级黄在线观看| 少妇的逼水好多| 九九在线视频观看精品| 亚洲欧美精品专区久久| 午夜激情久久久久久久| 欧美日韩国产mv在线观看视频 | 亚洲高清免费不卡视频| 亚洲欧美日韩另类电影网站 | 简卡轻食公司| 女的被弄到高潮叫床怎么办| 80岁老熟妇乱子伦牲交| 色网站视频免费| 日本色播在线视频| 精品久久国产蜜桃| 最后的刺客免费高清国语| 久久精品久久久久久久性| 亚洲人成网站高清观看| 三级经典国产精品| 亚洲欧美日韩无卡精品| 少妇的逼好多水| av国产久精品久网站免费入址| 99热全是精品| 欧美一级a爱片免费观看看| 免费av不卡在线播放| 婷婷色麻豆天堂久久| 久久久久久伊人网av| 国精品久久久久久国模美| 国产精品99久久99久久久不卡 | 女人被狂操c到高潮| 日韩视频在线欧美| 美女内射精品一级片tv| 亚洲精品成人av观看孕妇| 99热这里只有是精品50| 成人亚洲精品一区在线观看 | 国产熟女欧美一区二区| 免费观看av网站的网址| 男女啪啪激烈高潮av片| 免费高清在线观看视频在线观看| 五月伊人婷婷丁香| 丰满乱子伦码专区| 好男人在线观看高清免费视频| 日本三级黄在线观看| 不卡视频在线观看欧美| 日韩一本色道免费dvd| 日韩大片免费观看网站| 亚洲,一卡二卡三卡| a级毛色黄片| 亚洲av中文字字幕乱码综合| 九九在线视频观看精品| 最新中文字幕久久久久| 18禁在线播放成人免费| 亚洲人与动物交配视频| 天堂网av新在线| 最近中文字幕2019免费版| 精华霜和精华液先用哪个| 欧美性猛交╳xxx乱大交人| 国产人妻一区二区三区在| 国产精品麻豆人妻色哟哟久久| 色综合色国产| 国产真实伦视频高清在线观看| 欧美少妇被猛烈插入视频| 亚洲国产色片| 最近最新中文字幕大全电影3| 一个人看的www免费观看视频| 成人黄色视频免费在线看| 欧美性感艳星| 成人二区视频| 熟女av电影| 成人黄色视频免费在线看| 国产精品久久久久久av不卡| 在线观看免费高清a一片| 91精品伊人久久大香线蕉| 久久午夜福利片| 一本久久精品| 成年人午夜在线观看视频| 国产中年淑女户外野战色| 春色校园在线视频观看| 亚洲精品日本国产第一区| 国产高清有码在线观看视频| 少妇猛男粗大的猛烈进出视频 | 色5月婷婷丁香| 亚洲在久久综合| 午夜福利网站1000一区二区三区| 国产 一区精品| 大片电影免费在线观看免费| 欧美zozozo另类| 麻豆成人午夜福利视频| 久久久久性生活片| 亚洲美女搞黄在线观看| 18+在线观看网站| 亚洲成人av在线免费| 国产精品福利在线免费观看| 日韩大片免费观看网站| 视频中文字幕在线观看| 久久久久网色| 亚洲美女搞黄在线观看| 日韩在线高清观看一区二区三区| 精品国产露脸久久av麻豆| 亚洲成人精品中文字幕电影| 国产成年人精品一区二区| 免费观看性生交大片5| 在线 av 中文字幕| 内地一区二区视频在线| 免费av观看视频| 精品熟女少妇av免费看| 久久精品国产自在天天线| 国产成人福利小说| 亚洲国产最新在线播放| 亚洲精品中文字幕在线视频 | 久久久亚洲精品成人影院| 免费av毛片视频| 天美传媒精品一区二区| 黄色视频在线播放观看不卡| 高清在线视频一区二区三区| 高清视频免费观看一区二区| 边亲边吃奶的免费视频| 美女国产视频在线观看| 国产黄片视频在线免费观看| 好男人在线观看高清免费视频| 99热这里只有精品一区| 中文资源天堂在线| 91久久精品电影网| 亚洲国产精品专区欧美| 亚洲精品久久午夜乱码| 丝袜脚勾引网站| 在线观看人妻少妇| 国产毛片a区久久久久| 亚洲精品久久久久久婷婷小说| 最近最新中文字幕免费大全7| 国产av国产精品国产| 久久久久性生活片| 成年女人在线观看亚洲视频 | 国产精品久久久久久av不卡| 日本黄色片子视频| 麻豆成人av视频| 在线观看av片永久免费下载| 一本色道久久久久久精品综合| 91在线精品国自产拍蜜月| 狂野欧美白嫩少妇大欣赏| 国产成人精品一,二区| 欧美最新免费一区二区三区| 婷婷色综合大香蕉| 18禁在线播放成人免费| 国产黄色视频一区二区在线观看| 国产成人精品一,二区| 嫩草影院入口| 亚洲精品中文字幕在线视频 | 国产免费一级a男人的天堂| 国产伦精品一区二区三区视频9| 日韩成人av中文字幕在线观看| 免费在线观看成人毛片| 波多野结衣巨乳人妻| 男的添女的下面高潮视频| 大码成人一级视频| 禁无遮挡网站| 老女人水多毛片| 最近中文字幕2019免费版| 日韩制服骚丝袜av| 美女内射精品一级片tv| 亚洲美女搞黄在线观看| 国产精品.久久久| 免费播放大片免费观看视频在线观看| 国产高清有码在线观看视频| 国产精品久久久久久久久免| 高清视频免费观看一区二区| 国产精品成人在线| 国产精品精品国产色婷婷| 亚洲精品第二区| 亚洲人成网站在线观看播放| 国产永久视频网站| 亚洲国产欧美人成| 国产精品99久久99久久久不卡 | 香蕉精品网在线| 国产成人freesex在线| 国产 一区精品| 亚洲欧美日韩卡通动漫| 18禁动态无遮挡网站| 精品酒店卫生间| 一区二区av电影网| 一区二区三区免费毛片| 中文字幕人妻熟人妻熟丝袜美| 色网站视频免费| 色吧在线观看| 亚洲精品国产av成人精品| 美女被艹到高潮喷水动态| 亚洲熟女精品中文字幕| 国产 精品1| 欧美最新免费一区二区三区| 最近最新中文字幕免费大全7| 18禁在线无遮挡免费观看视频| 亚洲久久久久久中文字幕| www.av在线官网国产| 五月伊人婷婷丁香| 国产黄片视频在线免费观看| 青春草国产在线视频| 熟女av电影| 只有这里有精品99| 国产高清国产精品国产三级 | 黄色视频在线播放观看不卡| 国产成人精品一,二区| 日本-黄色视频高清免费观看| 免费电影在线观看免费观看| 亚洲精品影视一区二区三区av| 成年av动漫网址| 一个人看的www免费观看视频| 日韩不卡一区二区三区视频在线| 91久久精品国产一区二区成人| 中文字幕制服av| 成人亚洲精品一区在线观看 | 午夜精品一区二区三区免费看| 美女脱内裤让男人舔精品视频| 亚洲欧美成人综合另类久久久| 精品少妇久久久久久888优播| 青春草国产在线视频| 人人妻人人看人人澡| 久久久亚洲精品成人影院| 国产成人福利小说| 国产淫片久久久久久久久| 国产精品麻豆人妻色哟哟久久| 精品国产一区二区三区久久久樱花 | 国产一区亚洲一区在线观看| 王馨瑶露胸无遮挡在线观看| 内射极品少妇av片p| 精品一区在线观看国产| 日本一本二区三区精品| 久久热精品热| 欧美xxxx黑人xx丫x性爽| 色视频www国产| 亚洲在久久综合| 亚洲精品成人久久久久久| 偷拍熟女少妇极品色| 韩国高清视频一区二区三区| 色5月婷婷丁香| 神马国产精品三级电影在线观看| 日韩强制内射视频| 久久精品国产亚洲网站| 亚洲性久久影院| 日本午夜av视频| 色播亚洲综合网| 高清毛片免费看| 三级男女做爰猛烈吃奶摸视频| 亚洲国产av新网站| 少妇猛男粗大的猛烈进出视频 | 国产黄色免费在线视频| 国产亚洲最大av| 国产视频内射| 搞女人的毛片| av国产免费在线观看| 色播亚洲综合网| 精品亚洲乱码少妇综合久久| 国产高清不卡午夜福利| 国产av不卡久久| 久久99热6这里只有精品| 看十八女毛片水多多多| 自拍欧美九色日韩亚洲蝌蚪91 | 三级国产精品欧美在线观看| av一本久久久久| 亚洲精品中文字幕在线视频 | 国产黄a三级三级三级人| 性色av一级| 色网站视频免费| 欧美少妇被猛烈插入视频| 亚洲成人一二三区av| 人体艺术视频欧美日本| 男女边吃奶边做爰视频| 国产精品一区二区在线观看99| 一本色道久久久久久精品综合| 99热6这里只有精品| 国产精品一区二区三区四区免费观看| 免费电影在线观看免费观看| 精品人妻熟女av久视频| 欧美+日韩+精品| 少妇被粗大猛烈的视频| 中国国产av一级| 久久久久久久大尺度免费视频| 一级a做视频免费观看| 韩国av在线不卡| 欧美最新免费一区二区三区| 有码 亚洲区| 欧美极品一区二区三区四区| 人妻夜夜爽99麻豆av| 最近中文字幕高清免费大全6| 观看免费一级毛片| 欧美亚洲 丝袜 人妻 在线| 毛片一级片免费看久久久久| av专区在线播放| 男女下面进入的视频免费午夜| 男人和女人高潮做爰伦理| 精品少妇黑人巨大在线播放| 日韩大片免费观看网站| a级毛色黄片| 在线天堂最新版资源| 九色成人免费人妻av| 中文字幕亚洲精品专区| 日本色播在线视频| 一级av片app| 亚洲熟女精品中文字幕| 色视频www国产| 欧美亚洲 丝袜 人妻 在线| 秋霞在线观看毛片| 成人毛片a级毛片在线播放| 国产综合精华液| 99久久精品一区二区三区| 视频区图区小说| 亚洲精品第二区| av.在线天堂| 欧美激情在线99| 午夜免费男女啪啪视频观看| 免费av毛片视频| 色视频www国产| 身体一侧抽搐| 毛片一级片免费看久久久久| 欧美高清成人免费视频www| 国产成人91sexporn| 欧美丝袜亚洲另类| 九九在线视频观看精品| 在线观看美女被高潮喷水网站| 在线观看一区二区三区激情| 婷婷色综合大香蕉| 最近2019中文字幕mv第一页| 欧美最新免费一区二区三区| 青青草视频在线视频观看| 成人综合一区亚洲| 国产伦精品一区二区三区视频9| 国产精品国产三级国产专区5o| 夜夜看夜夜爽夜夜摸| 国产高清有码在线观看视频| 亚洲av中文字字幕乱码综合| av免费在线看不卡| 国产乱来视频区| 成人毛片a级毛片在线播放| 大片免费播放器 马上看| 内射极品少妇av片p| 综合色av麻豆| 亚洲av成人精品一区久久| eeuss影院久久| 最近的中文字幕免费完整| 亚洲国产高清在线一区二区三| 国产av国产精品国产| 免费看不卡的av| 国产亚洲91精品色在线| 别揉我奶头 嗯啊视频| 国产精品偷伦视频观看了| 五月天丁香电影| 最近中文字幕2019免费版| 国产av国产精品国产| 日韩成人伦理影院| 精品久久久久久久久av| 免费黄频网站在线观看国产| 少妇丰满av| 国产精品一二三区在线看| 在线观看av片永久免费下载| 大香蕉97超碰在线| 一个人看的www免费观看视频| 校园人妻丝袜中文字幕| 久热这里只有精品99| 国产一区亚洲一区在线观看| 亚洲美女搞黄在线观看| 日韩欧美精品v在线| 久久久久国产精品人妻一区二区| 制服丝袜香蕉在线| 成人无遮挡网站| 一个人看视频在线观看www免费| 国产视频首页在线观看| 亚洲丝袜综合中文字幕| 色吧在线观看| 久久精品国产鲁丝片午夜精品| 五月伊人婷婷丁香| 韩国高清视频一区二区三区| 日韩一本色道免费dvd| 最近2019中文字幕mv第一页| 午夜日本视频在线| 久久精品国产亚洲网站| 亚洲激情五月婷婷啪啪| 久久久久精品性色| 在线看a的网站| 美女cb高潮喷水在线观看| 三级经典国产精品| 啦啦啦中文免费视频观看日本| 日日摸夜夜添夜夜添av毛片| 欧美另类一区| 99久久精品一区二区三区| 国产成人精品婷婷| 国产成人a区在线观看| 高清日韩中文字幕在线| 国产在线一区二区三区精| 国产 一区精品| 国产精品伦人一区二区| av播播在线观看一区| 久久久久性生活片| 91午夜精品亚洲一区二区三区| 男人爽女人下面视频在线观看| 天堂中文最新版在线下载 | 免费看av在线观看网站| av在线观看视频网站免费| 99热6这里只有精品| 精品人妻偷拍中文字幕| 在线免费十八禁| 制服丝袜香蕉在线| 久久国内精品自在自线图片| 国产av码专区亚洲av| 亚洲精品影视一区二区三区av| 五月开心婷婷网| 国产成人免费无遮挡视频| 成人亚洲精品一区在线观看 | 国产精品无大码| 热re99久久精品国产66热6| 久久99蜜桃精品久久| 国产69精品久久久久777片| av播播在线观看一区| 色视频www国产| 少妇人妻一区二区三区视频| 国产亚洲一区二区精品| 国产精品成人在线| 婷婷色av中文字幕| 亚洲欧美日韩无卡精品| 嘟嘟电影网在线观看| 欧美日韩精品成人综合77777| 亚洲人成网站在线播| 日韩大片免费观看网站| 人人妻人人爽人人添夜夜欢视频 | 久久人人爽人人片av| 一区二区三区精品91| 成人二区视频| 精品国产乱码久久久久久小说| 狠狠精品人妻久久久久久综合| 欧美bdsm另类| 国产久久久一区二区三区| 九九久久精品国产亚洲av麻豆| 尤物成人国产欧美一区二区三区| 日日撸夜夜添| 免费少妇av软件| 麻豆国产97在线/欧美| 久久久欧美国产精品| 99九九线精品视频在线观看视频| 国产毛片在线视频| 欧美zozozo另类| av天堂中文字幕网| 亚洲欧美清纯卡通| 午夜福利网站1000一区二区三区| 国产 精品1| 2021天堂中文幕一二区在线观| 国产一级毛片在线| 亚洲欧美成人综合另类久久久|