《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 抑制嵌入式系統(tǒng)設(shè)計(jì)的復(fù)雜性

抑制嵌入式系統(tǒng)設(shè)計(jì)的復(fù)雜性

Lucio Di Jasio
2019-09-23
來(lái)源:Microchip

簡(jiǎn)介

Raspberry Pi系列不久前通過(guò)全新的Raspberry Pi Zero W1(2017年2月)擴(kuò)充了產(chǎn)品線,這是一臺(tái)支持無(wú)線連接的個(gè)人計(jì)算機(jī),售價(jià)僅10美元。對(duì)于業(yè)余愛(ài)好者、制造商、工匠和黑客而言,它的意義非同尋常。是的,我們之中很少有人真正嘗試做好我們的工作,即設(shè)計(jì)真正的(電子)產(chǎn)品!當(dāng)我最近觀看Eben Upton的視頻公告時(shí),我忍不住想起早年的經(jīng)歷。那是80年代中期,我買(mǎi)不起B(yǎng)BC電腦,也負(fù)擔(dān)不起奢侈的Amiga。但我花光所有的錢(qián)購(gòu)買(mǎi)了Sinclair ZX Spectrum。因此,Eben努力實(shí)現(xiàn)“讓所有人都買(mǎi)得起”的目標(biāo)確實(shí)讓我產(chǎn)生了共鳴。

一臺(tái)功能強(qiáng)大的個(gè)人計(jì)算機(jī)塞進(jìn)一塊小巧的印刷電路板(PCB)上,確切地說(shuō)是6 x 3 cm的印刷電路板,達(dá)到這種小尺寸的新記錄著實(shí)讓我驚嘆。經(jīng)過(guò)進(jìn)一步思考,我經(jīng)常想弄清楚是否正是Spectrum的簡(jiǎn)約及其諸多限制促使我深入研究計(jì)算機(jī)并最終沉醉于這一奇妙領(lǐng)域——軟件和硬件之間的邊界,我們今天稱之為嵌入式。

小型片上系統(tǒng)

Raspberry Pi Zero設(shè)計(jì)基于片上系統(tǒng)(SoC)(BCM2835),其中包括一個(gè)1 GHz ARM?內(nèi)核和一個(gè)圖形處理單元(GPU)、一個(gè)視頻接口、多個(gè)串行接口(USB、UART、SPI和I2C)以及一個(gè)外部存儲(chǔ)器接口,用于管理運(yùn)行Linux?操作系統(tǒng)(OS)所需的大容量RAM(512 MB DDR2)和大容量存儲(chǔ)卡(SD卡)。對(duì)于單芯片器件來(lái)說(shuō),這些都是令人印象深刻的功能,特別是與我年輕時(shí)看到的早期個(gè)人計(jì)算機(jī)相比。我們可能會(huì)爭(zhēng)辯,與目前在各種嵌入式控制應(yīng)用中常用的最新簡(jiǎn)單型單片機(jī)相比,這并非不成比例。雖然時(shí)鐘速度和處理能力都要低得多(從10 MHz到100 MHz不等),但今天所有小型單片機(jī)本身都是真正的小型片上系統(tǒng)奇跡。正如您對(duì)單片機(jī)期望的那樣,所有RAM和閃存都位于芯片上。存在串行接口(USB、UART、SPI和I2C),但也集成了所有電源調(diào)節(jié)和電壓監(jiān)控電路。片上通常有五個(gè)或更多不同的(精密)振蕩器,以便獲得更大的靈活性并控制功耗。此外,還有幾個(gè)具有大輸入/輸出多路開(kāi)關(guān)的模擬外設(shè)(ADC、DAC、運(yùn)算放大器和模擬比較器......),取代了Raspberry Pi幻想視頻中的功能,一直以來(lái)反映出偏愛(ài)嵌入式超過(guò)計(jì)算的設(shè)計(jì)選擇中的顯著不同。

事實(shí)上,當(dāng)Raspberry Pi用戶需要與現(xiàn)實(shí)世界連接時(shí),對(duì)于使常用LED閃爍等最平和I/O應(yīng)用以外的應(yīng)用而言,由更小的單片機(jī)(實(shí)際上通常為8位單片機(jī))通過(guò)“帽子”(小型子板)提供必要的I/O接口和所需電壓轉(zhuǎn)換并不意外。

我不想在兩個(gè)截然不同的世界之間將這種不公平的對(duì)比一直拖下去,但我必須指出,在支持開(kāi)發(fā)人員方面,兩者有一個(gè)共同關(guān)注的問(wèn)題:“控制復(fù)雜性”,最終“吸引新用戶”。毋庸置疑,它們的解決方案類似,但終究有所不同。

這兩個(gè)平臺(tái)都是由提供免費(fèi)軟件工具開(kāi)始,包括集成開(kāi)發(fā)環(huán)境(IDE)、編譯器、鏈接器、模擬器、調(diào)試器(在專業(yè)版中提供,只需少量費(fèi)用)、或多或少的開(kāi)放式中間件和(RT-)OS以及一小部分硬件(板)選項(xiàng)。

兩個(gè)陣營(yíng)(嵌入式計(jì)算和通用計(jì)算)之間的差異比您想象的要小。兩者最終都依賴于類似的(如果不相同)工具鏈,這些工具鏈大部分都基于GNU。在中間件級(jí)別,一旦您正確抽取下級(jí)(下至金屬)驅(qū)動(dòng)程序?qū)樱_(kāi)源選項(xiàng)會(huì)再次變得極其相似。操作系統(tǒng)級(jí)別的差異最大,因?yàn)樵S多單片機(jī)將很愿意運(yùn)行RTOS,但無(wú)法承受完整Linux內(nèi)核的負(fù)擔(dān)。這反映了真正的行業(yè)差異。實(shí)時(shí)是操作系統(tǒng)“工作說(shuō)明”的一部分。

膨脹

查看文檔時(shí)會(huì)發(fā)現(xiàn),兩者的復(fù)雜度在膨脹。我最喜歡的一個(gè)例子是基于流行8位PIC?架構(gòu)的小巧而簡(jiǎn)單的單片機(jī)。PIC16F1619經(jīng)常用于控制小家電,為此,它將小容量閃存(16 KB)封裝在20引腳微型封裝中,具有十幾個(gè)數(shù)字外設(shè)接口和幾乎同樣多的模擬支持模塊。其數(shù)據(jù)手冊(cè)長(zhǎng)達(dá)650頁(yè),之后還增加了特性數(shù)據(jù)、表和圖2。

此小型SoC上提供的一些外設(shè)(例如信號(hào)測(cè)量定時(shí)器)需要長(zhǎng)達(dá)50頁(yè)的篇幅才能適當(dāng)記錄。這幾乎是描述實(shí)際PIC內(nèi)核及其整個(gè)指令集所需頁(yè)數(shù)的兩倍。

在Raspberry Pi方面,如果只是按比例放大(10倍),則問(wèn)題類似,因?yàn)橛卸鄠€(gè)數(shù)據(jù)手冊(cè)需要考慮,每個(gè)數(shù)據(jù)手冊(cè)只記錄片上系統(tǒng)硬件組件的一部分(SoC外設(shè)、GPU和內(nèi)核),內(nèi)核單獨(dú)占用超過(guò)750頁(yè)的篇幅。

嵌入式軟件架構(gòu)

很明顯,沒(méi)有人能夠閱讀或跟上如此龐大的信息量。特別是嵌入式開(kāi)發(fā)人員,他們總是承擔(dān)著極大的壓力,需要在更短的時(shí)間內(nèi)完成應(yīng)用,以實(shí)現(xiàn)最快的產(chǎn)品上市速度。常見(jiàn)的解決方案是使用分層架構(gòu)對(duì)應(yīng)用進(jìn)行分區(qū),并使用標(biāo)準(zhǔn)化外設(shè)庫(kù)來(lái)抽取硬件詳細(xì)信息。這些層可以整齊地形成協(xié)議棧,其中“應(yīng)用”位于硬件抽象層(HAL)的頂部。實(shí)際上,可以進(jìn)一步細(xì)化此圖片來(lái)完全識(shí)別HAL,HAL上方的中間件層將負(fù)責(zé)實(shí)現(xiàn)諸如網(wǎng)絡(luò)、文件系統(tǒng)和圖形UI(如果存在/需要)一類的通用服務(wù)/功能。

11.jpg

圖1:嵌入式應(yīng)用的軟件協(xié)議棧 

注:通常通過(guò)從HAL分離驅(qū)動(dòng)程序?qū)雍碗娐钒逯С謱觼?lái)進(jìn)一步細(xì)化協(xié)議棧,但是在以下考慮中,我們不需要詳細(xì)到這種程度。

此軟件架構(gòu)直接來(lái)源于“計(jì)算”領(lǐng)域,可以很好地對(duì)大多數(shù)通用案例進(jìn)行建模。遺憾的是,由于它適用于嵌入式應(yīng)用,因此有兩個(gè)基本缺點(diǎn):

·         只要重點(diǎn)放在頂層中間件層提供的標(biāo)準(zhǔn)功能上,分層架構(gòu)就可以簡(jiǎn)化文檔篇幅過(guò)長(zhǎng)的問(wèn)題。在應(yīng)用范圍的底端,當(dāng)中間件層(如果存在)非常薄時(shí),結(jié)果大多比較模糊。開(kāi)發(fā)人員必須依賴以大型應(yīng)用編程接口(API)形式存在的HAL文檔,這份材料的篇幅同樣較長(zhǎng)(可達(dá)數(shù)千頁(yè)),但始終未真正研究器件的任何細(xì)節(jié)。出現(xiàn)問(wèn)題時(shí),他/她將身陷窘境或被迫深入研究陌生領(lǐng)域和大量代碼。

·         HAL層為支持標(biāo)準(zhǔn)中間件服務(wù)提供了巨大幫助,但由于其性質(zhì)極其嚴(yán)格,因此最終會(huì)清除特定器件的任何獨(dú)特差異化功能。否則,這些獨(dú)特功能可以為特定應(yīng)用提供技術(shù)優(yōu)勢(shì),并且可能成為選擇特定器件型號(hào)的原因。

·         在應(yīng)用范圍的頂端,中間件層非常厚,例如Raspberry Pi,僅Linux OS內(nèi)核就添加了數(shù)百萬(wàn)行代碼來(lái)應(yīng)對(duì)問(wèn)題3。雖然可以說(shuō)這是開(kāi)源代碼,但對(duì)于希望自己永遠(yuǎn)不必深入了解到如此程度的普通開(kāi)發(fā)人員而言,它幾乎無(wú)法帶來(lái)安慰。

讓計(jì)算機(jī)盡其所能!

最終,Raspberry Pi開(kāi)發(fā)人員將能夠依靠“計(jì)算”性能帶來(lái)的巨大收益和小電路板提供的大量資源。標(biāo)準(zhǔn)Linux操作系統(tǒng)的便利性遠(yuǎn)不止彌補(bǔ)API的復(fù)雜性和廣泛性。

我最關(guān)心的是全新小型SoC的開(kāi)發(fā)人員:現(xiàn)代單片機(jī)用戶。對(duì)于他們而言,使用標(biāo)準(zhǔn)化HAL的好處減少了,因?yàn)樾阅艽嬖趽p失,而且堆疊軟件架構(gòu)使獨(dú)特的功能變得單一。

用于快速開(kāi)發(fā)的新一代軟件工具代表了擺脫這一難題的巧妙方式。這是最近出現(xiàn)在嵌入式控制市場(chǎng)中的一種新型代碼生成器或配置器。盡管最初時(shí)持有明顯(但通常合理)的懷疑態(tài)度,但事實(shí)證明,這些工具不僅有效,對(duì)于任何嚴(yán)格的嵌入式開(kāi)發(fā)人員也必不可少。

我們發(fā)現(xiàn)的顯著特征包括:

-          完全集成在常見(jiàn)的IDE中,這有助于其了解項(xiàng)目上下文:型號(hào)(器件編號(hào))選擇和中間件庫(kù)感知。

-          支持獨(dú)特和復(fù)雜的外設(shè)。例如,先前示例中提到的信號(hào)測(cè)量定時(shí)器(SMT)可以在單個(gè)頁(yè)面/對(duì)話框中直觀地呈現(xiàn)給用戶,其中僅包含少數(shù)滾動(dòng)列表、復(fù)選框和一些直觀選項(xiàng)。有關(guān)來(lái)自Microchip的PIC單片機(jī)的旗艦快速開(kāi)發(fā)工具M(jìn)PLAB?代碼配置器(MCC)4的屏幕截圖,請(qǐng)參見(jiàn)圖2。

10.jpg

圖2——MPLAB代碼配置器:信號(hào)測(cè)量定時(shí)器選項(xiàng)

-          利用模板引擎,將配置選項(xiàng)轉(zhuǎn)換為一小部分完全自定義的函數(shù)。這意味著只需通過(guò)少量待學(xué)習(xí)的函數(shù)以及一致且直觀的命名約定便可生成最小API。函數(shù)定制保證大多數(shù)硬件抽象是在編譯時(shí)(實(shí)際上在編譯前)靜態(tài)執(zhí)行的。這有助于減少傳遞到每個(gè)函數(shù)所需的參數(shù)列表,從而提高性能和代碼密度。有關(guān)MPLAB代碼配置器的典型簡(jiǎn)約用例,請(qǐng)參見(jiàn)列表1。

-          輸出由非常短的(C語(yǔ)言)源文件組成,這些源文件可由用戶全面檢查(可將其作為一次學(xué)習(xí)機(jī)會(huì)),但也會(huì)經(jīng)過(guò)專家進(jìn)一步手動(dòng)優(yōu)化。現(xiàn)代化的代碼生成器將其代碼與用戶代碼靈活地混合,既可保持完整性,也允許充分利用寶貴的高級(jí)硬件功能。

void SMT1_Initialize(void) {

    // CPOL rising edge; EN enabled; SPOL high/rising edge enabled; SMT1PS 1:1 Prescaler; …

    SMT1CON0 = 0x80;

    // SMT1MODE Counter; SMT1GO disabled; SMT1REPEAT Single Acquisition mode;

    SMT1CON1 = 0x08;

    // SMT1CPRUP SMT1PR1 update complete; SMT1TS not incrementing; RST SMT1TMR1 update complete …

    SMT1STAT = 0x00;

    SMT1CLK = 0x00;            // SMT1CSEL FOSC;

    SMT1WIN = 0x00;            // SMT1WSEL SMTWINx;

    SMT1SIG = 0x00;             // SMT1SSEL SMTxSIG;

    SMT1PRU = 0x00;          // SMT1PR16 0x0; 

    SMT1PRH = 0x00;           // SMT1PR8 0x0; 

    SMT1PRL = 0x00;            // SMT1PR0 0x0;

}

 

void SMT1_DataAcquisitionEnable(void) {   

    SMT1CON1bits.SMT1GO = 1;      // Start the SMT module by writing to SMTxGO bit

}

 

void SMT1_SetPeriod(uint32_t periodVal) {

    // Write to the SMT1 Period registers

    SMT1PRU = (periodVal >> 16);

    SMT1PRH = (periodVal >> 8);

    SMT1PRL = periodVal;

}

列表1——由MCC生成、用于配置SMT外設(shè)的源文件(smt1.c)部分

從根本上說(shuō),代碼配置器/生成器可將“計(jì)算機(jī)”執(zhí)行的操作做到最好。構(gòu)建HAL是硬件外設(shè)配置重復(fù)且容易出錯(cuò)的階段,通常會(huì)導(dǎo)致在數(shù)據(jù)手冊(cè)中花費(fèi)大量時(shí)間進(jìn)行乏味的搜索,現(xiàn)在,這一階段現(xiàn)已然消失或顯著縮短,只留下一些更加趣味橫生、啟發(fā)思維的探索與創(chuàng)造時(shí)間。

事實(shí)上,用戶可以從同一個(gè)用戶界面了解特定的硬件外設(shè)功能,從根本上消除(或至少極大減少)對(duì)數(shù)據(jù)手冊(cè)的需求。

硬件抽象層成為項(xiàng)目的靈活部分,實(shí)際上可以根據(jù)需要頻繁、快速地重新生成,從而優(yōu)化應(yīng)用性能。

十(二進(jìn)制)行代碼

處理完(外設(shè))配置后,可將注意力立即集中到應(yīng)用上,這是設(shè)計(jì)中更智能的部分(在應(yīng)用層上),這一部分位于“主循環(huán)”之內(nèi),而不是之前。

最后要說(shuō)的是,憑借代碼生成器,即使在嵌入式領(lǐng)域中,經(jīng)典的“Hello World”示例(總是轉(zhuǎn)換為使LED閃爍)也會(huì)成為令人耳目一新的兩行代碼練習(xí)! 

    LED_Toggle();

    __delay_ms(500);

列表2——為創(chuàng)建第一個(gè)嵌入式“Hello World”而需要輸入的短短兩行代碼  您將能夠在我最近出版的書(shū)中找到(20個(gè))更多關(guān)于同樣有效利用快速開(kāi)發(fā)工具的實(shí)例:“In 10 Lines of Code”5。

對(duì)抗復(fù)雜性

在小型單片機(jī)發(fā)展成為小型SoC或者個(gè)人計(jì)算機(jī)縮小為Raspberry Pi的過(guò)程中,不僅會(huì)浪費(fèi)時(shí)間和造成認(rèn)知負(fù)擔(dān),還會(huì)在我們操作無(wú)法完全理解/掌握的系統(tǒng)時(shí)引入漏洞。

復(fù)雜性不是技術(shù)進(jìn)步的必然結(jié)果。現(xiàn)代化的代碼配置器/生成器可以通過(guò)擴(kuò)展我們的軟件開(kāi)發(fā)流程、實(shí)現(xiàn)自動(dòng)化并最終恢復(fù)我們對(duì)快速增長(zhǎng)的可用功能/選項(xiàng)數(shù)量的掌握來(lái)幫助我們。

個(gè)人簡(jiǎn)歷  

Lucio Di Jasio是Microchip的EMEA業(yè)務(wù)開(kāi)發(fā)經(jīng)理。過(guò)去18年來(lái),他一直在公司8位、16位和32位部門(mén)擔(dān)任各種技術(shù)和營(yíng)銷職位。作為一位固執(zhí)己見(jiàn)的多產(chǎn)技術(shù)作家,Lucio發(fā)表了大量文章和多部有關(guān)嵌入式控制應(yīng)用編程的書(shū)籍。憑借對(duì)飛行的熱情,他獲得了FAA和EASA私人飛行員執(zhí)照證書(shū)。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          国产午夜精品在线| 国产精品亚洲一区| 国产精品推荐精品| 久久av在线| 国产主播精品| 亚洲一区激情| 极品尤物久久久av免费看| 国产日韩精品久久| 欧美日韩天天操| 国产精品乱子乱xxxx| 久久综合伊人| 中文日韩欧美| 国产在线视频欧美一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美在线视屏| 在线欧美不卡| 午夜国产欧美理论在线播放| 国产亚洲亚洲| 在线观看成人一级片| 欧美 日韩 国产 一区| 国产日韩欧美一区二区| 欧美三级网页| 欧美成人蜜桃| 免费视频一区| 亚洲一区二区三区免费观看| 亚洲精品欧美| 亚洲激情专区| 亚洲国产高清一区| 影音先锋亚洲电影| 国产精品久久7| 亚洲欧美一区二区原创| 久久一二三区| 你懂的亚洲视频| 久久天天狠狠| 久久国产精品亚洲77777| 国产精品久久久久久久久久直播 | 牛牛国产精品| 久久久精品网| 久久国产精品一区二区三区| 国产嫩草一区二区三区在线观看| 在线观看一区视频| 亚洲青色在线| 国产亚洲一级| 麻豆成人小视频| 性欧美xxxx大乳国产app| 亚洲综合欧美| 久久精品麻豆| 欧美激情1区2区| 欧美日韩天天操| 亚洲天堂男人| 亚洲毛片av| 中文有码久久| 久久久国产精品一区二区中文 | 中日韩在线视频| 亚洲一区观看| 午夜久久资源| 亚洲国产高清视频| 国产区二精品视| 久久亚洲色图| 好看不卡的中文字幕| 亚洲激情黄色| 性娇小13――14欧美| 欧美精品三区| 中文亚洲免费| 午夜精品视频| 99综合精品| 久久裸体视频| 亚洲一级黄色| 免费永久网站黄欧美| 亚洲欧美综合国产精品一区| 亚洲国产婷婷| 久久久精品动漫| 亚洲久久在线| 午夜欧美理论片| 国产日韩欧美一区| 亚洲午夜极品| 欧美在线高清| 国产精品一区二区a| 国产精品国产一区二区| 国产精品永久| 亚洲国产婷婷| 欧美69视频| 国产精品一页| 亚洲国产精品一区在线观看不卡| 亚洲欧美日韩国产一区| 亚洲黄色免费| 国产精品分类| 老司机精品久久| 国产一区二区三区久久| 伊人久久亚洲美女图片| 久久视频一区| 免费在线成人av| 国产精品久久久久久久免费软件 | 欧美极品一区| 久久久亚洲一区| 国产农村妇女毛片精品久久莱园子 | 午夜精品av| 性久久久久久| 亚洲一区二区三区免费观看| 亚洲毛片一区| 亚洲国产精品日韩| 一区在线视频观看| 国内视频精品| 亚洲小说欧美另类社区| 亚洲欧美亚洲| 欧美伊人影院| 久久综合伊人| 免费国产自线拍一欧美视频| 国产精品亚洲一区| 夜夜嗨av一区二区三区网站四季av| 欧美午夜精品| 亚洲天堂偷拍| 亚洲高清不卡| 一区二区三区av| 99热免费精品| 国产亚洲欧美一区二区| 国产精品久久久一区二区三区| 亚洲免费不卡| 国产精品一区在线播放| 免费h精品视频在线播放| 媚黑女一区二区| 久久综合精品一区| 欧美va亚洲va日韩∨a综合色| 欧美88av| 亚洲精品麻豆| 久久aⅴ国产紧身牛仔裤| 久久不射中文字幕| 欧美日韩一区二区三区在线视频| 国内视频精品| 亚洲一区二区三区四区中文| 老牛嫩草一区二区三区日本| 韩国在线视频一区| 国产精品久久波多野结衣| 午夜一区不卡| 国产精品sss| 国产欧美不卡| 午夜精品网站| 在线亚洲观看| 欧美日韩少妇| 亚洲一区bb| 欧美久久综合| 国产日韩欧美一区| 欧美激情第10页| 亚洲美女视频在线免费观看| 性伦欧美刺激片在线观看| 欧美日韩喷水| 免费在线成人av| 亚洲激情欧美| 久久免费黄色| 亚洲国内自拍| 女女同性女同一区二区三区91 | 欧美日韩蜜桃| 国产乱码精品一区二区三区不卡| 欧美精品v日韩精品v国产精品| 在线观看一区视频| 久久这里只有| 亚洲永久字幕| 亚洲精品系列| 国产精品a级| 亚洲欧美日韩另类精品一区二区三区 | 国产精品久久777777毛茸茸| 欧美日韩一区二区三| 亚洲欧美久久久久一区二区三区| 一区二区视频欧美| 久久综合一区| 亚洲一区二区在| 亚洲国产欧美国产综合一区| 欧美日韩另类丝袜其他| 久久午夜精品| 国产伦精品一区二区三区四区免费| 亚洲视频免费| 欧美日韩成人| 欧美福利视频| 久久亚洲风情| 久久婷婷国产综合尤物精品| 亚洲欧美日韩精品久久久| 日韩午夜在线| 一本色道久久综合亚洲精品不| 伊人影院久久| 亚洲国产专区校园欧美| 尤物精品在线| 亚洲理伦在线| 国产精品乱码| 国产精品日韩高清| 国产伦精品一区二区| 国产九区一区在线| 免费在线亚洲| 老司机精品导航| 欧美一区2区三区4区公司二百| 麻豆成人av| 欧美 日韩 国产在线| 老司机精品视频网站| 久久综合狠狠综合久久综青草| 久久久久综合一区二区三区| 欧美在线精品一区| 欧美午夜国产| 在线不卡欧美| 国产亚洲福利| 性欧美暴力猛交另类hd| 欧美 日韩 国产在线| 欧美日本亚洲韩国国产| 亚洲午夜精品福利| 一区二区欧美日韩| 久久成人精品| 狠狠88综合久久久久综合网| 亚洲大胆av| 国产乱人伦精品一区二区| 麻豆九一精品爱看视频在线观看免费| 免费不卡亚洲欧美| 好吊日精品视频| 中日韩在线视频| 午夜国产欧美理论在线播放| 亚洲国产精品日韩| 亚洲一区综合| 国产自产精品| 亚洲一区免费| 欧美日韩一区二区三区免费| 99精品99久久久久久宅男| 久久久久综合一区二区三区| 影音先锋日韩资源| 久久久久一区二区| 亚洲三级毛片| 欧美一区在线看| 99国产精品自拍| 欧美日韩天天操| 亚洲欧美视频| 日韩亚洲在线| 激情av一区| 欧美一区国产在线| 国产欧美一级| 国产综合网站| 久久久久国产精品午夜一区| 亚洲精品国产精品国自产观看| 欧美在线播放| 亚洲视频导航| 亚洲黄色影院| 欧美日韩精品免费观看视一区二区| 在线亚洲观看| 亚洲韩日在线| 激情欧美日韩| 欧美激情在线| 久久久久久穴| 免费看亚洲片| 亚洲欧美清纯在线制服| 一区二区高清视频| 亚洲三级色网| 最新日韩av| 亚洲午夜在线| 亚洲无玛一区| 国内精品99| 国产精品yjizz| 欧美破处大片在线视频| 欧美一区二区三区在线播放| 亚洲一区二区三区精品动漫| 99精品视频免费观看视频| 亚洲性视频h| 伊人蜜桃色噜噜激情综合| 国内精品久久久久久久影视麻豆 | 亚洲一区三区视频在线观看| 夜夜嗨一区二区| 一本色道久久综合| 一本色道久久| 国产精品乱子乱xxxx| 一区二区三区久久网| 国产日本精品| 香蕉国产精品偷在线观看不卡| 国产亚洲欧美另类一区二区三区| 99亚洲视频| 国产日产高清欧美一区二区三区| 日韩视频不卡| 国产一区二区三区高清| 性久久久久久| 欧美69wwwcom| 精品二区视频| 国产亚洲激情| 久久久久久一区| 国产精品播放| 99精品免费网| 久久免费99精品久久久久久 | 亚洲国产免费| 国产精品三区www17con| 毛片一区二区| 国内精品久久国产| 在线观看亚洲| 午夜在线a亚洲v天堂网2018| 久久综合激情| 亚洲国产二区| 美女精品一区| 激情文学一区| 美女视频一区免费观看| 欧美日本一区二区高清播放视频| 黄色精品网站| 亚洲一区二区三区午夜| 欧美久久综合| 国产亚洲精品久久久久婷婷瑜伽| 久久精品日韩欧美| 亚洲成人在线视频网站| 先锋亚洲精品| 亚洲国产美女| 午夜精品久久久久99热蜜桃导演| 亚洲精品一区二区三区樱花| 久久男女视频| 国产日韩一区欧美| 国产综合18久久久久久| 麻豆精品网站| 亚洲人成毛片在线播放女女| 欧美一区二区三区四区在线观看地址 | 欧美一区高清| 一区二区高清视频| 国产精品yjizz| 另类激情亚洲| 亚洲作爱视频| 伊人久久成人| 欧美精品97| 久久久久在线| 亚洲欧美久久久| 国产区二精品视| 亚洲精品无人区| 激情婷婷欧美| 欧美日韩调教| 欧美精品自拍| 久久久精品日韩| 免费精品视频| 亚洲欧美成人| 亚洲一区二区免费看| 亚洲视频1区| 亚洲少妇自拍| 亚洲欧洲午夜| 亚洲黄页一区| 亚洲国产免费看| 亚洲高清电影| 亚洲婷婷在线| 在线成人黄色| 亚洲国内自拍| 99国产精品| 夜夜嗨一区二区| 在线亚洲成人| 一区二区三区四区五区在线| 一区二区高清视频| 国产一区91| 蘑菇福利视频一区播放| 久久精品导航| 欧美日本二区| 影音先锋在线一区| 亚洲高清视频一区| 99国产精品视频免费观看一公开| 亚洲高清免费| 国产精品日韩欧美一区二区| 亚洲专区在线| 欧美一区二区三区久久精品茉莉花| 欧美va天堂在线| 狠狠色噜噜狠狠色综合久| 国语精品一区| 在线亚洲欧美| 久久国产精品毛片| 欧美成人中文| 91久久午夜| 香蕉久久a毛片| 欧美日韩日本国产亚洲在线| 亚洲成人原创| 亚洲免费网址| 国模一区二区三区| 国产亚洲欧美另类一区二区三区| 亚洲欧美日韩在线综合| 午夜久久99| 亚洲国产精品一区在线观看不卡| 国产精品普通话对白| 欧美国产综合| 亚洲少妇一区| 午夜亚洲福利| 国产午夜精品一区二区三区欧美| 久久亚洲国产精品一区二区| 黄色亚洲在线| 久久激情婷婷| 在线国产日韩| 麻豆av一区二区三区久久| 激情综合电影网| 久久综合激情| 国产日韩欧美三区| 欧美日韩国内| 麻豆成人精品| 亚洲欧洲一级| 国产精品国产亚洲精品看不卡15| 一区二区日韩免费看| 欧美日韩综合网| 免费永久网站黄欧美| 亚洲国产三级| 欧美三区在线| 另类国产ts人妖高潮视频| 亚洲国产精品久久久久久女王| 久久综合网络一区二区| 亚洲一区二区三区免费观看 | 欧美精品亚洲| 国产一区二区三区免费不卡 | 激情视频一区二区| 欧美一区二区三区在线播放| 国产精品入口| 日韩亚洲视频| 在线成人国产| 亚洲私人影院|