精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Cortex-A9 LED匯編、C語言驅動編寫

系統
一般我們購買一個開發板,廠家都會給出對應的電路圖文件,我們可以通過搜索對應名稱來查找到對應的外設。對于驅動工程師來說,我們只需要知道外設與SOC交互的一些數據線和信號線即可。

 [[359298]]

 0. 前言

一般我們購買一個開發板,廠家都會給出對應的電路圖文件,我們可以通過搜索對應名稱來查找到對應的外設。對于驅動工程師來說,我們只需要知道外設與SOC交互的一些數據線和信號線即可。

用主控芯片控制這些外設的一般步驟:

  1. 看電路原理圖,弄明白主控芯片和外設是怎么連接的,對于驅動工程師來說,主要是看外設的一些clk、數據引腳、控制引腳是如何連接的;
  2. 外設一般都會連接到SOC的1個或者多個控制器上,比如i2c、spi、gpio等,有的是數據線有的是信號線,中斷線等;
  3. 根據電路連接和需求對主控芯片進行設置,往往對外設的設置都是通過寄存器操作實現;
  4. 書寫相應代碼,實現功能,不同類型的外設,代碼結構也不盡相同,比如按鍵,我們既可以通過輪詢方式讀取按鍵信息,也可以通過中斷方式來讀取。

下面我們就以華清遠見的fs4412開發板為例來看如何編寫led的裸機程序。SOC exynos 4412 datahseet 下載地址:

https://download.csdn.net/download/daocaokafei/12533438

一、LED燈電路圖

首先看下led電路圖:

 

LED電路圖

  1. 該板子有4個LED,是發光二極管,有電流是為藍色;
  2. led都接了上拉電阻;
  3. 三極管的基極接了SOC的某個GPIO引腳;
  4. 比如GPX1_0,當該引腳為高電平是,三極管pn結導通,于是LED3兩側就有了電勢差,LED3被點亮,如果該引腳為低電平,pn結截止,LED3兩側就沒有了電勢差,LED3熄滅。

下面是CPU核訪問GPIO控制器的數據通路:

AHB:高速總線

APB Bridge:APB總線橋

APB:外設總線,低速總線

GPIO掛載在APB總線上

GPIO 與 SOC

由上圖可知,cpu要訪問GPIO的寄存器需要經過的路徑。

二、GPIO

GPIO(General Purpose I/O Ports)意思為通用輸入/輸出端口,通俗地說,就是一些引腳,可以通過它們輸出高低電平或者通過它們讀入引腳的狀態-是高電平或是低電平。

用戶可以通過GPIO口和硬件進行數據交互(如UART),控制硬件工作(如LED、蜂鳴器等),讀取硬件的工作狀態信號(如中斷信號)等。GPIO口的使用非常廣泛。

1. GPIO的優點

  • 低功耗:GPIO具有更低的功率損耗(大約1µA,µC的工作電流則為100µA)。
  • 集成I²C從機接口:GPIO內置I²C從機接口,即使在待機模式下也能夠全速工作。
  • 小封裝:GPIO器件提供最小的封裝尺寸—3mm x 3mm QFN!
  • 低成本:您不用為沒有使用的功能買單!
  • 快速上市:不需要編寫額外的代碼、文檔,不需要任何維護工作!
  • 靈活的燈光控制:內置多路高分辨率的PWM輸出。
  • 可預先確定響應時間:縮短或確定外部事件與中斷之間的響應時間。
  • 更好的燈光效果:匹配的電流輸出確保均勻的顯示亮度。
  • 布線簡單:僅需使用2條I²C總線或3條SPI總線。

2. exynos4412 GPIO特性

  1. 172 個外部中斷
  2. 32個外部可喚醒中斷
  3. 252個多功能 input/output ports
  4. 在休眠模式下也可以控制GPIO引腳,但不包括 GPX0, GPX1, GPX2, and GPX3

3. 6 General Purpose Input/Output (GPIO) Control

Exynos 4412 SCP 包括304個多功能 input/output端口引腳和164 存儲端口引腳. 總共 37 個端口分組和兩個存儲端口分組.。

下圖為GPIO模塊圖:

GPIO Block Diagram

三、如何操作GPIO?

主要通過寄存器來操作GPIO引腳。

GPxCON用于選擇引腳功能,GPxDAT用于讀/寫引腳數據;另外,GPxUP用于確定是否使用內部上拉電阻。其中x為A、B…..H、J等。

1. GPxCON寄存器

從寄存器的名字可以看出,它用于配置(Configure)-選擇引腳功能。

LED3是連接到GPX1_0,該引腳說明如下:

GPX1CON

由上圖所示,

GPX1CON地址為0x1100C20;

LED3是輸出設備,所以需要將GPX1CON[3:0]設置為0x1,但是能修改其他的bite。

2. GPxDAT寄存器

GPxDAT用于讀/寫引腳;當引腳被設為輸入時,讀此寄存器可知相應引腳的電平狀態是高還是低;當引腳被設為輸出時,寫此寄存器相應位可以令此引腳輸出高電平或是低電平。

GPX1DAT

  1. GPX1DAT的地址是0x1100C24
  2. LED3對應的輸出引腳是GPX1DAT[0],點燈只需要將該引腳設置為1即可,滅燈將bite0置0。

3. GPxUP寄存器

GPxUP:某位為1時,相應引腳無內部上拉電阻;為0時,相應引腳使用內部上拉電阻。

上拉電阻的作用在于:當GPIO引腳處于第三態(即不是輸出高電平,也不是輸出低電平,而是呈高阻態,即相當于沒接芯片)時,它的電平狀態由上拉電阻、下拉電阻確定。

本例不用設置。

四、驅動編寫

下面我們分別用匯編和C語言來給LED編寫驅動程序。

1. 匯編代碼

大家如果掌握了我之前講解的匯編指令的知識點,那么這個代碼很容易就能看明白:

  1. .globl _start 
  2. .arm 
  3. _start: 
  4.  LDR R0,=0x11000C20 @將配置寄存器GPX1CON的地址寫入到R0 
  5.  LDR R1,[R0]  @讀取寄存器GPX1CON的值保存到R1 
  6.  BIC R1,R1,#0x0000000f @將R1的3:0位清0,目的是不覆蓋到其他bit的值 
  7.  ORR R1,R1,#0x00000001 @將R1的3:0位置1 
  8.  STR R1,[R0]  @將R1的值寫回寄存器GPX1CON 
  9. loop: 
  10.  LDR R0,=0x11000C24 @將data寄存器GPX1DAT的地址寫入到R0 
  11.  LDR R1,[R0] @讀取寄存器GPX1DAT的值保存到R1 
  12.  ORR R1,R1,#0x01 @將R1的值bite0 設置為1,即拉高,點燈 
  13.  STR R1,[R0]  @將R1的值寫回寄存器GPX1DAT 
  14.  BL delay  @調用延時函數 
  15.  LDR R1,[R0]  
  16.  BIC R1,R1,#0x01 @將R1的值bite0 設置為0,即拉低,滅燈 
  17.  STR R1,[R0] 
  18.  BL delay 
  19.  B loop 
  20. delay:     @delay延時函數 
  21.  LDR R2,=0xfffffff 
  22. loop1: 
  23.  SUB R2,R2,#0x1 
  24.  CMP R2,#0x0 
  25.  BNE loop1 
  26.  MOV PC,LR @返回 
  27. .end  

Makefile

  1. TARGET=gcd 
  2. all
  3.  arm-none-linux-gnueabi-gcc -O0 -g -c -o $(TARGET).o $(TARGET).s 
  4.  arm-none-linux-gnueabi-ld   $(TARGET).o -Ttext 0x40008000 -N -o $(TARGET).elf 
  5.  arm-none-linux-gnueabi-objcopy -O binary -S $(TARGET).elf $(TARGET).bin 
  6. clean: 
  7.  rm -rf *.o *.elf *.dis *.bin 

程序功能很簡單,就是讓LED3呈現一閃一閃的效果。

執行make,最終生成的gcd.bin文件。

2. c語言實現

如果要進入C語言執行環境,那么就必須為設置棧空間,函數調用參數和返回值會壓棧。

start.s

  1. .text 
  2. .global _start 
  3. _start: 
  4.   ldr  sp,=0x70000000         /*get stack top pointer*/ 
  5.   b  main 

main.c

  1. /* GPX1 */ 
  2. typedef struct { 
  3.     unsigned int CON; 
  4.     unsigned int DAT; 
  5.     unsigned int PUD; 
  6.     unsigned int DRV; 
  7. }gpx1; 
  8. #define GPX1 (* (volatile gpx1 *)0x11000C20 ) 
  9.  
  10. void led_init(void) 
  11.  GPX1.CON = GPX1.CON & (~(0x0000000f)) | 0x00000001; 
  12. void led_on(int n) 
  13. {  
  14.  GPX1.DAT = GPX1.DAT|0x01; 
  15. void led_off() 
  16. {  
  17.  GPX1.DAT = GPX1.DAT&(~(0x01));   
  18. void  delay_ms(unsigned int num) 
  19. {   int i,j; 
  20.      for(i=num; i>0;i--) 
  21.       for(j=1000;j>0;j--) 
  22.          ; 
  23.  } 
  24. int main(void) 
  25.  led_init (); 
  26.  while (1) { 
  27.   led_on(); 
  28.   delay_ms(500); 
  29.   led_off(); 
  30.   delay_ms(500); 
  31.  } 
  32.  while(1); 
  33.     return 0; 
  34. }    

map.lds

  1. OUTPUT_FORMAT("elf32-littlearm""elf32-littlearm""elf32-littlearm"
  2. OUTPUT_ARCH(arm) 
  3. ENTRY(_start) 
  4. SECTIONS 
  5.  . = 0x40008000;     ;從該地址開始 
  6.  . = ALIGN(4); 
  7.  .text      :       ;指定代碼段 
  8.  { 
  9.   gcd.o(.text)  ;代碼的第一個部分,絕對不能錯 
  10.   *(.text) 
  11.  } 
  12.  . = ALIGN(4); 
  13.     .rodata :             ;只讀數據段 
  14.  { *(.rodata) } 
  15.     . = ALIGN(4); 
  16.     .data :              ;讀寫數據段 
  17.  { *(.data) } 
  18.     . = ALIGN(4); 
  19.     .bss :               
  20.      { *(.bss) } 

Makefile

  1. TARGET=gcd 
  2. TARGETC=main 
  3. all
  4.  arm-none-eabi-gcc -O0 -g -c -o $(TARGETC).o  $(TARGETC).c 
  5.  arm-none-eabi-gcc -O0 -g -c -o $(TARGET).o $(TARGET).s 
  6.  arm-none-eabi-gcc -O0 -g -S -o $(TARGETC).s  $(TARGETC).c 
  7.  arm-none-eabi-ld $(TARGETC).o $(TARGET).o -Tmap.lds -o  $(TARGET).elf 
  8.  arm-none-eabi-objcopy -O binary -S $(TARGET).elf $(TARGET).bin  
  9. clean: 
  10.  rm -rf *.o *.elf *.dis *.bin 

執行make命令,最終生成的gcd.bin文件。

這段代碼中,讀者可能不能理解的是下面的定義:

  1. typedef struct { 
  2.     unsigned int CON; 
  3.     unsigned int DAT; 
  4.     unsigned int PUD; 
  5.     unsigned int DRV; 
  6. }gpx1; 
  7. #define GPX1 (* (volatile gpx1 *)0x11000C20 ) 

 

GPX1宏定義

 由上圖所示:

  1. (volatile gpx1 *)0x11000C20 ) :將常量0x11000C20 強轉成struct gpx1類型指針
  2. (* (volatile gpx1 *)0x11000C20 ):查找指針對應的內存驅動,即對應整個結構體變量,結構體變量地址為0x11000C20
  3. #define GPX1 (* (volatile gpx1 *)0x11000C20 ) :GPX1等價于地址為0x11000C20的結構體變量

這樣我們要想操作GPX1的寄存器,就可以像結構體變量一樣操作即可。

3. 測試

采用UBOOT自帶的命令loadb,通過串口以baud速率下載binary(.bin)至SDRAM中某一地址中,然后用go 命令從某地址處開始執行程序。

該命令使用了kermit protocol,嵌入式系統通常使用該協議與pc傳送文件。

操作步驟如下:

  1. 串口連接開發板,開發板啟動后在讀秒階段,立即按下回車,進入uboot命令界面
  2. 執行loadb 40008000 【該地址與Makefile 和map.lds文件中的地址保持一致】
  3. 選擇菜單transfer->send Kermit,
  4. 然后選擇我們編譯好的gcd.bin文件,
  5. 點擊OK,出現"Staring kermit transfer."字樣,
  6. 執行 go 40008000,運行程序

 

運行裸機程序

執行結果:

led

可以看到LED閃爍的現象。

5. 注意

該種測試方法需要bootloader選用uboot,并且需要串口工具支持Kermit協議,一口君使用的是SecureCRT7.3.3版本【其他低一些的版本可能不支持該協議】,該軟件的下載和安裝方法【安裝方法有點繁瑣】可以公眾號后臺回復【SecureCRT】。

SecureCRT版本

 

 

責任編輯:姜華 來源: 一口Linux
相關推薦

2021-01-19 19:32:01

Cortex-A9 R嵌入式系統i2c 外設

2021-01-16 11:40:28

ARM嵌入式開發ADC應用

2021-01-26 06:15:42

Cortex-A9 R嵌入式系統啟動代碼

2020-12-30 15:17:25

Cortex-A9UARTprintf函數

2021-01-06 05:42:42

Cortex-A9 R嵌入式系統 RTC

2021-01-08 12:06:59

WDT定時裝置

2017-01-12 22:36:30

2022-08-10 15:58:54

LED燈鴻蒙

2021-04-21 12:46:19

C語言流水燈匯編

2011-07-20 16:23:14

C++

2011-05-17 14:53:35

C

2010-01-14 10:34:02

C++語言

2021-09-26 10:22:41

鴻蒙HarmonyOS應用

2010-02-03 17:29:06

Python編譯

2011-01-14 14:08:17

Linux匯編語言

2022-03-25 21:57:49

匯編Go語言

2010-01-12 14:16:31

Visual C++語

2023-09-06 15:35:14

2011-01-14 14:39:32

Linux匯編語言

2022-02-16 15:55:21

驅動調用操作系統鴻蒙
點贊
收藏

51CTO技術棧公眾號

美女av一区| 九九在线视频| 亚洲国产激情| 永久免费毛片在线播放不卡| 九九热精品在线播放| av片在线观看网站| 久久久久免费观看| 91久久综合亚洲鲁鲁五月天| 日韩乱码在线观看| 99久久99视频只有精品| 亚洲激情自拍图| 一本一道久久a久久综合蜜桃| 懂色av一区| 国产精品美女久久久久久| 国产精品入口免费| 一本色道久久综合熟妇| 国产精品毛片在线| 精品中文字幕在线| 97在线观看免费视频| 精品无人区一区二区| 在线播放日韩导航| 国产一区亚洲二区三区| 欧美黄色视屏| 中文字幕一区三区| 日本免费高清一区二区| 人妻va精品va欧美va| 狠狠狠色丁香婷婷综合激情| 欧美一级大片视频| 国产精品二区一区二区aⅴ| 久久久综合色| 一区二区三区回区在观看免费视频| 中文字幕一区二区三区人妻在线视频 | 中文字幕一区二区三区波野结| 亚洲激情二区| 九九精品在线视频| 国精产品一区一区二区三区mba| 麻豆精品少妇| 精品卡一卡二卡三卡四在线| 一区二区三区四区五区视频在线观看| 欧美韩国日本精品一区二区三区| 国产综合在线播放| 国产成人日日夜夜| 91天堂在线视频| 亚洲一级视频在线观看| 日本亚洲一区二区| 日韩免费在线看| 丰满人妻老熟妇伦人精品| 一区二区三区国产在线| 国模叶桐国产精品一区| 久久午夜无码鲁丝片| 中文视频一区| 超碰日本道色综合久久综合 | 亚洲影院天堂中文av色| 亚洲精品videossex少妇| 性色av蜜臀av浪潮av老女人| aiss精品大尺度系列| 精品国产伦理网| 成年人小视频在线观看| 蜜桃久久久久| 日韩高清不卡av| 亚洲黄色在线网站| 亚洲综合福利| 一区二区成人av| 中文字幕第69页| 亚洲乱码精品| 欧美高清性猛交| 日本在线视频免费| 香蕉精品999视频一区二区| 欧美一区二区影院| 国产又粗又猛又爽又| 久久综合综合久久综合| 91网站在线免费观看| 亚洲xxx在线| 99re免费视频精品全部| 青娱乐一区二区| 麻豆视频在线免费观看| 一区二区三区国产| 毛片在线视频播放| 日韩高清不卡| 日韩欧美三级在线| 亚洲精品视频大全| 日本电影一区二区| 欧美精品在线第一页| 国产免费一区二区三区| 精品国产免费久久久久久婷婷| 日韩中文一区二区| 日韩av综合网| 99久久久无码国产精品不卡| 欧美精品激情| 国产成人精品av在线| 国产乱码久久久久| 北条麻妃一区二区三区| 日韩性感在线| 日本在线视频www鲁啊鲁| 黑人巨大精品欧美一区二区免费 | 国产一区二区三区av电影| 国产传媒一区二区| caoporn国产精品免费视频| 一区二区三区欧美日| 国产精品333| 激情综合婷婷| 亚洲精品第一页| 午夜三级在线观看| 亚洲专区在线| 97夜夜澡人人双人人人喊| 日产精品久久久久久久性色| 亚洲欧美在线aaa| 日本a级片免费观看| 国产色99精品9i| 亚洲欧美成人精品| 九九热国产在线| 日本视频免费一区| 精品一区二区日本| av网址在线免费观看| 色狠狠综合天天综合综合| 三上悠亚 电影| 精品欧美久久| 欧美亚洲日本网站| 国产福利小视频| 国产精品欧美极品| 精品免费国产一区二区| 粉嫩一区二区三区四区公司1| 色老头一区二区三区在线观看| 日韩av综合在线| 国产一区999| 亚洲电影一二三区| gogo亚洲高清大胆美女人体| 亚洲成av人影院在线观看| 二区三区四区视频| 热久久一区二区| 日韩精品久久一区| 51国产成人精品午夜福中文下载| 国产精品怡红院| 国产精品无人区| 精品久久久久久久免费人妻| 欧美日韩一区二区三区四区不卡 | 国产第一页在线播放| 国产一区二区毛片| 正在播放一区| 国产一区高清| 色噜噜久久综合伊人一本| 国产一级片av| 国产亚洲综合性久久久影院| 中文字幕无码精品亚洲35| 久久av国产紧身裤| 午夜伦理精品一区| 西西人体44www大胆无码| 亚洲一区二区三区视频在线播放| jjzz黄色片| 欧美日本国产| 成人三级在线| 日韩免费影院| 精品久久久久一区| 青青操国产视频| 国产suv精品一区二区三区| 日本免费a视频| 成人福利免费在线观看| 久久久久久国产精品美女| 亚洲精品成av人片天堂无码| 亚洲成人综合在线| 好吊色视频一区二区三区| 亚洲免费精品| 欧美高清性xxxxhdvideosex| 香蕉成人影院| 色婷婷**av毛片一区| 国产精品无码久久av| 亚洲精品国久久99热| 亚洲精品久久一区二区三区777 | 国产精品一国产精品| 国产精品久久久久免费a∨大胸| 欧美日韩影视| 欧美日韩亚洲不卡| 亚洲成人生活片| 成年人午夜久久久| 青青在线免费观看视频| 99久久.com| 国产精品午夜av在线| 亚洲精品一区| 久久国内精品一国内精品| 欧美日韩无遮挡| av午夜在线| 日韩欧美一区二区免费| 人人干人人干人人干| 国产欧美日韩视频一区二区| 色婷婷激情视频| 在线看片欧美| 午夜精品一区二区三区在线观看| 久久亚洲精品人成综合网| 欧美激情18p| 狠狠色伊人亚洲综合网站l| 欧美精品在线观看一区二区| 国产在线视频第一页| 国产三级精品在线| 波多野吉衣在线视频| 日韩精品一二三四| 99er在线视频| 日韩久久视频| 国产欧美日韩在线播放| 成人av集中营| 97视频网站入口| 视频免费一区| 亚洲欧美日韩一区二区三区在线| 国产浮力第一页| 欧日韩精品视频| 日韩三级免费看| 亚洲欧美一区二区三区久本道91| 免费成人蒂法网站| 国产麻豆成人精品| 成年人网站大全| 国产一区日韩一区| 成年人免费观看的视频| 天堂俺去俺来也www久久婷婷 | 久久亚洲精品成人| 久久电影中文字幕| 亚洲国产成人久久综合| 精品国产区一区二| 欧美日韩国产综合久久| 日韩 欧美 综合| 亚洲精品视频在线观看免费| 一级片黄色录像| 91亚洲午夜精品久久久久久| 手机在线免费毛片| 美女网站色91| 亚洲精品高清无码视频| 国产色综合网| 久久人人爽人人爽人人av| 香蕉综合视频| 亚洲乱码国产乱码精品天美传媒| 女厕嘘嘘一区二区在线播放 | 一本一本久久a久久综合精品| 久久手机视频| 国内精品免费| 精品久久久久久久一区二区蜜臀| 国产素人在线观看| 精品久久影视| 人偷久久久久久久偷女厕| 久久这里只有精品一区二区| 成人欧美一区二区三区视频| 亚洲视频国产| 99久久精品免费看国产四区| 国产精品一区二区三区www| 国产在线播放不卡| 四虎国产精品免费久久5151| 国产精品自拍小视频| 男女啪啪999亚洲精品| 国产美女精品免费电影| 69堂免费精品视频在线播放| 国产精品久久久久久久久影视 | 欧美丝袜第一区| 日韩女优在线观看| 欧美日韩综合视频| 亚洲永久精品在线观看| 黑人极品videos精品欧美裸| 亚洲国产成人精品激情在线| 欧美性猛交xxx| 天天干天天操天天爱| 久久在线观看| 国产午夜精品视频免费不卡69堂| 五月天丁香视频| 精品一区二区电影| 国产小视频在线观看| 中文字幕欧美亚洲| 黄色网址在线免费播放| 欧美日产国产成人免费图片| 青春草视频在线| 77777少妇光屁股久久一区| 在线亚洲人成| 国产精品亚洲网站| 精品成人18| 国产一区二区免费电影| 婷婷激情久久| 天堂精品一区二区三区| 亚洲国产精品久久久久蝴蝶传媒| 久操手机在线视频| 欧美一级播放| 国产无色aaa| youjizz国产精品| 国产毛片欧美毛片久久久| 亚洲丝袜美腿综合| 日韩av免费网址| 欧美日韩一区二区在线视频| www.com欧美| 亚洲欧美国产制服动漫| 亚洲视频tv| 国内精品免费午夜毛片| 成人国产一区| 成人xxxxx色| 经典一区二区| 青青草原网站在线观看| 中文久久精品| 午夜剧场在线免费观看| www.久久久久久久久| 黄色激情小视频| 五月婷婷综合网| 97caocao| 亚洲精选在线观看| 97影院秋霞午夜在线观看| 欧美最猛性xxxxx免费| 国产一区 二区| 欧美精品国产精品久久久 | av在线com| 日本系列欧美系列| 免费a v网站| 综合av第一页| 波多野结衣高清在线| 精品国产91久久久久久久妲己| аⅴ资源新版在线天堂| 97久久超碰福利国产精品…| 蜜桃精品一区二区三区| 图片区小说区区亚洲五月| 在线播放日韩| 国产精品999.| 欧美国产视频在线| 精品成人av一区二区在线播放| 欧美一区二区视频观看视频| jizz日韩| 国产精品电影在线观看| 国产日韩三级| 浴室偷拍美女洗澡456在线| 日本亚洲一区二区| 国产手机在线观看| 亚洲444eee在线观看| 国产白浆在线观看| 日韩在线免费视频观看| 偷拍中文亚洲欧美动漫| 麻豆91av| 亚洲一区二区三区免费在线观看 | 一区二区三区日本久久久| 久久这里只有精品18| 国产一区二区视频在线| 日韩一区二区三区四区视频| 91国产精品成人| 久蕉在线视频| 日本成熟性欧美| 香蕉久久夜色精品国产更新时间| 亚洲 欧美 综合 另类 中字| 国产成人自拍高清视频在线免费播放| 亚洲欧美另类日本| 欧美日韩另类一区| 欧美三级理伦电影| 国产在线精品播放| 国产精品久久天天影视| 中文字幕第38页| **欧美大码日韩| 国产三级在线观看视频| 久久综合久久美利坚合众国| 二区三区精品| 99热这里只有精品免费| 成人永久免费视频| 日本一级淫片色费放| 亚洲国产精彩中文乱码av| 一级做a爱片性色毛片| 成人做爰69片免费看网站| 9999热视频| 欧美不卡视频一区| 7777kkk亚洲综合欧美网站| 国产综合 伊人色| 美女黄网久久| 亚欧精品视频一区二区三区| 欧美日韩1区2区| а√天堂在线官网| 国产精品xxxx| 性欧美长视频| 夫妇露脸对白88av| 欧美一二三在线| 阿v视频在线| 日韩高清国产精品| 国产又黄又大久久| 国产一级生活片| 亚洲色图13p| 只有精品亚洲| 18黄暴禁片在线观看| 久久人人97超碰com| 97成人在线观看| 久久久久亚洲精品| 久久av中文| 超碰中文字幕在线观看| 精品久久久在线观看| 国产小视频免费在线网址| 91视频免费在线| 一本综合精品| 亚洲精品国产精品乱码在线观看| 日韩你懂的在线播放| 国产精品迅雷| 日韩精品一区二区三区电影| 99re66热这里只有精品3直播| 超碰在线观看91| 欧美精品一本久久男人的天堂| 台湾亚洲精品一区二区tv| 中文字幕亚洲影院| 欧美日韩亚洲一区二| 免费网站成人| 久久久久久精| 国产伦精品一区二区三区免费 | 亚洲理论在线| xxxxx99| 亚洲国产另类 国产精品国产免费| 台湾成人免费视频| www.av片| 亚洲欧美一区二区三区久本道91|