精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

中国1级黄色片| 国产成人在线网站| 综合婷婷亚洲小说| 91视频8mav| 日本熟妇毛耸耸xxxxxx| 自拍偷拍一区| 欧美美女直播网站| 国产精品69久久久| 国产视频福利在线| 国产剧情一区在线| 538国产精品一区二区在线| 蜜桃久久精品成人无码av| 国产成人免费av一区二区午夜 | 老司机精品免费视频| 久久久久久久久久久久电影| 五月天激情综合| 秋霞毛片久久久久久久久| 99久久一区二区| 性娇小13――14欧美| 久久的精品视频| 国产精品300页| 国产精品色婷婷在线观看| 色综合久久综合| av日韩在线看| 免费在线看a| 2023国产一二三区日本精品2022| 91手机视频在线观看| 中文字幕免费在线观看视频| 欧美激情五月| 精品久久久999| 谁有免费的黄色网址| 亚洲精品影片| 777欧美精品| 亚洲人成无码www久久久| 好吊日av在线| 亚洲精品中文在线| 亚洲一区二区三区午夜| 久久这里精品| 久久久天堂av| 欧美成人综合一区| 少妇人妻偷人精品一区二区| 国产一区91精品张津瑜| 国产精品私拍pans大尺度在线 | 欧美男男青年gay1069videost| 91av资源网| xxxcom在线观看| 一区二区三区日韩精品视频| 中文字幕av导航| 午夜精品一区| 中文字幕的久久| 日本一区二区三区视频免费看| 欧美精品久久久久久久久久丰满| 不卡av在线免费观看| 91精品入口蜜桃| 国产99久久九九精品无码免费| 精品中文av资源站在线观看| 成人淫片在线看| 97久久人国产精品婷婷| 美女网站一区二区| 国产欧美欧洲在线观看| 在线观看av大片| 久久国产麻豆精品| 国产欧美日韩免费看aⅴ视频| 艳妇乳肉豪妇荡乳av无码福利| 石原莉奈一区二区三区在线观看| 亚州国产精品久久久| 日韩乱码在线观看| 米奇777在线欧美播放| 日本一区二区三区在线播放| 99re热视频| 美女一区二区视频| 亚洲aa在线观看| 囯产精品久久久久久| www.亚洲激情.com| 免费观看国产成人| 浮生影视网在线观看免费| 国产精品久久久久久久午夜片| 在线精品日韩| segui88久久综合| 精品久久久久久中文字幕| 99色精品视频| 美女视频一区| 日韩片之四级片| 性久久久久久久久久久| 一区二区高清不卡| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 性做久久久久久免费观看 | 美女视频网站久久| 亚洲free嫩bbb| 人人妻人人澡人人爽久久av| 久久久久久久综合日本| 亚洲欧洲另类精品久久综合| 制服丝袜中文字幕在线| 精品国产1区2区| 国产aaaaa毛片| 麻豆精品一区| 亚洲女人天堂网| 欧美日韩午夜视频| 国产欧美日本| 成人在线视频福利| 亚洲欧美一区二区三| 国产精品国产a级| 国产美女主播在线播放| 成人在线视频免费看| 日韩精品一区二区三区四区| 日本性高潮视频| 欧美特黄一区| 国产精品视频精品视频| 欧洲成人一区二区三区| 国产精品传媒视频| 国产性xxxx18免费观看视频| 蜜桃在线一区| 久久先锋资源网| 91精品国产综合久久精品性色 | 天天操天天干视频| 理论电影国产精品| 精品一卡二卡三卡四卡日本乱码 | 三级小视频在线观看| 中文字幕成人av| 丰满爆乳一区二区三区| 欧美成年网站| 中文字幕成人精品久久不卡 | 亚洲视频成人| av在线亚洲男人的天堂| 婷婷免费在线视频| 色综合久久久久网| 久久精品女同亚洲女同13| 99热在线成人| 国产精品久久久久久久久免费看| 内射后入在线观看一区| 亚洲人成精品久久久久| 成人性生生活性生交12| 小嫩嫩12欧美| 97久久超碰福利国产精品…| 精品人妻aV中文字幕乱码色欲| 国产精品三级av| 日本熟妇人妻中出| 中文精品一区二区| 一区二区三区四区乱视频| 国产成人久久久精品一区| 黄色一级大片在线免费看国产| 一区二区中文视频| 国产免费又粗又猛又爽| 国产欧美日韩精品一区二区免费| 68精品国产免费久久久久久婷婷| 国产小视频一区| 亚洲一本大道在线| 亚洲熟妇一区二区| 欧美在线观看天堂一区二区三区| 国产美女久久久| 137大胆人体在线观看| 欧洲激情一区二区| 黄色片网站免费| 日韩二区在线观看| 日韩免费av电影| 深夜视频一区二区| 日韩少妇与小伙激情| 国产一区二区在线视频聊天 | 久久久久久久久久久久久久久久久| 久久爱www久久做| 桥本有菜av在线| 久久视频社区| 久久久人成影片一区二区三区观看| 亚洲精品视频专区| 欧美日韩国产一区在线| 国产美女喷水视频| 日韩中文字幕区一区有砖一区| 日韩欧美99| crdy在线观看欧美| 久久99精品久久久久久琪琪 | av男人天堂一区| 亚洲国产精品久久久久爰色欲| 国产一区二区三区四区| 国产日韩欧美日韩| 日韩av激情| 亚洲精品99999| 中文字幕永久在线| 亚洲视频中文字幕| 日本三级日本三级日本三级极| 国产一区二区你懂的| 先锋影音一区二区三区| 精品国产一区二区三区2021| 欧美交受高潮1| 国产在线一在线二| 欧美精品1区2区3区| 日韩av在线电影| 国产欧美精品一区二区色综合朱莉| 日韩成人精品视频在线观看| 亚洲五月婷婷| 神马影院午夜我不卡影院| 警花av一区二区三区| 欧美在线亚洲在线| 欧美jizz18hd性欧美| 日韩av网站在线| 91资源在线视频| 婷婷激情综合网| 99热这里只有精品4| 成人黄色一级视频| 日韩av片网站| 亚洲激情女人| 91制片厂免费观看| 台湾色综合娱乐中文网| 91啪国产在线| 综合在线影院| 久久久最新网址| 亚洲精品传媒| 国产视频久久久久久久| 国产欧美一级片| 一本到不卡精品视频在线观看 | 永久av在线| 亚洲国产小视频| 国产日韩欧美一区二区东京热| 欧美性猛交xxxx黑人| 麻豆精品一区二区三区视频| 国产偷v国产偷v亚洲高清| 中国xxxx性xxxx产国| 国产一区二区三区蝌蚪| 爱情岛论坛vip永久入口| 99在线精品免费视频九九视| 久久99国产精品一区| 国产一区二区欧美| 九九久久99| 国产手机在线视频| 91久久国语露脸精品国产高跟| 国产aⅴ综合色| 中文字幕国内自拍| 国产精品久久久久久久久久妞妞| 日韩中文在线字幕| 国产大片一区| 在线视频一区二区免费| 国产精品一区二区三区不卡| 欧美亚洲大片| 日本精品久久久久久久| 国产乱码精品一区二三赶尸艳谈| 久久99青青精品免费观看| 视频免费一区| 自拍偷拍亚洲在线| 成人综合影院| 亚洲欧美日韩一区在线| 香蕉av一区二区三区| 精品国产伦一区二区三区免费| 99草在线视频| 7777精品伊人久久久大香线蕉超级流畅 | 玖玖综合伊人| 亚洲人成电影在线| 国产在线一二三区| 亚洲人成伊人成综合网久久久| 动漫精品视频| 精品www久久久久奶水| 日本视频免费观看| 手机在线理论片| 欧美精品在线一区二区三区| 四虎成人在线观看| 欧美日韩国产精品一区二区三区四区 | 欧美一区二区三区精品电影| 2021天堂中文幕一二区在线观| 久久久中文字幕| 蜜桃视频动漫在线播放| 欧美一区二区视频97| 丝袜美腿诱惑一区二区三区| 成人性视频免费网站| 久久久久久国产精品mv| 婷婷精品在线观看| 欧美一区视久久| 精品黄色一级片| 伊人久久婷婷色综合98网| 久久国产中文字幕| 国产精品久久成人免费观看| 欧美a级片网站| 精品久久久久久久久久中文字幕| 亚洲专区一区| 色婷婷成人在线| 国产成人免费xxxxxxxx| 中文字幕在线视频播放| 久久综合网色—综合色88| 国产一二三四视频| 亚洲精品亚洲人成人网| 日韩特黄一级片| 欧美午夜精品久久久久久孕妇| 国产又大又黄的视频| 亚洲大尺度美女在线| 精品视频三区| 久久夜精品香蕉| 丝袜诱惑一区二区| 国产精品入口尤物| 国产精品18hdxxxⅹ在线| 三级三级久久三级久久18| 亚洲国产精品久久久天堂| 免费视频爱爱太爽了| 日韩福利电影在线观看| 国产成人精品一区二区三区在线观看 | 久久福利视频导航| 日韩免费啪啪| 国内揄拍国内精品少妇国语| 日韩性xxx| 96精品久久久久中文字幕| 国产成人福利夜色影视| www.亚洲人| 精品亚洲视频在线| 99久久精品免费看国产免费软件| 国产在线精品二区| 亚洲av片一区二区三区| 久久精品国产免费观看| 天堂av中文在线观看| 亚洲影影院av| 国产亚洲第一伦理第一区| 国产1区2区3区中文字幕| 日韩中文字幕一区二区三区| 丰满熟女人妻一区二区三区| 国产精品网站在线播放| 免费日韩一级片| 欧美一区二区三区播放老司机| 国内在线免费高清视频| 久久久久久久999| 99re8精品视频在线观看| 欧美一区二区视频在线| 伊人久久亚洲美女图片| 一起操在线视频| 国产丝袜美腿一区二区三区| 日本一级淫片免费放| 日韩一区二区免费高清| 日本中文字幕在线2020| 欧美在线视频一区二区| 国产成人av毛片| wwwwww欧美| 国产一区二区调教| 麻豆一区在线观看| 色8久久人人97超碰香蕉987| 天堂av手机版| 欧美极品美女视频网站在线观看免费| 四虎国产精品免费久久| 色综合久久av| 日韩精品欧美精品| www.久久国产| 黑人巨大精品欧美一区免费视频| 高清毛片aaaaaaaaa片| 久久91精品国产| 3d动漫一区二区三区在线观看| 欧美视频在线观看一区二区| 国产毛片一区二区三区va在线 | www.久久91| 国产婷婷色一区二区三区四区 | 日韩欧美在线影院| 日本三级在线播放完整版| 国产精品久久久久久久久久99| 国产成人ay| 免费在线观看的毛片| 久久久久久久av麻豆果冻| 一区二区三区在线观看av| 亚洲精品在线看| 亚洲欧美小说色综合小说一区| 国内一区在线| 一本色道久久综合亚洲精品不| 第四色在线视频| 狠狠综合久久av一区二区小说| 天堂av一区二区三区| 7m第一福利500精品视频| 牛牛视频精品一区二区不卡| 国产av天堂无码一区二区三区| 91日韩一区二区三区| 日韩在线视频不卡| 在线观看日韩www视频免费| 性欧美video另类hd尤物| 黄色一级视频播放| 成人自拍视频在线观看| 国产www在线| 国产亚洲欧美视频| 欧美粗大gay| 欧美性猛交xxxx偷拍洗澡| 91 在线视频| 欧美一区二区三区在线视频| 天堂成人av| 国严精品久久久久久亚洲影视| 久久高清一区| 激情五月激情综合| 日韩一区二区三区观看| 草草在线视频| 日韩欧美一区二区三区久久婷婷| 极品少妇xxxx精品少妇| 久久久久久久国产视频| 亚洲欧美国产精品久久久久久久| 欧美jizz18| 无码熟妇人妻av在线电影| 久久久久青草大香线综合精品| 国产又黄又粗又长| 97视频在线观看成人| 国产一区二区三区不卡视频网站 | 久久99国产精品成人| 久久久久久久久久久久国产| 亚洲人成网站色ww在线| 精品中文字幕一区二区三区| www国产黄色| 亚洲欧美日本在线| 色鬼7777久久| 亚洲xxxx做受欧美| 久久国产日韩| 九九久久免费视频| 在线午夜精品自拍| 久久综合另类图片小说| 亚洲va在线va天堂va偷拍|