91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的中斷使用介紹

科技綠洲 ? 來源:明解嵌入式 ? 作者:明解嵌入式 ? 2023-06-22 09:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、前言

中斷是什么?舉個例子來說,當我們正在工作時,突然電話響了,這時你會把手里的工作先停下來,然后去接電話,當接完電話后,電話里的人安排你馬上做一件事,這時你需要立刻去做這件事,當把這件事做完后你會繼續(xù)之前被打斷的工作,這個過程為一次中斷。

在計算機科學中,中斷指計算機CPU獲知某些事,暫停正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行處理該事件的程序,當這段程序執(zhí)行完畢后再繼續(xù)執(zhí)行之前的程序。整個過程稱為中斷處理,簡稱中斷,而引起這一過程的事件稱為中斷事件。中斷是計算機實現(xiàn)并發(fā)執(zhí)行的關鍵,也是操作系統(tǒng)工作的根本。中斷能提高CPU的效率,同時能對突發(fā)事件做出實時處理。實現(xiàn)程序的并行化,實現(xiàn)嵌入式系統(tǒng)進程之間的切換。

后續(xù)將從以下圖1中所示的幾個方面對STM32的中斷系統(tǒng)進行基本的解析。

圖片

圖1 中斷系統(tǒng)學習框架

二、 基本原理概述

圖片

圖2 基本原理概述

1、中斷的作用

(1)速度匹配,提高機器系統(tǒng)效率。 系統(tǒng)中處理機的工作速度遠高于外圍設備的工作速度。通過中斷可以協(xié)調(diào)它們之間的工作。當外圍設備需要與處理機交換信息時,由外圍設備向處理機發(fā)出中斷請求,處理機及時響應并作相應處理。不交換信息時,處理機和外圍設備處于各自獨立的并行工作狀態(tài)。

(2)分時操作,維持系統(tǒng)可靠正常工作。現(xiàn)代計算機中,程序員不能直接干預和操縱機器,必須通過中斷系統(tǒng)向操作系統(tǒng)發(fā)出請求,由操作系統(tǒng)來實現(xiàn)人為干預。主存儲器中往往有多道程序和各自的存儲空間。在程序運行過程中,如出現(xiàn)越界訪問,有可能引起程序混亂或相互破壞信息。為避免這類事件的發(fā)生,由存儲管理部件進行監(jiān)測,一旦發(fā)生越界訪問,向處理機發(fā)出中斷請求,處理機立即采取保護措施。

(3)實時響應,滿足實時處理要求。 在實時系統(tǒng)中,各種監(jiān)測和控制裝置隨機地向處理機發(fā)出中斷請求,處理機隨時響應并進行處理。

(4)提供故障現(xiàn)場處理手段,可靠性高。 處理機中設有各種故障檢測和錯誤診斷的部件,一旦發(fā)現(xiàn)故障或錯誤,立即發(fā)出中斷請求,進行故障現(xiàn)場記錄和隔離,為進一步處理提供必要的依據(jù)。

2、中斷和異常

ARM公司設計了如Cortex-M3或Cortex-M4內(nèi)核,這個內(nèi)核就包含了中斷系統(tǒng)框架,ST公司根據(jù)該內(nèi)核,因地制宜的設計了STM32系列產(chǎn)品。

CPU內(nèi)核中斷和核外外設中斷,其中內(nèi)核中斷,在官方手冊上,內(nèi)核中斷叫異常(exception)和核外外設中斷才叫中斷(interrupt),其實是一回事。

ARM Cortex M3內(nèi)核支持256個中斷,包括16個內(nèi)核中斷和240個外設中斷,擁有256個中斷優(yōu)先級別。

◆Cortex-M4內(nèi)核支持256個中斷,其中包含了16個內(nèi)核中斷和240個外部中斷,并且具有256級的可編程中斷設置。

◆STM32并沒有使用Cortex-M4內(nèi)核的全部東西,而是只用了它的一部分,中斷數(shù)量及中斷優(yōu)先級也進行裁剪用了一部分。

◆STM32的每個外設都可以產(chǎn)生中斷,如STM32F407系列一共有98個中斷,包括16個內(nèi)核中斷和82個可屏蔽中斷,具有16級可編程的中斷優(yōu)先級。

通常,把CPU內(nèi)部產(chǎn)生的緊急事件叫做異常。異常通常是微處理器內(nèi)部發(fā)生的,大多是軟件引起的,比如比如非法指令(除零)、地址訪問越界、特權調(diào)用異常等待。異常是指由于cpu本身故障、程序故障或者請求服務等引起的錯誤,異常屬于不正常現(xiàn)象。

把來自CPU外部的片上外設產(chǎn)生的緊急事件叫做中斷。中斷是微處理器外部發(fā)送的,通過中斷通道送入處理器內(nèi)部,一般是硬件引起的,比如GPIO引腳電平變化、定時器溢出、串口接收中斷等。中斷是指系統(tǒng)停止當前正在運行的程序轉(zhuǎn)而其他服務,可能是程序接收了比自身高優(yōu)先級的請求,或者是人為設置中斷,中斷是屬于正常現(xiàn)象。

不管是中斷還是異常,異常與中斷都是硬件支持的,微處理器通常都有相應的中斷/異常服務程序,異常和中斷的效果基本一致,都是暫停當前任務,優(yōu)先執(zhí)行緊急事件。

圖片

圖3 異常和中斷編號表

所有的異常和中斷用一個表管理起來,編號為0~15 的稱為內(nèi)核異常(需要說明的是,16個編號的內(nèi)核中斷,但是STM32本身的內(nèi)核中斷是11個,還有5個是保留的沒用的),而 16 以上的則稱為核外(外部)中斷(相對內(nèi)核而言,對于不同系列的STM32,大致的編號和數(shù)量相同,但是對于高級的,因為片上外設要多一些,所以中斷的數(shù)量也會多一些),這個表就稱為中斷向量表。這個中斷向量表,這個中斷向量表,本質(zhì)上可以理解成一個4個字節(jié)類型Int的數(shù)組,每一個元素就是放的是對應編號的中,外部中斷是我們必須學習掌握的知識,包含線中斷,定時器中斷,I2C,SPI等所有的外設中斷,可配置優(yōu)先級。

Reset( 復位)、NMI( Non Maskable Interrupt,不可屏蔽中斷)、HardFault( 硬件異常)的優(yōu)先級是固定的,且優(yōu)先級是負數(shù),也就是最高的(優(yōu)先級數(shù)字越小,優(yōu)先級越高)。剩下的異常或中斷,都是可以通過修改NVIC的寄存器調(diào)整優(yōu)先級( 但不能設置為負數(shù))。NVIC作為在內(nèi)核里的外設,也是通過存儲器映射的方式訪問。

3、NVIC中斷控制器

有如此多的中斷信號, CPU如何去控制它呢?內(nèi)核有一個專門管理中斷的外設NVIC(嵌套向量中斷控制器),可以實現(xiàn)低延遲的中斷處理和晚到中斷的高效處理,通過優(yōu)先級控制中斷的嵌套和調(diào)度來管理;NVIC是一個總的中斷控制器,無論是來在內(nèi)核的異常還是外設的外部中斷, 都由NVIC統(tǒng)一進行管理。NVIC收到外設的中斷請求,會將其中斷請求發(fā)送給內(nèi)核,內(nèi)核收到NVIC的中斷通知之后,就會去判斷此時哪個中斷發(fā)生,然后查找FLASH中斷向量表去獲取相應的中斷處理函數(shù)。

它具有以下特征:

(1)支持嵌套和向量中斷;

(2)自動保存和恢復處理器狀態(tài);

(3)動態(tài)改變優(yōu)先級;

(4)簡化的和確定的中斷時間。

帶來的優(yōu)勢:

(1)響應速度提高;

(2)標準化,統(tǒng)一管理。

圖片

圖4 NVIC在芯片上的位置

4、中斷的分類

中斷按事件來源分類,可以分為外部中斷和內(nèi)部中斷。中斷事件來自于內(nèi)核外部的被稱為外部中斷,來自于內(nèi)核內(nèi)部的則為內(nèi)部中斷。

進一步細分,外部中斷還可分為可屏蔽中斷(maskable interrupt)和不可屏蔽中斷(non-maskable interrupt)兩種,而內(nèi)部中斷按事件是否正常來劃分可分為軟中斷和異常兩種。

外部中斷的中斷事件來源于內(nèi)核外部,必然是某個硬件產(chǎn)生的,所以外部中斷又被稱為硬件中斷(hardware interrupt)。計算機的外部設備,如網(wǎng)卡、聲卡、顯卡等都能產(chǎn)生中斷。外部設備的中斷信號是通過兩根信號線通知CPU的,一根是IRQ,另一根是NMI。CPU從IRQ收到的中斷信號都是不影響系統(tǒng)運行的,CPU可以選擇屏蔽(通過設置中斷屏蔽寄存器中的IF位),而從NMI中收到的中斷信號則是影響系統(tǒng)運行的嚴重錯誤,不可屏蔽,因為屏蔽的意義不大,系統(tǒng)已經(jīng)無法運行。

內(nèi)部中斷來自于內(nèi)核內(nèi)部,其中軟中斷是由軟件主動發(fā)起的中斷,常被用于系統(tǒng)調(diào)用(system call),任務切換(PendSV)等;而異常則是指令執(zhí)行期間CPU內(nèi)部產(chǎn)生的錯誤引起的。異常也和不可屏蔽中斷區(qū)別在于不可屏蔽中斷發(fā)生的事件會導致處理器無法運行(如斷電、電源故障等),而異常則是影響系統(tǒng)正常運行的中斷(如除0、越界訪問等)。

三、 中斷管理機制

圖片

圖5 中斷管理機制要素

1、中斷向量

由于CPU隨時都可能檢測到中斷信息,也就是說,CPU 隨時都可能執(zhí)行中斷處理程序,所以中斷處理程序必須一直存儲在內(nèi)存某段空間之中。中斷處理程序在內(nèi)存中的入口地址稱為中斷向量;而要確定中斷處理程序的入口地址,處理器利用了一種向量表機制:即中斷向量,必須存儲在對應的中斷向量表表項中。采用向量表處理中斷,處理器會從存儲器的向量表中,自動定位中斷的程序入口。從發(fā)生中斷到中斷的處理中間的時間被縮減。

STM32的內(nèi)部閃存地址起始于0x8000000,一般情況下,程序文件就從此地址開始寫入。此外STM32其內(nèi)部通過“中斷向量表”來響應中斷,程序啟動后,將首先從“中斷向量表”取出復位中斷向量執(zhí)行復位中斷程序完成啟動。而這張“中斷向量表”的起始地址是0x8000004,當中斷來臨,STM32的內(nèi)部硬件機制亦會自動將PC指針定位到“中斷向量表”處,并根據(jù)中斷源取出對應的中斷向量執(zhí)行中斷服務程序。

圖片

圖6 中斷向量執(zhí)行

(1)STM32復位后,會從地址為0x8000004處取出復位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行復位中斷服務程序,如圖6中標號①所示。

(2)復位中斷服務程序執(zhí)行的最終結(jié)果是跳轉(zhuǎn)至C程序的main函數(shù),如圖6中標號②所示,而main函數(shù)應該是一個死循環(huán),是一個永不返回的函數(shù)。

(3)在main函數(shù)執(zhí)行的過程中,發(fā)生了一個中斷請求,此時STM32的硬件機制會將PC指針強制指回中斷向量表處,如圖6中標號③所示。

(4)根據(jù)中斷源進入相應的中斷服務程序,如圖6中標號④所示。

(5)中斷服務程序執(zhí)行完畢后,程序再度返回至main函數(shù)中執(zhí)行,如圖6中標號⑤所示。

2、中斷優(yōu)先級

中斷優(yōu)先級通過優(yōu)先級配置寄存器進行配置,本寄存器寬度為8位,原則上每個中斷可配置編程的優(yōu)先級為0255,實際上可編程優(yōu)先級的實際數(shù)量由芯片設計商決定,多數(shù)Cortex-M3或Cortex-M4芯片支持的優(yōu)先級較少,這是因為大量的優(yōu)先級會增加NVIC的復雜度,而且會增加功耗降低速度,多數(shù)情況下,應用程序只需要少量的編程優(yōu)先級,因此芯片廠商需要基于目標應用的優(yōu)先級數(shù)量設計處理器優(yōu)先級,優(yōu)先級的減少是通過去除優(yōu)先級配置寄存器的低位實現(xiàn),STM32只用到了中斷優(yōu)先級寄存器的的高4位。如圖,使用到了bit7到bit4,最多可以配置016個中斷優(yōu)先級:

圖片

圖7 4位優(yōu)先級寄存器

這個4 位數(shù)字的位數(shù)分可以配成搶占優(yōu)先級部分和響應優(yōu)先級部分,因此可以有5組配置選擇:

圖片

圖8 中斷優(yōu)先級描述

優(yōu)先級數(shù)值越小,優(yōu)先級越高。

搶占優(yōu)先級,是指打斷其他中斷的屬性,即因為具有這個屬性會出現(xiàn)嵌套中斷,搶占優(yōu)先級的概念等同于單片機中的常規(guī)中斷。假設有兩中斷先后觸發(fā),已經(jīng)在執(zhí)行的中斷搶占優(yōu)先級如果沒有后觸發(fā)的中斷搶占優(yōu)先級更高,就會先處理搶占優(yōu)先級高的中斷。也就是說有較高的搶占優(yōu)先級的中斷可以打斷搶占優(yōu)先級較低的中斷。

響應優(yōu)先級也叫做亞優(yōu)先級或者子優(yōu)先級, 響應屬性則應用在搶占屬性相同的情況下,當兩個中斷向量的搶占優(yōu)先級相同時,如果兩個中斷同時到達,則先處理響應優(yōu)先級高的中斷。

回到優(yōu)先級上來。具有高搶占式優(yōu)先級的中斷可以在具有低搶占式優(yōu)先級的中斷處理過程中被響應,即中斷嵌套,或者說高搶占式優(yōu)先級的中斷可以嵌套在低搶占式優(yōu)先級的中斷中。當兩個中斷源的搶占式優(yōu)先級相同時,這兩個中斷將沒有嵌套關系,當一個中斷到來后,如果正在處理另一個中斷,這個后到來的中斷就要等到前一個中斷處理完之后才能被處理。如果這兩個中斷同時到達,則中斷控制器根據(jù)他們的響應優(yōu)先級高低來決定先處理哪一個;如果他們的搶占式優(yōu)先級和響應優(yōu)先級都相等,則根據(jù)他們在中斷向量表中的排位順序決定先處理哪一個,中斷向量表排在前面的中斷優(yōu)先級高。

看了上面的介紹后,相信大家都明白了這里面的關系了,總結(jié)下就是:搶占式優(yōu)先級>響應優(yōu)先級>中斷表中的排位順序。

3、中斷嵌套

中斷嵌套是指中斷系統(tǒng)正在執(zhí)行一個中斷服務時,有另一個優(yōu)先級更高的中斷提出中斷請求,這時會暫時終止當前正在執(zhí)行的級別較低的中斷源的服務程序,去處理級別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務程序繼續(xù)執(zhí)行的過程。

在STM32中,只有搶占優(yōu)先級才決定了中斷嵌套。

如下圖所示,搶占優(yōu)先級高的任務出現(xiàn)后,會打斷搶占優(yōu)先級低的任務,即所謂的中斷嵌套。例如:

圖片

圖9 中斷嵌套示意圖

搶占優(yōu)先級為N的中斷任務正在運行,此時,搶占優(yōu)先級為2的中斷產(chǎn)生,則MCU會將搶占優(yōu)先級為N的任務暫時停止,先響應執(zhí)行中斷優(yōu)先級為2的任務,待該任務完成后,再來完成搶占優(yōu)先級為N的任務。

若是搶占優(yōu)先級為2的中斷正在運行,又有新的搶占優(yōu)先級為2的中斷產(chǎn)生,則新產(chǎn)生的中斷會等待當前中斷任務完成后,再執(zhí)行新產(chǎn)生的中斷。

若是搶占優(yōu)先級相同的任務同時產(chǎn)生,則響應優(yōu)先級高的中斷先執(zhí)行。若是搶占優(yōu)先級,響應優(yōu)先級均相同的中斷同時產(chǎn)生,則根據(jù)該中斷在中斷向量表的順序來執(zhí)行中斷任務。

四、 中斷處理流程

圖片

圖10 中斷處理流程

下圖為中斷處理流程示意圖,可以概括性的將處理流程分為:進入中斷、中斷處理和退出中斷。

圖片

圖11 中斷處理示意

進入中斷:

(1)中斷源發(fā)出請求,硬件判斷處理器是否允許中斷及該中斷是否被屏蔽,若允許中斷則當前運行的程序被打斷;

(2)處理器將各寄存器的內(nèi)容壓入堆棧保存,主要是PC, xPSR, R0-R3, R12, LR寄存器;

(3)根據(jù)中斷向量號,到中斷向量表中找到中斷服務程序的入口地址跳轉(zhuǎn)執(zhí)行。

中斷處理:

(1)執(zhí)行中斷服務程序;

(2)遵循中斷優(yōu)先級和中斷嵌套的執(zhí)行規(guī)則。

退出中斷:

(1)將保存在堆棧中的現(xiàn)場信息彈出到原來的寄存器中;

(2)返回被原先被中斷的程序處繼續(xù)執(zhí)行。

五、總結(jié)

本篇主要是針對STM32的中斷系統(tǒng),目前從基本原理,中斷管理機制,中斷處理流程這幾個方面對中斷的基本特性和概念進行了較為詳細的概述,目的是為了在以后STM32的中斷使用中對中斷的理解有較好的幫助,也可以看出NVIC在STM32中起到的作用。在下一篇將繼續(xù)介紹中斷系統(tǒng)基礎知識之寄存器功能原理。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11074

    瀏覽量

    216926
  • 計算機
    +關注

    關注

    19

    文章

    7657

    瀏覽量

    90724
  • STM32
    +關注

    關注

    2293

    文章

    11031

    瀏覽量

    364513
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32 GPIO的外部中斷設計

    輸入引腳,還可以通過另外一種叫做外部中斷的方式來對引腳的輸入信號進行檢測,本篇首先介紹下EXTI的結(jié)構,接著介紹外部中斷的相關概念,對STM32
    發(fā)表于 04-14 10:51 ?2657次閱讀
    <b class='flag-5'>STM32</b> GPIO的外部<b class='flag-5'>中斷</b>設計

    利用STM32的USART1實現(xiàn)數(shù)據(jù)的收/發(fā)

    (USART_SR)數(shù)據(jù)寄存器(USART_DR)串口設置流程1、串口時鐘使能,GPIO使能2、串口復位3、GPIO端口模式設置4、串口參數(shù)初始化5、使能串口串口數(shù)據(jù)的接收與發(fā)送stm32 中斷介紹代碼uart.c
    發(fā)表于 08-16 06:55

    主要講解STM32的外部中斷以及使用STM32CubeMX編寫中斷程序

    STM32CubeMX教程(二)2021.10.27簡介本次主要講解STM32的外部中斷以及使用STM32CubeMX編寫中斷程序,實現(xiàn)按鍵
    發(fā)表于 01-13 08:21

    關于STM32中斷介紹

    中斷STM32里最重要的一環(huán),可以說,如果學不會中斷,你后期寫的操作系統(tǒng)就是個廢物,因為有的異常你根本無法處理,既然中斷這么重要,那我們就先學習一下關于
    發(fā)表于 01-19 06:30

    STM32單片機中斷系統(tǒng)

    這節(jié)課主要給大家介紹一下 STM32 單片機的中斷系統(tǒng)。
    發(fā)表于 11-11 17:17 ?33次下載

    中斷是什么?STM32中斷系統(tǒng)介紹中斷配置步驟資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是中斷是什么?STM32中斷系統(tǒng)介紹中斷配置步驟資料免費下載。
    發(fā)表于 10-11 08:00 ?5次下載
    <b class='flag-5'>中斷</b>是什么?<b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>系統(tǒng)<b class='flag-5'>介紹</b>和<b class='flag-5'>中斷</b>配置步驟資料免費下載

    stm32中斷與外部中斷

    stm32中斷系統(tǒng)對于中斷的基本概念這里就不介紹了,當時學51的時候,看過一篇前輩的博客,講的不錯,暫時找不到了,找到了補上。STM32F
    發(fā)表于 11-22 13:06 ?26次下載
    <b class='flag-5'>stm32</b>之<b class='flag-5'>中斷</b>與外部<b class='flag-5'>中斷</b>

    STM32中斷編程步驟

    介紹stm32f10x中斷的概念,已經(jīng)中斷向量表,還有中斷編程的一下要點,涉及的一下寄存器
    發(fā)表于 11-23 17:51 ?30次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>編程步驟

    STM32公用中斷源時的中斷分配

    STM32l0xx為例多外部中斷共用中斷源時,要通過判斷中斷請求狀態(tài)來分配中斷stm32l0x
    發(fā)表于 11-24 16:51 ?4次下載
    <b class='flag-5'>STM32</b>公用<b class='flag-5'>中斷</b>源時的<b class='flag-5'>中斷</b>分配

    STM32外部中斷實驗-EXTI

    STM32 外部中斷簡介STM32 的每個 IO 都可以作為外部中斷中斷輸入口,這點也是 STM32
    發(fā)表于 11-29 16:06 ?9次下載
    <b class='flag-5'>STM32</b>外部<b class='flag-5'>中斷</b>實驗-EXTI

    STM32(六)-------中斷(外部中斷

    STM32中斷應用中斷知識介紹STM32 中斷應用概覽異常NVIC優(yōu)先級定義
    發(fā)表于 12-04 17:21 ?9次下載
    <b class='flag-5'>STM32</b>(六)-------<b class='flag-5'>中斷</b>(外部<b class='flag-5'>中斷</b>)

    STM32中斷原理

    目錄一、中斷介紹1.1 什么是中斷1.2 中斷的作用1.3 中斷的約束二、STM32CubeMX
    發(fā)表于 12-24 19:11 ?17次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>原理

    STM32串口收/發(fā)程序--庫函數(shù)編程

    (USART_SR)數(shù)據(jù)寄存器(USART_DR)串口設置流程1、串口時鐘使能,GPIO使能2、串口復位3、GPIO端口模式設置4、串口參數(shù)初始化5、使能串口串口數(shù)據(jù)的接收與發(fā)送stm32 中斷介紹代碼uart.c
    發(fā)表于 12-28 19:07 ?5次下載
    <b class='flag-5'>STM32</b>串口收/發(fā)程序--庫函數(shù)編程

    STM32如何配置外部中斷STM32外部中斷配置步驟

    STM32如何配置外部中斷STM32外部中斷配置步驟? 作為一款現(xiàn)代化的微控制器,STM32系列芯片在各種應用場合中廣泛應用。其中最常見的
    的頭像 發(fā)表于 10-26 17:47 ?4619次閱讀

    stm32中斷怎么處理的

    STM32是一款非常強大的微控制器系列,具有豐富的外設和功能。中斷STM32中非常重要的部分,能夠幫助我們提高系統(tǒng)的響應速度和效率。本文將詳細介紹
    的頭像 發(fā)表于 01-02 17:35 ?3375次閱讀
    主站蜘蛛池模板: 久久成人性色生活片 | 天天做天天摸 | 久久黄色视屏 | 狠狠的日视频 | 日本亚洲高清乱码中文在线观看 | 国产一二三区在线观看 | 男女在线观看视频 | 高清毛片一区二区三区 | 亚洲国产一区二区三区a毛片 | 久草资源网 | 欧美18性欧美丶黑吊 | 黄色高清视频网站 | 亚洲瑟瑟网 | 一级a毛片免费观看 | 奇米影视777四色米奇影院 | 亚洲综合色丁香婷婷六月图片 | 四虎在线永久免费视频网站 | 久久久夜夜夜 | 性a爱片免费视频性 | 国产小视频你懂的 | 免费黄色a视频 | 久久美女性网 | 久操伊人 | 三级网址在线观看 | 欧美综合国产精品日韩一 | 日本在线视频一区二区三区 | 亚洲伊人成人网 | 欧美成人鲁丝片在线观看 | 四月激情网 | 国产农村妇女毛片精品久久久 | 亚洲一区免费在线观看 | 国产va免费精品高清在线观看 | 国产免费资源 | 又粗又大又爽又色又过瘾视频 | 91色视频网站 | 亚洲啊v| 91精选视频在线观看 | 一区二区三区电影 | 中文字幕1区 | 狠狠色丁香久久综合婷婷 | 国产资源在线视频 |