日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

RT thread 设备驱动组件之USART设备

發布時間:2023/12/3 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 RT thread 设备驱动组件之USART设备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 本文以stm32f4xx平臺介紹串口驅動,主要目的是:1、RTT中如何編寫中斷處理程序;2、如何編寫RTT設備驅動接口代碼;3、了解串行設備的常見處理機制。所涉及的主要源碼文件有:驅動框架文件(usart.c,usart.h),底層硬件驅動文件(serial.c,serial.h)。應用串口設備驅動時,需要在rtconfig.h中宏定義#define RT_USING_SERIAL。

一、RTT的設備驅動程序概述

? ? ? 編寫uart的驅動程序,首先需要了解RTT的設備框架,這里以usart的驅動來具體分析RTT的IO設備管理。注:參考《RTT實時操作系統編程指南》 I/O設備管理一章。

我們可以將USART的硬件驅動分成兩個部分,如下圖所示

? +----------------------+
? | rtt下的usart設備驅動???? |
? |---------------------- |
? | usart硬件初始化代碼????? |
? |---------------------- |
? | usart 硬件????????????????? |
? +----------------------+

? ? ? 實際上,在缺乏操作系統的平臺,即裸機平臺上,我們通常只需要編寫USART硬件初始化代碼即可。而引入了RTOS,如RTT后,RTT中自帶IO設備管理層,它是為了將各種各樣的硬件設備封裝成具有統一的接口的邏輯設備,以方便管理及使用。讓我們從下向上看,先來看看USART硬件初始化程序,這部分代碼位于usart.c和usart.h中。

二、USART硬件初始化

假如在接觸RTT之前,你已經對stm32很熟悉了,那么此文件中定義的函數名一定讓你倍感親切。這里實現的函數有:

  • static void RCC_Configuration(void);

  • static void GPIO_Configuration(void);

  • static void NVIC_Configuration(void);

  • static void DMA_Configuration(void);

  • void stm32_hw_usart_init();

前四個函數,是跟ST官方固件庫提供的示例代碼的名字保持一致。這些函數內部也是直接調用官方庫代碼實現的。具體不再贅述。對STM32裸機開發不太熟悉的朋友,建議先去官方網站下載官方固件源碼包,以及應用手冊和示例程序,ST提供了大量的文檔和示例代碼,利用好這些資源可以極大地加快開發。

下面重點看一下 usart.c中stm32_hw_usart_init():

int stm32_hw_usart_init(void)
{struct stm32_uart *uart;struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;RCC_Configuration();GPIO_Configuration();#ifdef RT_USING_UART2uart = &uart2;serial2.ops    = &stm32_uart_ops;serial2.config = config;NVIC_Configuration(&uart2);/* register UART2 device */rt_hw_serial_register(&serial2,"uart2",RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, //dev->flag (not dev->open_flag)
                          uart);
#endif /* RT_USING_UART2 */#ifdef RT_USING_UART3
...
#endif /* RT_USING_UART3 */return 0;
}
//INIT_BOARD_EXPORT(stm32_hw_usart_init); //it must be invoked in board.c(rt_hw_board_init for setting CONSOLE_DEVICE)

? ? ? 首先該函數調用RCC_Configuration()和GPIO_Configuration()打開串口外設時鐘和IO口配置;調用NVIC_Configuration(&uart2)設置串口中斷,其中參數&uart2為一個自定義結構體類型:

/* STM32 uart driver */
struct stm32_uart
{USART_TypeDef *uart_device;IRQn_Type irq;
};

? ? ? 接著初始化設備類對象serial2中的ops和config兩個參數,并在usart.c中實現了stm32_uart_ops中的四個函數。

static const struct rt_uart_ops stm32_uart_ops =
{stm32_configure,stm32_control,stm32_putc,stm32_getc,
};
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;

? ? ? 最后注冊串口設備serial2,注冊函數位于serial.c中:

/* register UART2 device */
rt_hw_serial_register(&serial2,"uart2",RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, //dev->flag (not dev->open_flag)uart);

? ? ? 顯然,函數?stm32_hw_usart_init(),顧名思義,是用于初始化USART硬件的函數,因此這個函數一定會在USART使用之前被調用。搜索工程發現,這個函數是在board.c中rt_hw_board_init函數中被調用,而rt_hw_board_init函數又是在startup.c里的 rtthread_startup函數中調用的。進一步在startup.c的main函數中調用的,我們將實際的路徑調用過程繪制如下。

  startup.c main()---> startup.c rtthread_startup()---> board.c   rt_hw_board_init() ---> usart.c   rt_hw_usart_init()

? ? ? 到這里,USART硬件的初始化工作已經完成完成了99%,下一步,我們需要為USART編寫代碼,將其納入到RTT的設備管理層之中,正如前面所說,這部分代碼在serial.c中實現。我們來重點分析這一文件。

三、在RTT下使用USART,將USART納入RTT的IO設備層中

? ? ? 相對于stm32的內核來說,USART是一種低速的串行設備,并且為了最大的發揮的MCU的性能,因此使用查詢方式發送、中斷方式接收(發送也可以使用DMA方式)。這些已經在usart.c中使能了。首先看一些serial.h中的重要數據結構:

/** Serial FIFO mode */
struct rt_serial_rx_fifo
{/* software fifo */rt_uint8_t *buffer;rt_uint16_t put_index, get_index;
};struct rt_serial_tx_fifo
{struct rt_completion completion;
};/* * Serial DMA mode*/
struct rt_serial_rx_dma
{rt_bool_t activated;
};struct rt_serial_tx_dma
{rt_bool_t activated;struct rt_data_queue data_queue;
};struct rt_serial_device
{struct rt_device          parent;const struct rt_uart_ops *ops;struct serial_configure   config;void *serial_rx;void *serial_tx;
};
typedef struct rt_serial_device rt_serial_t;
/*** uart operators*/
struct rt_uart_ops
{rt_err_t (*configure)(struct rt_serial_device *serial, struct serial_configure *cfg);rt_err_t (*control)(struct rt_serial_device *serial, int cmd, void *arg);int (*putc)(struct rt_serial_device *serial, char c);int (*getc)(struct rt_serial_device *serial);rt_size_t (*dma_transmit)(struct rt_serial_device *serial, const rt_uint8_t *buf, rt_size_t size, int direction);
};

在serial.c中主要實現rtthread系統的IO設備統一接口函數,并注冊串口設備:

/** serial register*/
rt_err_t rt_hw_serial_register(struct rt_serial_device *serial,const char              *name,rt_uint32_t              flag,void                    *data)
{struct rt_device *device;RT_ASSERT(serial != RT_NULL);device = &(serial->parent);device->type        = RT_Device_Class_Char;device->rx_indicate = RT_NULL;device->tx_complete = RT_NULL;device->init        = rt_serial_init;device->open        = rt_serial_open;device->close       = rt_serial_close;device->read        = rt_serial_read;device->write       = rt_serial_write;device->control     = rt_serial_control;device->user_data   = data;/* register a character device */return rt_device_register(device, name, flag);
}

? ? ? ?對于串口發送數據,默認采用查詢方式。因為串口設備注冊的時候,其設備標志為RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,沒有RT_DEVICE_FLAG_DMA_TX或RT_DEVICE_FLAG_INT_TX標志。 數據發送流程為:rt_device_write()-->rt_serial_write()-->_serial_poll_tx()-->stm32_putc()。

? ? ? 考慮串口接受數據的情況,串口收到一個字節的數據,就會觸發串口中斷USARTx_IRQHandler,數據字節會存放于串口的硬件寄存器中。但是在RTOS中,通常存在多個線程,如果某個處理串口數據的線程在沒有串口數據時阻塞,當下一串口數據到來時,如果該數據線程依然沒有喚醒并啟動,并讀取串口字節,則上一個串口字節丟失了,因此這不是一個優良的設計,我們需要設計一種機制來解決這種潛在的問題。實際上,緩沖機制可以大大緩解這個問題。數據讀取流程為:rt_device_read()-->rt_serial_read()-->rt_hw_serial_isr()-->stm32_getc()。

? ? ? 所謂緩沖機制,簡略的來說,即開辟一個緩沖區,可以是靜態數組,也可以是malloc(或mempool)申請的動態緩沖區。在串口中斷中,先從串口的硬件寄存器中讀取數據,并保存到緩沖區中。這種情況下,我們需要兩個變量,一個用于標記當前寫入的位置,另外一個用來表示已經被處理的數據的位置。這樣當數據處理線程阻塞時,連續收到的數據會保存到緩沖區中而避免了丟失。當中斷中已經接收到了一些串口數據后,數據處理線程終于就緒,并開始處理數據,通常來說處理數據的速度必然比接受數據要快,因此這樣就能解決前面所說的問題。聰明的讀者發現了,還有一個小問題,緩沖區的長度必然是有限的,終歸會有用到頭的時候,那該怎么辦呢?別擔心,緩沖區前面已經被處理過的數據所占用的空間按自然可以重復使用,即,當接收指針指向了緩沖區末尾時,只要緩沖區頭的數據已經被處理過了,自然可以直接將緩沖區指針從新設置為頭,對于表示已處理的指針變量同理。這樣這個緩沖區也就成為了一個環形緩沖區。

下面重點看一下中斷函數:

#if defined(RT_USING_UART2)
/* UART2 device driver structure */
struct stm32_uart uart2 =
{USART2,USART2_IRQn,
};
struct rt_serial_device serial2;void USART2_IRQHandler(void)
{struct stm32_uart *uart;uart = &uart2;/* enter interrupt */rt_interrupt_enter();if (USART_GetITStatus(uart->uart_device, USART_IT_RXNE) != RESET){rt_hw_serial_isr(&serial2, RT_SERIAL_EVENT_RX_IND);//USART_IT_RXNE is cleared automatically by reading USART_DR in stm32_getc()
    }if (USART_GetITStatus(uart->uart_device, USART_IT_TC) != RESET){/* clear interrupt */USART_ClearITPendingBit(uart->uart_device, USART_IT_TC);}/* leave interrupt */rt_interrupt_leave();
}
#endif /* RT_USING_UART2 */

該中斷函數在usart.c中,在RTT下的每一個中斷服務子程序的入口都調用了rt_interrupt_enter(),在中斷函數的子程序的出口則調用了rt_interrupt_leave()。
/* ISR for serial interrupt */
void rt_hw_serial_isr(struct rt_serial_device *serial, int event)
{switch (event & 0xff){case RT_SERIAL_EVENT_RX_IND:{int ch = -1;rt_base_t level;struct rt_serial_rx_fifo* rx_fifo;rx_fifo = (struct rt_serial_rx_fifo*)serial->serial_rx;RT_ASSERT(rx_fifo != RT_NULL);/* interrupt mode receive */RT_ASSERT(serial->parent.open_flag & RT_DEVICE_FLAG_INT_RX);while (1){ch = serial->ops->getc(serial);if (ch == -1) break;/* disable interrupt */level = rt_hw_interrupt_disable();rx_fifo->buffer[rx_fifo->put_index] = ch;rx_fifo->put_index += 1;if (rx_fifo->put_index >= serial->config.bufsz) rx_fifo->put_index = 0;/* if the next position is read index, discard this 'read char' */if (rx_fifo->put_index == rx_fifo->get_index){rx_fifo->get_index += 1;if (rx_fifo->get_index >= serial->config.bufsz) rx_fifo->get_index = 0;}/* enable interrupt */rt_hw_interrupt_enable(level);}/* invoke callback */if (serial->parent.rx_indicate != RT_NULL){rt_size_t rx_length;/* get rx length */level = rt_hw_interrupt_disable();rx_length = (rx_fifo->put_index >= rx_fifo->get_index)? (rx_fifo->put_index - rx_fifo->get_index):(serial->config.bufsz - (rx_fifo->get_index - rx_fifo->put_index));rt_hw_interrupt_enable(level);serial->parent.rx_indicate(&serial->parent, rx_length);}break;}case RT_SERIAL_EVENT_TX_DONE:{struct rt_serial_tx_fifo* tx_fifo;tx_fifo = (struct rt_serial_tx_fifo*)serial->serial_tx;rt_completion_done(&(tx_fifo->completion));break;}case RT_SERIAL_EVENT_TX_DMADONE:{const void *data_ptr;rt_size_t data_size;const void *last_data_ptr;struct rt_serial_tx_dma* tx_dma;tx_dma = (struct rt_serial_tx_dma*) serial->serial_tx;rt_data_queue_pop(&(tx_dma->data_queue), &last_data_ptr, &data_size, 0);if (rt_data_queue_peak(&(tx_dma->data_queue), &data_ptr, &data_size) == RT_EOK){/* transmit next data node */tx_dma->activated = RT_TRUE;serial->ops->dma_transmit(serial, data_ptr, data_size, RT_SERIAL_DMA_TX);}else{tx_dma->activated = RT_FALSE;}/* invoke callback */if (serial->parent.tx_complete != RT_NULL){serial->parent.tx_complete(&serial->parent, (void*)last_data_ptr);}break;}case RT_SERIAL_EVENT_RX_DMADONE:{int length;struct rt_serial_rx_dma* rx_dma;rx_dma = (struct rt_serial_rx_dma*)serial->serial_rx;/* get DMA rx length */length = (event & (~0xff)) >> 8;serial->parent.rx_indicate(&(serial->parent), length);rx_dma->activated = RT_FALSE;break;}}
}

該函數位于serial.c中,默認情況下usart的rt_device結構體中rx_indicate域被置空,因此不會運行這一段代碼。如果使用rt_device_set_rx_indicate(rt_device_t dev, rt_err_t(* rx_ind)(rt_device_t dev, rt_size_t size))函數為一個串口設備注冊了接收事件回調函數,在該串口接收到數據后,就會調用之前注冊的rx_ind函數,將當前設備指針以及待讀取的數據長度作為調用參數傳遞給用戶。

轉載于:https://www.cnblogs.com/King-Gentleman/p/4653011.html

總結

以上是生活随笔為你收集整理的RT thread 设备驱动组件之USART设备的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久在线观看视频 | 毛片视频电影 | 成人一级片视频 | 麻豆国产在线视频 | 黄色资源在线观看 | 91九色网站 | 国产精品免费观看网站 | 欧美日韩精品在线视频 | 久久久男人的天堂 | 就要干b | 国产1区2 | 婷婷中文在线 | 在线观看的a站 | 免费特级黄色片 | 久久综合久久鬼 | 91看片一区二区三区 | 午夜免费福利片 | 久久国产美女视频 | 婷婷在线综合 | 狠狠88综合久久久久综合网 | 天天插天天操天天干 | 国产成人一区二区三区 | 日本精品在线看 | 欧美一区免费观看 | 免费福利片 | 国产乱视频 | 色鬼综合网 | 91精品婷婷国产综合久久蝌蚪 | 久久不色| 欧美视频一区二 | 亚洲国产三级 | 天天玩天天干天天操 | 日韩av一区二区在线 | 国产在线观看高清视频 | 亚洲国产中文在线观看 | 精品1区2区| 黄色小说18 | 91中文在线视频 | 久久久久欧美精品 | 黄色成人在线 | 在线电影日韩 | 亚洲成人xxx | 日本在线观看中文字幕 | 国产欧美三级 | 夜夜躁天天躁很躁波 | 免费精品 | 国产一区二区三区四区大秀 | 日本精品在线 | 久久久精品综合 | 人人爽人人爱 | 国产一线二线三线性视频 | 久久久久蜜桃 | 97超碰中文字幕 | 亚洲精品观看 | 欧美极品一区二区三区 | 久久av中文字幕片 | 在线免费观看羞羞视频 | 午夜久久精品 | 丁香五婷 | 婷婷丁香导航 | 免费99精品国产自在在线 | 亚洲最大av| 久久久久久久久亚洲精品 | 日韩中文字幕免费电影 | 日韩精品在线免费播放 | 狠狠色狠狠色综合日日92 | 天天综合网天天综合色 | 久久免费视频一区 | 国产精品区一区 | 久久精品99国产精品亚洲最刺激 | 亚洲精品伦理在线 | 麻豆视频在线观看 | 日韩精品视频在线免费观看 | 在线免费高清 | 亚洲精品在线免费看 | 日韩欧美在线观看 | 久草视频在线资源站 | 精品久久久久久国产偷窥 | 91精品啪啪 | 黄网站色成年免费观看 | 蜜桃视频精品 | 精品国产伦一区二区三区免费 | 精品久久久久久久久久久久久久久久久久 | 欧美精品一区二区在线观看 | 免费不卡中文字幕视频 | 天天伊人网| 国产精品岛国久久久久久久久红粉 | 波多野结衣电影久久 | www五月婷婷 | 亚洲精品资源 | 日韩精品国产一区 | 免费国产黄线在线观看视频 | 99久久精品国产亚洲 | 日韩电影中文字幕在线观看 | 在线免费成人 | 欧美一级特黄aaaaaa大片在线观看 | 精品一区在线 | 精品免费视频123区 午夜久久成人 | 国产综合香蕉五月婷在线 | 五月婷婷丁香六月 | 久久不见久久见免费影院 | 最新av电影网站 | 美女免费网站 | 久久亚洲在线 | 中文字幕有码在线播放 | 九九激情视频 | 91成年视频 | 五月婷婷综合激情网 | 国产999精品久久久久久绿帽 | 国产成人三级在线 | 精品超碰| 最新超碰在线 | 99在线视频网站 | 91福利社区在线观看 | 国产人成在线视频 | 永久免费在线 | 免费观看第二部31集 | 美女精品网站 | 日韩在线免费观看视频 | 国产午夜精品免费一区二区三区视频 | 国产小视频在线播放 | 中文字幕乱码日本亚洲一区二区 | 欧美激情第28页 | 免费视频一区二区 | 欧美性生活大片 | 欧美在线视频免费 | 久久久久免费网站 | 综合久久久 | 香蕉视频国产在线观看 | 欧美欧美 | 91传媒视频在线观看 | 91视频3p | 91免费网| 日韩美女一级片 | 亚洲综合最新在线 | 国产中文字幕在线视频 | 碰超人人 | 九九免费在线观看 | 久久精品久久国产 | 亚洲一级黄色大片 | 精品久久久久久久久亚洲 | 国产精品国产三级国产aⅴ无密码 | 国产精品99久久久久久武松影视 | 国产精品1000 | 国产精品久久久久久a | 欧洲高潮三级做爰 | a在线免费 | 婷婷在线资源 | 极品国产91在线网站 | 福利视频区| 亚洲国产精品视频 | 亚洲第一香蕉视频 | 国产精品专区在线 | 欧美va电影 | 亚洲专区在线 | 在线影院 国内精品 | 午夜精品视频一区 | 精品二区久久 | 日韩在线一二三区 | 国产精品岛国久久久久久久久红粉 | 黄色精品国产 | 久草视频在线观 | 色综合天天射 | 久久久久电影网站 | 久久精品aaa | 亚洲视频在线观看免费 | 粉嫩av一区二区三区入口 | 国产91精品在线观看 | 久久综合九色综合久99 | 一区二区三区免费在线观看 | 国产黄a三级 | 免费看精品久久片 | 亚洲精品五月天 | 日韩黄色在线电影 | 亚洲国产精品va在线看黑人 | 天堂黄色片 | 日韩午夜电影网 | 黄色在线观看免费 | 亚洲综合色激情五月 | 永久免费精品视频 | 天天干天天做天天操 | 成人在线免费看视频 | 婷婷色综合色 | 成人免费看电影 | 日本中文字幕在线 | 国产黄色片免费看 | 亚洲精品乱码久久久久久按摩 | 午夜av电影院 | 九九九九热精品免费视频点播观看 | 国产精品久久久久影院 | 中文字幕999 | 久久综合给合久久狠狠色 | 全久久久久久久久久久电影 | 精品视频在线免费观看 | 亚洲天堂网站 | 97超碰在线久草超碰在线观看 | 一区二区三区视频在线 | 久久精品首页 | 亚洲精品小区久久久久久 | 99久久9| 国产成人精品一区在线 | 国产免费作爱视频 | 成人免费在线看片 | 日本三级吹潮在线 | 欧美国产日韩久久 | 久久国产欧美日韩精品 | 天天综合天天综合 | 毛片网免费 | 日韩中文字幕在线看 | 成人资源网| 91手机在线看片 | 亚洲精品日韩在线观看 | 在线成人免费 | 成av人电影 | 国产高清av在线播放 | 麻豆国产露脸在线观看 | 久久精品视频18 | 日日夜夜干 | 99精品福利视频 | 国产精品18毛片一区二区 | 婷婷九月丁香 | 99精品国产在热久久 | 色偷偷网站视频 | 国产黄色精品在线 | 黄色av成人在线观看 | 国产高清不卡在线 | 久久精品欧美一区 | 日本91在线| 久久精品免费电影 | 99久久精品国产一区二区三区 | 久草亚洲视频 | 日韩黄色软件 | 丁香电影小说免费视频观看 | 国产专区视频 | 亚洲精品www久久久久久 | 国产成人精品av在线观 | 免费成人av网站 | 四虎在线影视 | 成人黄色在线观看视频 | 精品免费一区 | 久久99亚洲精品久久 | 国产精品亚洲片在线播放 | 一区二区日韩av | 久久精品女人毛片国产 | 久久69av| 日韩高清在线一区二区三区 | 久久99精品久久久久久久久久久久 | 日本久久中文 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲视频,欧洲视频 | 亚洲美女在线一区 | av网站免费看 | 中文字幕亚洲综合久久五月天色无吗'' | 色综合久久综合 | 久久久国产日韩 | 在线观看视频色 | 久久精品视频免费 | 操操操干干干 | 韩国av一区二区三区在线观看 | 亚洲精品国精品久久99热 | 欧美成人精品欧美一级乱黄 | 四虎国产精品成人免费影视 | 成人理论在线观看 | 久草视频2| 日韩精品中文字幕在线观看 | 久久高清国产 | 涩涩网站在线看 | 九九视频这里只有精品 | 日韩av中文字幕在线 | 349k.cc看片app | 国产高清精 | 天天插天天干 | 在线精品观看 | 天天色天| 波多野结衣动态图 | 久久视频国产精品免费视频在线 | 伊人导航| 色在线免费 | 在线视频app | 国产手机在线 | 激情婷婷在线观看 | 99热超碰在线 | av免费看av| 成人网在线免费视频 | 精品国产乱码一区二区三区在线 | 国产一区欧美二区 | 精品久久久久国产 | 免费看网站在线 | 国产精品18久久久久白浆 | 字幕网资源站中文字幕 | 亚洲91中文字幕无线码三区 | 久久免费的精品国产v∧ | 高清av网 | 一区二区三区久久精品 | 久草观看| 麻豆视频免费看 | 国产精品免费视频久久久 | 热久久99这里有精品 | 久热国产视频 | 国产中文字幕视频在线观看 | 国产高清不卡一区二区三区 | 亚洲精品动漫在线 | 欧美a级在线免费观看 | 久久综合久久综合这里只有精品 | 国产又粗又猛又黄又爽视频 | 色中色亚洲 | 日韩av片免费在线观看 | 午夜丁香视频在线观看 | 超碰在线亚洲 | 美国av片在线观看 | 国产福利一区二区在线 | 精品久久九九 | 中文字幕在线观看完整版电影 | 日韩欧美在线观看一区二区 | 国产一区二区在线影院 | 日韩高清黄色 | 日韩久久久久久久久久久久 | 97精品超碰一区二区三区 | 久久久久成人精品免费播放动漫 | 国产精品麻豆视频 | 天天综合网在线 | 国产手机av | 亚洲精品在线视频网站 | 国内揄拍国内精品 | 久久人人干 | 久久综合操 | 波多野结衣一区三区 | 在线看一区 | 狠狠狠色丁香婷婷综合激情 | 久久激情视频 久久 | 久久综合九色欧美综合狠狠 | 黄色大片中国 | 色噜噜噜| 天天av综合网 | 一区二区三区在线看 | 激情视频在线观看网址 | 国产精品激情偷乱一区二区∴ | 亚洲成人免费 | 久久综合毛片 | 欧美午夜精品久久久久久孕妇 | 韩国精品福利一区二区三区 | 四虎国产精品免费观看视频优播 | 在线免费av电影 | 99电影456麻豆 | 亚洲精品国产日韩 | 国内丰满少妇猛烈精品播放 | 国产精品久久久久久婷婷天堂 | 欧美成人999 | 四虎成人精品在永久免费 | 中文字幕久久亚洲 | 免费高清在线一区 | 国产手机在线播放 | 欧美另类高清 videos | 久久综合五月天婷婷伊人 | 免费在线日韩 | 夜夜躁狠狠燥 | 天天干,天天操,天天射 | 91视频免费网址 | 又黄又爽免费视频 | 黄色一二级片 | 国产精品亚州 | 日韩视频欧美视频 | avav99 | 国产精品淫 | 18久久久| 国产精品第一视频 | 黄色在线视频网址 | 亚洲午夜在线视频 | 黄色的视频 | 国产成人精品一区二区三区福利 | av视屏在线播放 | 蜜桃视频精品 | 日韩视频一区二区在线 | 99久久久久久久 | 一级黄色在线免费观看 | 在线看国产视频 | 91在线看黄 | av中文字幕网站 | 黄色片网站 | 久久精品这里都是精品 | 日韩av午夜在线观看 | 天天爱综合 | 久久6精品| 在线观看国产91 | 久精品视频免费观看2 | 人人爽人人香蕉 | 欧美一区二区在线看 | 就操操久久 | 啪啪凸凸 | 国产1级毛片 | 2024av| av在线免费播放 | 网址你懂的在线观看 | 97视频在线观看播放 | 国产免费一区二区三区最新 | 中文字幕在线免费观看 | 91丨九色丨高潮 | www国产亚洲 | 欧美日韩成人 | 日本动漫做毛片一区二区 | 色综合久久五月 | 亚洲免费小视频 | 中文字幕日韩高清 | 久久精品视频在线看 | 国产一二三区av | 久久久久久久久久久久久久电影 | 国产探花视频在线播放 | a黄色| 在线观看日韩精品视频 | 精品国产一区二区三区蜜臀 | 综合激情久久 | 成人av片免费观看app下载 | 久久欧美视频 | 操夜夜操| 国产高清在线不卡 | 日韩欧美高清在线 | 三级在线视频观看 | 亚洲伊人婷婷 | 欧美五月婷婷 | 成年人黄色在线观看 | 97热久久免费频精品99 | 国产精品爽爽久久久久久蜜臀 | 92国产精品久久久久首页 | 天堂在线视频中文网 | 国产精品一区免费观看 | 五月天综合色 | 91av免费观看 | 日韩两性视频 | 国产香蕉久久精品综合网 | 国产区精品在线观看 | 国产九九精品视频 | 国产一区二区三区视频在线 | 欧美精品免费在线观看 | 色射色 | 五月天.com| 国产精品久久久久久久久久免费看 | 国产91精品高清一区二区三区 | 免费看av片网站 | 久久久久成人精品免费播放动漫 | 欧洲在线免费视频 | 欧美极品一区二区三区 | 欧美资源在线观看 | 欧美日韩国产综合一区二区 | 国产精品久久久久久模特 | 在线看av的网址 | 亚洲精品美女久久久久 | 天天干天天做天天爱 | 日本福利视频在线 | 在线国产精品视频 | 亚洲视频免费在线看 | 超碰国产在线播放 | 精品国产免费久久 | 97成人免费视频 | 天天做天天干 | 国产亚洲一级高清 | 色视频在线 | 国产黄a三级三级 | japanesexxxhd奶水| 国产又粗又猛又黄又爽的视频 | 免费久草视频 | 天天爱天天射 | 日韩一区二区三区免费视频 | 亚洲少妇影院 | 国产精品男女视频 | 日韩字幕 | 天天操天天摸天天干 | 久久综合综合久久综合 | 国产精成人品免费观看 | 国产美女精品视频免费观看 | 色av男人的天堂免费在线 | 99久久夜色精品国产亚洲96 | 久久久久亚洲精品 | 国产一级二级三级视频 | 亚洲国产色一区 | 亚洲激情视频在线观看 | 亚洲精品中文在线 | 狠狠gao| 日本三级不卡 | 91污污视频在线观看 | 天天天天射 | 一区二区三区高清在线观看 | 狠狠操狠狠干天天操 | 欧美aaa大片| 国产亲近乱来精品 | 男女全黄一级一级高潮免费看 | 日韩天天操 | 最近中文字幕完整视频高清1 | 狠狠色丁香| 国产免费黄色 | 国内精品久久久 | 亚洲第一香蕉视频 | 五月婷综合网 | 久久人人爽人人片av | 黄a在线| 8x成人免费视频 | 日韩欧美高清在线观看 | 亚洲精品资源在线观看 | 亚洲毛片久久 | 96精品视频 | 精品专区一区二区 | 色综合网在线 | 狠狠ri| 91高清免费在线观看 | 欧美激情精品久久久久久变态 | 日韩黄视频 | 成人黄色大片在线免费观看 | 尤物97国产精品久久精品国产 | 国产偷国产偷亚洲清高 | 在线观看视频色 | 久二影院| 人人插人人澡 | 欧美黑人性猛交 | 日韩精品久久久久 | 国产一区二区久久久久 | 免费三级影片 | 欧美成年人在线视频 | 国产欧美日韩一区 | 亚洲精品视频网址 | 精品美女在线观看 | 日韩网站在线播放 | 免费久久久久久久 | 一二三区在线 | av三级在线播放 | 香蕉在线视频观看 | 99精品视频在线观看播放 | 97电影网手机版 | 在线观看国产 | 人人爽久久涩噜噜噜网站 | 亚洲综合色丁香婷婷六月图片 | 欧美日韩性 | 国产精品伦一区二区三区视频 | 91热这里只有精品 | 人人玩人人爽 | 九九九热 | 亚洲精品福利视频 | 天天操天 | av三级在线免费观看 | 精品产品国产在线不卡 | 久久99最新地址 | 久久久久久综合网天天 | 91激情视频在线 | 五月天堂网 | 男女激情免费网站 | 亚洲欧美国内爽妇网 | 色综合中文综合网 | 狠狠色狠狠综合久久 | 亚洲天天在线日亚洲洲精 | 亚洲乱码国产乱码精品天美传媒 | 欧美日韩高清不卡 | 在线观看www.| 国产99久久九九精品免费 | 免费av网址在线观看 | 一区二区三区免费在线播放 | 国产小视频在线看 | 国产午夜一级毛片 | 成年美女黄网站色大片免费看 | 国产精品伦一区二区三区视频 | 免费在线观看成人小视频 | 亚洲精品久久久久中文字幕二区 | 国产xxxx做受性欧美88 | 黄色一及电影 | 激情av综合 | 亚洲日韩精品欧美一区二区 | 国产精品久久久久久久久久久不卡 | 在线观看视频中文字幕 | 日批视频 | 亚洲九九精品 | 国产小视频在线看 | 国产婷婷vvvv激情久 | 天天综合入口 | 97超级碰碰碰视频在线观看 | 免费a v观看| 欧美日韩xxxxx | 99久高清在线观看视频99精品热在线观看视频 | 亚洲激情综合 | 国产精品不卡 | 人人澡av | 国产精品淫 | 99在线热播精品免费 | 久久久国产精华液 | 日韩xxxxxxxxx| 激情喷水| 国产精品免费麻豆入口 | 国产中文字幕视频在线观看 | 一区二区国产精品 | 视频在线观看99 | 国内丰满少妇猛烈精品播 | 婷婷久久综合网 | 九九久久影视 | 国产视频一区二区在线播放 | 天天插天天干 | 亚洲欧美视频在线播放 | 色诱亚洲精品久久久久久 | 国产麻豆视频免费观看 | 精品久久片 | 国产成人福利在线 | 99久久精品免费看国产 | 亚洲 欧美 综合 在线 精品 | 激情视频网页 | 91黄色在线看 | 三级黄色在线 | 欧美日本不卡视频 | 国产一区久久久 | 国产不卡视频在线 | 国产精品11 | 久久精品99精品国产香蕉 | 婷婷久久国产 | 欧美91成人网 | 国产精品ⅴa有声小说 | 91影视成人 | 欧美另类性| 国产99久久久国产精品成人免费 | 日本三级久久久 | 久久久久综合 | 亚洲伦理精品 | 久久国产精品久久久 | 免费成人在线网站 | 久久精品123| 一级黄色免费 | 色婷婷狠狠五月综合天色拍 | 亚洲高清视频在线 | 亚洲黄网站| 91超碰免费在线 | 久久国产欧美日韩 | 亚洲精品视频一二三 | 黄色资源在线 | 亚洲第一香蕉视频 | 久久爽久久爽久久av东京爽 | 久久精品国产免费看久久精品 | 亚洲精品成人在线 | 国产精品久久久久久av | 99久久精品免费看国产一区二区三区 | 超碰在线观看99 | 日本黄色免费在线观看 | 9999精品视频 | 制服丝袜一区二区 | 国产91探花 | 日韩一区在线播放 | 69欧美视频 | adn—256中文在线观看 | 精品一区二区三区久久久 | 特级西西444www大精品视频免费看 | 婷婷在线五月 | 黄网站app在线观看免费视频 | 国产欧美精品一区二区三区四区 | 日本九九视频 | 国产一区在线视频播放 | 欧美另类高潮 | 午夜精品一二区 | 麻豆传媒视频在线免费观看 | 夜又临在线观看 | 99久久99久久免费精品蜜臀 | 国产日韩三级 | 亚洲视频精品 | 丁香花中文字幕 | 国产激情电影综合在线看 | 亚洲va欧美va人人爽 | 麻豆久久一区 | 久久视频免费在线观看 | 国产手机视频 | 国产剧情一区二区在线观看 | 日韩在线观看中文字幕 | 久久综合中文字幕 | 免费日韩一区 | 500部大龄熟乱视频使用方法 | 中文字幕4| 日本久久久久久久久久久 | 天天拍夜夜拍 | 亚洲无吗av | 亚洲精品播放 | 日日夜夜免费精品视频 | 久久久精品国产免费观看一区二区 | 91视频免费看 | 久久精品欧美一区二区三区麻豆 | 国产成人精品一区一区一区 | 欧美大片在线看免费观看 | 中文字幕在线播放av | 在线成人免费 | 国产精品福利一区 | 五月天婷婷在线视频 | 在线亚洲成人 | 中文有码在线视频 | 欧美激情第28页 | 国际精品久久久久 | 国产精品久久在线 | 久久人91精品久久久久久不卡 | 久久久久综合网 | 欧美日韩国产在线精品 | 欧美另类调教 | 国产精品99久久免费黑人 | 黄色小网站在线观看 | 在线观看日本高清mv视频 | av看片在线 | 久久人人97超碰com | 国产精品久久久久久五月尺 | 精品麻豆| 五月婷婷亚洲 | 99久久精品网 | 久久激情电影 | 国产视频一区二区在线播放 | 特片网久久 | 在线激情影院一区 | 色婷婷国产精品一区在线观看 | 久久永久免费视频 | 手机av网站 | 狠狠色噜噜狠狠 | 精品国产91亚洲一区二区三区www | 国产特级毛片aaaaaa毛片 | 麻豆视频一区 | 黄色av一级 | www.色五月 | 色97在线 | 国产视频在线看 | 五月天欧美精品 | 在线精品观看 | 欧美二区三区91 | av一级片网站 | 69国产盗摄一区二区三区五区 | 在线综合 亚洲 欧美在线视频 | 51久久夜色精品国产麻豆 | 精品成人免费 | 亚洲国产欧美在线看片xxoo | 日韩特黄一级欧美毛片特黄 | 九九热免费在线观看 | 婷婷夜夜 | 久久综合九色综合欧美狠狠 | 91成人短视频在线观看 | 国产一区二区在线免费播放 | 亚洲午夜小视频 | 四虎永久免费在线观看 | 一本一本久久a久久 | 欧美日在线观看 | 五月情婷婷| 天天爱av导航 | 国产精品久久久久永久免费 | 日韩欧美一区二区三区视频 | 高清国产在线一区 | 久久精品中文视频 | 免费一区在线 | 99精品久久久久久久久久综合 | 久久天堂影院 | 99在线观看免费视频精品观看 | 欧美色综合久久 | 亚洲精品在线播放视频 | 久久久高清免费视频 | 麻豆 91 在线 | 亚洲精品国产精品国自产 | 六月婷操 | 免费99视频 | 久久久久久久久久久综合 | 青草视频在线免费 | 免费观看性生活大片3 | 日韩一区正在播放 | 一色av| 久久婷婷一区二区三区 | 一级电影免费在线观看 | 91精品国产乱码久久桃 | 国产精品爽爽久久久久久蜜臀 | 激情综合色图 | 欧美激情综合色综合啪啪五月 | 国产成人一区三区 | 成人在线免费小视频 | 丁香久久五月 | 激情欧美日韩一区二区 | 国产美女免费观看 | 人人草天天草 | 深爱婷婷网| 国产麻豆果冻传媒在线观看 | 国产小视频在线 | 欧美精品三级在线观看 | 亚洲综合视频在线 | 欧美精品久久久久久久久老牛影院 | 91刺激视频 | 色综合激情久久 | 国产精品福利在线播放 | 婷婷精品 | 在线视频一区观看 | 在线小视频你懂的 | 久久久久久久久久久网站 | 一级a性色生活片久久毛片波多野 | 亚洲一级黄色av | 久久免费视频2 | 九九综合九九综合 | 91久久久久久久一区二区 | 午夜av一区 | 亚洲国产成人精品电影在线观看 | 日本一区二区三区视频在线播放 | 精品国产1区二区 | 激情综合亚洲 | 亚洲精品在线观看网站 | 久久久久久国产精品999 | 国产免费不卡 | 亚洲一区二区视频在线播放 | 亚洲九九精品 | av成人免费在线观看 | 91精品国产乱码在线观看 | 国产精彩视频一区二区 | av在线收看 | 婷婷五月色综合 | 99久久日韩精品视频免费在线观看 | 日批网站免费观看 | 99久热精品| 日韩艹 | 亚洲专区欧美专区 | 中文一区在线观看 | 深夜免费福利 | 伊人久久精品久久亚洲一区 | 丁香婷婷射 | 亚洲精品美女久久久久 | 成人综合婷婷国产精品久久免费 | 午夜av一区| 爱色av.com| 亚洲精品久久久久58 | 亚洲精品xx | 国产亚洲激情视频在线 | 91热精品| 天海翼一区二区三区免费 | 国产一线二线三线性视频 | 日韩一二区在线观看 | 91一区二区三区久久久久国产乱 | 亚洲精品视频在线观看免费视频 | 天天插夜夜操 | 丁香视频| 成人免费在线网 | 91色九色 | www.成人精品 | 久久97超碰 | 亚洲性xxxx | 免费看久久久 | 亚洲精品免费观看视频 | 在线观看亚洲成人 | 性色在线视频 | 黄色aaaaa| 中文字幕亚洲欧美日韩 | 午夜av大片 | 91爱爱免费观看 | 婷色在线 | 欧美性超爽 | 天天干一干 | 一区二区三区电影在线播 | 日韩丝袜视频 | 久久精品国产成人精品 | 日本韩国精品一区二区在线观看 | 美女黄频视频大全 | 国产精品久久久久久久午夜片 | 欧美激情第十页 | 91视频啊啊啊 | 亚洲精品在线观看的 | 丁香资源影视免费观看 | 久久综合九色综合欧美狠狠 | 国产999精品久久久久久麻豆 | 一级理论片在线观看 | 免费在线国产 | 日韩欧美一级二级 | 99精品视频免费看 | 免费无遮挡动漫网站 | 91pony九色丨交换 | 欧美日视频 | 91福利视频免费观看 | 国产96在线视频 | 91超级碰 | 色午夜影院 | 在线观看黄色小视频 | 91在线一区 | 91久久精品一区二区三区 | 中文字幕一区av | 伊人热| www亚洲国产| 亚洲精品免费观看 | 高清av网 | 视频99爱 | 日本中文字幕免费观看 | 最新中文在线视频 | 免费精品人在线二线三线 | 国产精品美女在线观看 | 国产精品孕妇 | 字幕网在线观看 | 免费av网址大全 | 国产一二三区在线观看 | 99视频在线观看一区三区 | 国产精品一区久久久久 | 99国产精品视频免费观看一公开 | 天堂av高清 | 91麻豆.com | 亚州视频在线 | 国产在线播放观看 | 一区二区三区中文字幕在线观看 | 久久视频在线观看中文字幕 | 精品日韩在线一区 | 国产视频精选在线 | 五月婷婷影视 | 亚洲黄色片一级 | 色片网站在线观看 | 日本在线h| 成人黄大片 | 国产色中涩 | 日韩在线网址 | 在线免费观看av网站 | 69精品在线 | 九色91在线视频 | 99久高清在线观看视频99精品热在线观看视频 | 欧美最猛性xxxxx亚洲精品 | av韩国在线 | 亚洲成人黄色av | 麻豆91精品视频 | aav在线 | 日本性高潮视频 | 久久理论电影 | 韩国精品福利一区二区三区 | 91中文字幕在线视频 | 色香网| 日本在线观看中文字幕无线观看 | 国产成人免费网站 | 中国一级片在线观看 | 精品国产综合区久久久久久 | 久久在线免费视频 | 精品美女在线观看 | 天天艹天天操 | 999ZYZ玖玖资源站永久 | 国产日韩精品在线观看 | 国产字幕在线观看 | 九九久久国产 | 干狠狠| 日本99干网 | 91看片在线看片 | 欧美国产高清 | 91中文字幕 | 久草在线99 | 三级免费黄色 | 久久久免费 | 日韩一二区在线观看 | 色婷婷免费视频 | 国产一级二级在线 | 国产精品免费看 | 久久综合狠狠综合 | 国产精品igao视频网网址 | 中文字幕 国产视频 | 久久久国产精品久久久 | 91传媒在线播放 | 久久精品艹 | 超碰成人av| 深爱开心激情 | 国内精品久久久久久久 | 999久久| 国产精品99久久久久久久久 | 国产精品美女视频 | 国产在线一线 | 中文字幕一区二区三区四区在线视频 | 国产精品午夜免费福利视频 | 国产69久久精品成人看 | 91在线观看黄 | 日本久久影视 | 丁香五月缴情综合网 | 欧美色图亚洲图片 | 婷婷激情5月天 | 成人日批视频 | 碰超人人 | 500部大龄熟乱视频 欧美日本三级 | 一区二区三区 中文字幕 | wwwwww黄| 91网址在线看 | 激情综合网在线观看 | 手机av在线网站 | 日韩免费精品 | 黄色av成人在线 | 色综合久久综合中文综合网 | 成人久久久久久久久久 | 国产区精品 | 日韩91在线| 在线播放国产精品 | 日韩天堂在线观看 | 天天操天天舔天天干 | 久久久久国产精品一区二区 | 97激情影院| 国际精品久久 | 激情综合五月网 | 久草视频在线观 | 国产精品国产三级国产aⅴ入口 | 成人h视频在线播放 | 99热最新 | 色综合久久久久久中文网 | 天天色天天综合 | 亚洲综合在线观看视频 | 人人舔人人舔 | 久久99精品久久久久蜜臀 | 色婷婷亚洲婷婷 | 婷婷久操 | 亚洲精品国产精品乱码在线观看 | 国产小视频福利在线 | 久草视频在线免费播放 | 在线亚洲免费视频 | 国产精品毛片一区二区在线 | 在线视频一区二区 | 81国产精品久久久久久久久久 | 8x成人免费视频 | 不卡电影一区二区三区 | 欧美 激情在线 | 欧美天天干 |