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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux字符驱动之点亮LED

發布時間:2023/11/30 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux字符驱动之点亮LED 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一節中,我們講解了如何自動創建設備節點,這一節我們在上一節的基礎上,實現點亮LED。

上一節文章鏈接:https://blog.csdn.net/qq_37659294/article/details/104308284

?

驅動里面能夠用很多種方法實現LED驅動,其中有本節的字符驅動(最笨的方法)、混雜設備驅動、使用內核GPIO函數接口、使用通用的平臺設備驅動的方法等。但是,不要因為本節是最笨的方法,就不學習了,對于初學者來說,循序漸進的學習是一種好習慣,好了,廢話不多說,直奔主題。

?

問:怎么寫LED驅動程序?

1.搭建一個字符驅動的框架(上一節已經完成)

2.完善硬件的操作

問:驅動里操作硬件寄存器與單片機操作硬件寄存器有什么不一樣的地方?

答:單片機操作的寄存器地址是物理地址,驅動里面操作的必須是虛擬地址,因為驅動是內核的一部分,內核里的地址都是虛擬地址。

問:怎么讓物理地址轉換為虛擬地址?

答:使用ioremap函數,它的功能就是將物理地址映射為虛擬地址,具體怎么映射需要去看linux內存管理等內容。

問:應用程序如果要傳數據給內核怎么辦?

答:使用copy_from_user函數,同理如果內核要傳數據給應用空間的應用程序則使用copy_to_user函數。
?

?

詳細請參考驅動源碼:

#include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> #include <asm/uaccess.h> #include <asm/irq.h> #include <asm/io.h> #include <linux/module.h> #include <linux/device.h> //class_createstatic struct class *firstdrv_class; static struct device *firstdrv_device;volatile unsigned long *gpbcon = NULL; volatile unsigned long *gpbdat = NULL;int major; static int first_drv_open(struct inode * inode, struct file * filp) {printk("first_drv_open\n");/* LED1,LED2,LED3,LED4對應GPB5、GPB6、GPB7、GPB8* 配置GPB5,6,7,8為輸出*/*gpbcon &= ~((0x3<<(5*2)) | (0x3<<(6*2)) | (0x3<<(7*2)) | (0x3<<(8*2)));*gpbcon |= ((0x1<<(5*2)) | (0x1<<(6*2)) | (0x1<<(7*2)) | (0x1<<(8*2)));return 0; } static int first_drv_write(struct file * file, const char __user * buffer, size_t count, loff_t * ppos) {int val;printk("first_drv_write\n");//拷貝用戶空間的數據到內核空間copy_from_user(&val, buffer, count);if (val == 1){// 點燈*gpbdat &= ~((1<<5) | (1<<6) | (1<<7) | (1<<8));//跟單片機操作寄存器一樣}else{// 滅燈*gpbdat |= (1<<5) | (1<<6) | (1<<7) | (1<<8);}return 0; }/* File operations struct for character device */ static const struct file_operations first_drv_fops = {.owner = THIS_MODULE,.open = first_drv_open,.write = first_drv_write, };/* 驅動入口函數 */ static int first_drv_init(void) {/* 主設備號設置為0表示由系統自動分配主設備號 */major = register_chrdev(0, "first_drv", &first_drv_fops);//創建一個“類”firstdrv_class = class_create(THIS_MODULE, "firstdrv");/* 在“類”里面創建設備* MKDEV(major, 0)指定主設備號為major,次設備號為0(這里的major必須和register_chrdev返回的一致,不然會出錯)*/firstdrv_device = device_create(firstdrv_class, NULL, MKDEV(major, 0), NULL, "xxx");/* 將物理地址映射為虛擬地址 *///物理地址的起始地址0x56000050,長度16字節gpbcon = (volatile unsigned long *)ioremap(0x56000010, 16);//gpfdat的物理地址和gpfcon相差4字節,前面我們總共映射了16字節,所以它們的虛擬地址也相差4字節,long型指針+1相當于加四字節gpbdat = gpbcon + 1;return 0; }/* 驅動出口函數 */ static void first_drv_exit(void) {unregister_chrdev(major, "first_drv");device_unregister(firstdrv_device); //卸載類下的設備class_destroy(firstdrv_class); //卸載類iounmap(gpbcon); //解除映射 }module_init(first_drv_init); //用于修飾入口函數 module_exit(first_drv_exit); //用于修飾出口函數 MODULE_AUTHOR("LWJ"); MODULE_DESCRIPTION("Just for Demon"); MODULE_LICENSE("GPL"); //遵循GPL協議

應用測試程序源碼:

#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h>/* first_test on* first_test off*/ int main(int argc ,char *argv[]){int fd;int val = 0;fd = open("/dev/xxx",O_RDWR);if (fd < 0){printf("open error\n");}if (argc != 2){printf("Usage:\n");printf("%s <on|off>\n",argv[0]);return 0;}if(strncmp(argv[1],"on",2) == 0){val = 1;}else if (strncmp(argv[1],"off",3) == 0){val = 0;} /* val是int類型,所以寫入4個字節 */write(fd,&val,4);return 0; }

測試步驟:

[WJ2440]# ls Qt driver_test lib root udisk TQLedtest etc linuxrc sbin usr app_test first_drv.ko mnt sddisk var bin first_test opt sys web dev home proc tmp [WJ2440]# ls -l /dev/xxx //還沒有設備節點 ls: /dev/xxx: No such file or directory [WJ2440]# insmod first_drv.ko [WJ2440]# lsmod first_drv 2300 0 - Live 0xbf003000 [WJ2440]# ls -l /dev/xxx //裝上驅動程序后自動生成了設備節點/dev/xxx crw-rw---- 1 root root 252, 0 Jan 2 00:23 /dev/xxx [WJ2440]# ./first_test first_drv_open Usage: ./first_test <on|off> [WJ2440]# ./first_test off first_drv_open first_drv_write [WJ2440]# ./first_test on first_drv_open first_drv_write [WJ2440]#

可發現,當執行下面語句時,開發板上的4個LED同時被熄滅:

[WJ2440]# ./first_test off

可發現,當執行下面語句時,開發板上的4個LED同時被點亮:

[WJ2440]# ./first_test on

若是要單獨控制某個LED燈,當然可以自定義傳入某些數據格式,根據輸入的參數不同來設置我們的寄存器;也可以通過生成多個設備節點,通過次設備號來分別控制,本質上相當于把4個LED看成一個整體,或是把LED1、LED2(都是LED,主設備號相同,次設備號用來區分不同個體)分別看成一個設備。其代碼如下:

//生成4個設備節點,用的是同一個驅動程序,通過次設備號來決定控制哪個燈 #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> #include <asm/uaccess.h> #include <asm/irq.h> #include <asm/io.h> #include <asm/arch/regs-gpio.h> #include <asm/hardware.h>#define DEVICE_NAME "leds" /* 加載模式后,執行”cat /proc/devices”命令看到的設備名稱 */ #define LED_MAJOR 231 /* 主設備號 */static struct class *leds_class; static struct class_device *leds_class_devs[4];/* bit0<=>D10, 0:亮, 1:滅 * bit1<=>D11, 0:亮, 1:滅 * bit2<=>D12, 0:亮, 1:滅 */ static char leds_status = 0x0; static DECLARE_MUTEX(leds_lock); // 定義賦值//static int minor; static unsigned long gpio_va;#define GPIO_OFT(x) ((x) - 0x56000000) #define GPFCON (*(volatile unsigned long *)(gpio_va + GPIO_OFT(0x56000050))) #define GPFDAT (*(volatile unsigned long *)(gpio_va + GPIO_OFT(0x56000054)))/* 應用程序對設備文件/dev/leds執行open(...)時,* 就會調用s3c24xx_leds_open函數*/ static int s3c24xx_leds_open(struct inode *inode, struct file *file) {int minor = MINOR(inode->i_rdev); //MINOR(inode->i_cdev);switch(minor){case 0: /* /dev/leds */{// 配置3引腳為輸出//s3c2410_gpio_cfgpin(S3C2410_GPF4, S3C2410_GPF4_OUTP);GPFCON &= ~(0x3<<(4*2));GPFCON |= (1<<(4*2));//s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);GPFCON &= ~(0x3<<(5*2));GPFCON |= (1<<(5*2));//s3c2410_gpio_cfgpin(S3C2410_GPF6, S3C2410_GPF6_OUTP);GPFCON &= ~(0x3<<(6*2));GPFCON |= (1<<(6*2));// 都輸出0//s3c2410_gpio_setpin(S3C2410_GPF4, 0);GPFDAT &= ~(1<<4);//s3c2410_gpio_setpin(S3C2410_GPF5, 0);GPFDAT &= ~(1<<5);//s3c2410_gpio_setpin(S3C2410_GPF6, 0);GPFDAT &= ~(1<<6);down(&leds_lock);leds_status = 0x0;up(&leds_lock);break;}case 1: /* /dev/led1 */{s3c2410_gpio_cfgpin(S3C2410_GPF4, S3C2410_GPF4_OUTP);s3c2410_gpio_setpin(S3C2410_GPF4, 0);down(&leds_lock);leds_status &= ~(1<<0);up(&leds_lock);break;}case 2: /* /dev/led2 */{s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);s3c2410_gpio_setpin(S3C2410_GPF5, 0);leds_status &= ~(1<<1);break;}case 3: /* /dev/led3 */{s3c2410_gpio_cfgpin(S3C2410_GPF6, S3C2410_GPF6_OUTP);s3c2410_gpio_setpin(S3C2410_GPF6, 0);down(&leds_lock);leds_status &= ~(1<<2);up(&leds_lock);break;}}return 0; }static int s3c24xx_leds_read(struct file *filp, char __user *buff, size_t count, loff_t *offp) {int minor = MINOR(filp->f_dentry->d_inode->i_rdev);char val;switch (minor){case 0: /* /dev/leds */{copy_to_user(buff, (const void *)&leds_status, 1); break;}case 1: /* /dev/led1 */{down(&leds_lock);val = leds_status & 0x1;up(&leds_lock);copy_to_user(buff, (const void *)&val, 1);break;}case 2: /* /dev/led2 */{down(&leds_lock);val = (leds_status>>1) & 0x1;up(&leds_lock);copy_to_user(buff, (const void *)&val, 1);break;}case 3: /* /dev/led3 */{down(&leds_lock);val = (leds_status>>2) & 0x1;up(&leds_lock);copy_to_user(buff, (const void *)&val, 1);break;}}return 1; }static ssize_t s3c24xx_leds_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos) {//int minor = MINOR(inode->i_rdev); //MINOR(inode->i_cdev);int minor = MINOR(file->f_dentry->d_inode->i_rdev);char val;copy_from_user(&val, buf, 1);switch (minor){case 0: /* /dev/leds */{ s3c2410_gpio_setpin(S3C2410_GPF4, (val & 0x1));s3c2410_gpio_setpin(S3C2410_GPF5, (val & 0x1));s3c2410_gpio_setpin(S3C2410_GPF6, (val & 0x1));down(&leds_lock);leds_status = val;up(&leds_lock);break;}case 1: /* /dev/led1 */{s3c2410_gpio_setpin(S3C2410_GPF4, val);if (val == 0){down(&leds_lock);leds_status &= ~(1<<0);up(&leds_lock);}else{down(&leds_lock);leds_status |= (1<<0); up(&leds_lock);}break;}case 2: /* /dev/led2 */{s3c2410_gpio_setpin(S3C2410_GPF5, val);if (val == 0){down(&leds_lock);leds_status &= ~(1<<1);up(&leds_lock);}else{down(&leds_lock);leds_status |= (1<<1); up(&leds_lock);}break;}case 3: /* /dev/led3 */{s3c2410_gpio_setpin(S3C2410_GPF6, val);if (val == 0){down(&leds_lock);leds_status &= ~(1<<2);up(&leds_lock);}else{down(&leds_lock);leds_status |= (1<<2); up(&leds_lock);}break;}}return 1; }/* 這個結構是字符設備驅動程序的核心* 當應用程序操作設備文件時所調用的open、read、write等函數,* 最終會調用這個結構中指定的對應函數*/ static struct file_operations s3c24xx_leds_fops = {.owner = THIS_MODULE, /* 這是一個宏,推向編譯模塊時自動創建的__this_module變量 */.open = s3c24xx_leds_open, .read = s3c24xx_leds_read, .write = s3c24xx_leds_write, };/** 執行insmod命令時就會調用這個函數 */ static int __init s3c24xx_leds_init(void) //static int __init init_module(void){int ret;int minor = 0;gpio_va = ioremap(0x56000000, 0x100000);if (!gpio_va) {return -EIO;}/* 注冊字符設備* 參數為主設備號、設備名字、file_operations結構;* 這樣,主設備號就和具體的file_operations結構聯系起來了,* 操作主設備為LED_MAJOR的設備文件時,就會調用s3c24xx_leds_fops中的相關成員函數* LED_MAJOR可以設為0,表示由內核自動分配主設備號*/ret = register_chrdev(LED_MAJOR, DEVICE_NAME, &s3c24xx_leds_fops);if (ret < 0) {printk(DEVICE_NAME " can't register major number\n");return ret;}leds_class = class_create(THIS_MODULE, "leds");if (IS_ERR(leds_class))return PTR_ERR(leds_class);/* 在一個“類”里面創建多個設備,說白了就是創建多個設備節點 */leds_class_devs[0] = class_device_create(leds_class, NULL, MKDEV(LED_MAJOR, 0), NULL, "leds"); /* /dev/leds */for (minor = 1; minor < 4; minor++) /* /dev/led1,2,3 */{leds_class_devs[minor] = class_device_create(leds_class, NULL, MKDEV(LED_MAJOR, minor), NULL, "led%d", minor);if (unlikely(IS_ERR(leds_class_devs[minor])))return PTR_ERR(leds_class_devs[minor]);}printk(DEVICE_NAME " initialized\n");return 0; }/** 執行rmmod命令時就會調用這個函數 */ static void __exit s3c24xx_leds_exit(void) {int minor;/* 卸載驅動程序 */unregister_chrdev(LED_MAJOR, DEVICE_NAME);for (minor = 0; minor < 4; minor++){class_device_unregister(leds_class_devs[minor]);}class_destroy(leds_class);iounmap(gpio_va); }/* 這兩行指定驅動程序的初始化函數和卸載函數 */ module_init(s3c24xx_leds_init); module_exit(s3c24xx_leds_exit);/* 描述驅動程序的一些信息,不是必須的 */ MODULE_AUTHOR("http://www.100ask.net"); MODULE_VERSION("0.1.0"); MODULE_DESCRIPTION("S3C2410/S3C2440 LED Driver"); MODULE_LICENSE("GPL"); #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h>/** ledtest <dev> <on|off>*/void print_usage(char *file) {printf("Usage:\n");printf("%s <dev> <on|off>\n",file);printf("eg. \n");printf("%s /dev/leds on\n", file);printf("%s /dev/leds off\n", file);printf("%s /dev/led1 on\n", file);printf("%s /dev/led1 off\n", file); }int main(int argc, char **argv) {int fd;char* filename;char val;if (argc != 3){print_usage(argv[0]);return 0;}filename = argv[1];fd = open(filename, O_RDWR);if (fd < 0){printf("error, can't open %s\n", filename);return 0;}if (!strcmp("on", argv[2])){// 亮燈val = 0;write(fd, &val, 1);}else if (!strcmp("off", argv[2])){// 滅燈val = 1;write(fd, &val, 1);}else{print_usage(argv[0]);return 0;}return 0; }

?

本文參考于:https://blog.csdn.net/lwj103862095/article/details/17472455

?

總結

以上是生活随笔為你收集整理的linux字符驱动之点亮LED的全部內容,希望文章能夠幫你解決所遇到的問題。

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

色婷婷久久久 | 亚洲全部视频 | 日韩av成人在线 | 99热在| 欧美日韩国产综合一区二区 | 少妇bbbb| 国产特级毛片aaaaaa毛片 | 超碰97成人 | 欧美成人精品三级在线观看播放 | 波多野结依在线观看 | 国产综合精品一区二区三区 | 激情五月婷婷综合网 | 精品成人a区在线观看 | 亚洲精品影视在线观看 | 在线成人av | av黄色免费在线观看 | 久久草网站| 日韩理论在线播放 | 免费网站看v片在线a | 精品免费在线视频 | 国产黄色av网站 | 久久草在线视频国产 | 午夜视频在线观看一区二区 | 三级av免费看 | 在线 精品 国产 | 亚洲精品久久久久中文字幕m男 | 精品电影一区 | a一片一级 | 四虎免费在线观看 | 中文字幕丝袜制服 | 在线免费视频 你懂得 | 97视频资源 | 日韩成人高清在线 | 丰满少妇高潮在线观看 | 91久久国产露脸精品国产闺蜜 | 色免费在线 | 碰超在线97人人 | av在观看 | 香蕉视频免费在线播放 | 中文视频一区二区 | 在线免费观看欧美日韩 | wwwwww色| 国产一区二区三区在线 | 日韩精品一区二区电影 | 欧美污网站 | 欧美一区二视频在线免费观看 | 日韩欧美精品在线观看 | 久久观看最新视频 | 亚洲成人精品 | 在线视频免费观看 | 久久免费公开视频 | 亚洲精选视频在线 | 久久精品视 | av在线电影播放 | 日日夜夜狠狠干 | 在线看污网站 | 日产乱码一二三区别免费 | 天天操夜夜看 | 亚洲精品视频在线观看视频 | 日韩av视屏在线观看 | 久久国语露脸国产精品电影 | 国产一级一片免费播放放 | av电影在线免费 | 国产三级国产精品国产专区50 | 在线观看国产www | 天天操天天射天天操 | 国产亚洲精品久久久久久无几年桃 | 色综合久久66 | 91亚州 | 天天艹天天干天天 | 成人在线观看资源 | 亚洲精品国偷拍自产在线观看 | 五月天,com | 国产网红在线观看 | 天天射日| 在线天堂中文在线资源网 | 久久99精品久久久久久秒播蜜臀 | av高清网站在线观看 | 中文字幕首页 | 欧美性生活小视频 | 国产麻豆剧果冻传媒视频播放量 | 久久一久久 | 在线免费色 | 中文区中文字幕免费看 | 日韩综合第一页 | 国产视频精品久久 | 字幕网资源站中文字幕 | 国产 在线 日韩 | 国产精品久久久久久吹潮天美传媒 | 国产成人精品国内自产拍免费看 | 国产一区二区综合 | 黄色软件视频网站 | 色综合天天视频在线观看 | 天天草综合网 | 久久免费精品视频 | 在线高清一区 | 不卡视频在线 | 日韩av成人免费看 | 久久国产精品99久久久久久丝袜 | 91久久国产露脸精品国产闺蜜 | 成人在线视频你懂的 | 中文字幕中文字幕中文字幕 | 欧美最猛性xxxxx免费 | 欧美激情精品一区 | 欧美小视频在线观看 | 色婷婷亚洲精品 | 五月天婷婷在线视频 | 午夜视频欧美 | 亚洲精品456在线播放乱码 | 成人av中文字幕在线观看 | 高清av免费看 | 美女精品| 久久a级片| 日韩特级片| 亚洲国产日韩欧美在线 | 日韩欧美视频在线观看免费 | 91中文在线视频 | 日韩中文久久 | 国产精品一码二码三码在线 | 日韩在线观看不卡 | 久久久久伦理电影 | 久久艹久久 | 亚洲午夜精品一区二区三区电影院 | 国产精品99久久久精品 | 九九免费在线观看 | 久久久久久电影 | 一级一片免费视频 | 日韩精品一区二区三区中文字幕 | 色婷婷狠狠五月综合天色拍 | 奇米影视8888| 在线激情电影 | 国产精品久久久久久久99 | 99色在线视频 | 高清av网 | 天天爽夜夜爽人人爽曰av | 亚洲精品国偷拍自产在线观看 | 亚洲精品视频一二三 | 国产在线a免费观看 | 精品视频一区在线观看 | 伊人色综合久久天天 | 久久精品影视 | 久草在线中文视频 | 久久成人亚洲欧美电影 | 国产成人中文字幕 | 亚洲精品在线观看不卡 | 久久人人爽人人爽人人片 | 国产一区二区在线免费播放 | 亚洲成a人片综合在线 | 亚洲欧美日韩国产精品一区午夜 | 91麻豆精品91久久久久同性 | 又爽又黄又无遮挡网站动态图 | 亚洲免费高清视频 | 色综合天天色 | 欧美一级性生活片 | 国产亚洲综合在线 | 97在线免费观看视频 | 日韩一区二区免费播放 | 四虎国产精品永久在线国在线 | 在线观看视频97 | 国产 亚洲 欧美 在线 | 天堂va在线观看 | 91欧美精品 | 日韩激情网 | 日韩午夜av | 天天综合五月天 | 日本乱码在线 | 99久久99久久精品免费 | 国偷自产中文字幕亚洲手机在线 | 欧美日韩成人一区 | 国产剧情在线一区 | 久久专区| 99久久久久成人国产免费 | 欧美精品乱码久久久久久 | 久久婷婷综合激情 | 日韩欧美99 | 91麻豆看国产在线紧急地址 | 西西444www大胆高清图片 | 国产成人精品一区二区在线观看 | 四虎影视国产精品免费久久 | 涩涩网站在线观看 | 国产999精品久久久 免费a网站 | 国产色一区 | 狠狠色丁香久久婷婷综合_中 | 精品久久久久久久 | 国产成人精品一区在线 | 成人国产精品免费观看 | 国产精品久久久久一区二区国产 | 十八岁以下禁止观看的1000个网站 | 91在线视频在线观看 | 日韩精品中文字幕久久臀 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久久激情视频 | 国产电影一区二区三区四区 | 色综合色综合色综合 | 1000部18岁以下禁看视频 | 日本夜夜草视频网站 | 国产精品18久久久久久久久 | 亚洲免费国产 | 国产精品第一视频 | 在线观看黄色的网站 | 91在线在线观看 | 色黄www小说 | 看全黄大色黄大片 | av免费观看网站 | 欧美日韩在线视频免费 | 亚洲黄色小说网址 | 国产成人久久精品77777 | 一区二区三区精品在线 | 99久久精品国产网站 | 国产污视频在线观看 | 国产青草视频在线观看 | 国产精品综合在线 | 在线观看一| 美女网站在线播放 | 91av在线视频免费观看 | 午夜电影av | 99精品国产aⅴ | 国产一级片一区二区三区 | www久久久久 | 久久福利影视 | 在线 成人 | 视频一区二区在线观看 | 国产免费又粗又猛又爽 | 91麻豆视频 | 97人人澡人人爽人人模亚洲 | 日韩免费在线观看视频 | 三级黄色欧美 | 九九在线免费视频 | 欧美一级免费 | 日日干天天 | 成人在线视频论坛 | 成年人视频免费在线 | 伊人久久国产 | 色综合综合 | 日韩极品视频在线观看 | av免费看av | 国产一区二区三区在线 | 国产精品四虎 | 日本一区二区不卡高清 | 成年人天堂com| 亚洲黄网站 | 九九九在线观看视频 | 国产黄色精品在线 | 国产最新视频在线 | www.久久久.cum | 国产精品免费看久久久8精臀av | 草久视频在线观看 | 亚洲精品在线电影 | 色午夜| 精品免费国产一区二区三区四区 | 日韩免费电影网站 | 91高清视频在线 | 亚洲免费精品一区二区 | 国产精品精品久久久久久 | 日韩av一区在线观看 | 日本韩国精品一区二区在线观看 | 香蕉视频91 | 91免费观看网站 | 久久精品国产免费看久久精品 | 国产精品成人国产乱一区 | 婷婷成人亚洲综合国产xv88 | 日韩午夜大片 | 日韩欧美99 | 4438全国亚洲精品在线观看视频 | 国产日韩精品视频 | 国产高清在线观看av | 三上悠亚一区二区在线观看 | 人人澡人人添人人爽一区二区 | 在线播放国产一区二区三区 | 91在线视频 | 欧美一区二区三区在线观看 | 国产高清在线免费观看 | 日韩av不卡在线播放 | 久久久精品网站 | 日韩在线观看影院 | 99 视频 高清| 黄污网站在线观看 | 国色天香在线观看 | 黄色影院在线免费观看 | 天天操天天添天天吹 | 久草精品免费 | 麻豆av电影| 视频一区二区国产 | 97超碰超碰久久福利超碰 | av高清免费在线 | 亚洲成a人片77777潘金莲 | 成人va视频 | 成人久久18免费网站 | 欧美日韩在线视频观看 | 欧美日韩视频网站 | 免费在线观看黄网站 | 蜜臀久久99精品久久久无需会员 | 精品一区二区三区香蕉蜜桃 | 久久综合五月 | 国产原创av在线 | 久久字幕网 | 久久久国产一区 | 国产精品久久久久久a | 国产专区第一页 | 波多野结衣亚洲一区二区 | 欧美日韩一区二区三区不卡 | 久久九九久久精品 | 国产一区免费在线观看 | 日韩精品免费一区二区三区 | bayu135国产精品视频 | 亚洲成人黄色在线 | 国产一级h | 久久日本视频 | 免费精品视频 | 日日夜夜爱 | 欧美日韩国产精品爽爽 | 2021国产在线| 天堂在线一区 | 久草免费手机视频 | 97色狠狠| 日韩免费电影在线观看 | 午夜婷婷在线观看 | 91精品老司机久久一区啪 | 成年人av在线播放 | 99热官网 | 国产亚洲精品xxoo | 国产精品欧美久久 | 日韩中文字幕国产精品 | 黄污网站在线 | 日韩美一区二区三区 | 亚洲五月激情 | 欧美性粗大hdvideo | 欧美资源在线观看 | 日本特黄特色aaa大片免费 | 久久精品视频网 | 国产黄色视 | 在线视频观看亚洲 | 久久国产精品成人免费浪潮 | 国产日韩视频在线 | 中文在线中文资源 | av中文字幕剧情 | 天天操天天能 | 日韩在线精品视频 | 婷婷在线色 | 91爱爱电影 | 在线看一级片 | 人人狠狠综合久久亚洲 | 在线观看视频免费播放 | 91av视频在线免费观看 | 国内视频在线观看 | 天天色天天草天天射 | 丁香综合av | 久久欧美精品 | 亚洲午夜精品久久久 | 亚洲丁香日韩 | 美女国内精品自产拍在线播放 | 久久一二三四 | 国产精品99免视看9 国产精品毛片一区视频 | 欧美少妇bbwhd | 少妇bbb搡bbbb搡bbbb| 日韩av一区在线观看 | 亚洲午夜激情网 | 成人蜜桃网 | 亚洲经典在线 | 99精彩视频在线观看免费 | 免费在线精品视频 | 国产香蕉在线 | 久久久国产毛片 | 国产一区二区三区久久久 | 久久看片 | 欧美一级片在线播放 | 免费亚洲黄色 | 亚洲激情视频在线 | 在线免费观看黄色 | 奇米四色影狠狠爱7777 | 中文字幕在线色 | 日韩中文字幕91 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 五月婷婷影院 | 久久久久女人精品毛片九一 | av三级av| 在线看国产视频 | 五月天色丁香 | 狠狠干狠狠色 | 日韩免费在线网站 | 成人超碰97| 99久久精品国产免费看不卡 | 亚洲免费成人av电影 | 91爱爱电影 | 中文av不卡 | 操操操综合 | 五月激情在线 | 国产精品一区二区久久精品 | 亚州天堂 | 国产精品欧美在线 | 天天爽网站 | 免费在线播放黄色 | 特级西西444www大精品视频免费看 | 伊人五月天.com | 在线视频 区| 中文字幕在线人 | 亚洲黄色三级 | 最新av在线网站 | 午夜12点 | 正在播放日韩 | 亚洲狠狠婷婷 | 久久久久精 | 国产精品视频永久免费播放 | 免费观看国产精品视频 | 亚洲国产美女精品久久久久∴ | 欧美日韩中文在线视频 | 91综合视频在线观看 | 亚洲第一av在线播放 | 国产高清视频 | 中文字幕在线资源 | 婷婷在线免费视频 | av一级片在线观看 | 国产午夜一区二区 | 久久99视频| 97超在线 | av中文字幕日韩 | 日韩高清观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 超碰97中文| 亚洲女欲精品久久久久久久18 | 久久久久免费观看 | 免费人成在线观看网站 | 国产成人一区二区精品非洲 | 超碰av在线 | 日韩精品欧美一区 | 日韩影视大全 | 久久综合99 | 欧美专区国产专区 | 国外调教视频网站 | 欧美亚洲精品在线观看 | 国产亚洲精品久久久久久久久久 | 日韩av电影网站在线观看 | 色婷婷99 | 色综合中文综合网 | 五月花婷婷 | 欧美a影视| 午夜影院在线观看18 | 午夜影院先 | 丁香综合av | 日韩久久电影 | 亚洲黄色免费观看 | 成人黄色电影免费观看 | 久久久精品小视频 | 三级动图 | 亚洲九九爱 | 久久精选视频 | 久久影视网| 国内久久久久 | 亚洲精品国偷自产在线91正片 | 国产午夜精品一区二区三区在线观看 | 天天操福利视频 | 在线观看一区视频 | 国产精彩视频一区二区 | 玖玖在线看 | 国产99久久久精品 | 国产高清黄色 | 久久成人18免费网站 | 嫩草伊人久久精品少妇av | 黄色软件视频大全免费下载 | 亚洲男模gay裸体gay | 激情综合色综合久久综合 | 综合久久2023 | 91精品一区国产高清在线gif | 激情丁香5月 | 超碰在线色 | 久久撸在线视频 | 天天天天天天天操 | 亚洲理论在线 | 日日摸日日添夜夜爽97 | 一区二区三区在线免费播放 | 麻豆视频免费观看 | 91在线视频在线观看 | 狠狠色丁香婷婷综合久小说久 | 中文在线字幕观看电影 | 91chinesexxx| 97人人精品 | 国产精品久久久久免费观看 | 久久a热6 | 97手机电影网 | 黄色午夜 | 久草综合在线 | 国产高清不卡一区二区三区 | 成年人电影毛片 | 日本女人在线观看 | 国产一二三精品 | 最新日韩在线观看视频 | 国产精品九九视频 | 欧美视频网址 | 久久er99热精品一区二区 | a黄色一级 | 四月婷婷在线观看 | 人人超碰免费 | 在线一区二区三区 | 00av视频 | 国产特级毛片aaaaaa高清 | 丁香花在线视频观看免费 | 就要干b | 久久99久久99精品免视看婷婷 | 成人少妇影院yyyy | 精品国产自 | 天天舔天天射天天操 | 日韩av中文在线 | 日批在线观看 | 99久久精品免费看国产免费软件 | 激情婷婷在线 | av在线一二三区 | 超碰在线人人草 | 国产精品小视频网站 | 婷婷去俺也去六月色 | 婷婷激情影院 | 久久久综合香蕉尹人综合网 | 久久久久欧美精品999 | 亚洲精品美女在线观看播放 | 欧美另类xxxx | 日本一区二区三区视频在线播放 | 日本精品视频网站 | 久久美女电影 | 久久xx视频 | 欧美久久久久久久久久 | ,午夜性刺激免费看视频 | 91热这里只有精品 | 亚洲在线成人精品 | 91人人爽人人爽人人精88v | 国产福利专区 | 91在线看视频 | 久久久影视| 天天天天干| 日本成人中文字幕在线观看 | 天天干天天干天天色 | 中文字幕日韩一区二区三区不卡 | 久久久国产精品一区二区三区 | 日韩免费福利 | 中文字幕一区二区三区久久蜜桃 | 2021久久 | 国产一级黄色免费看 | 99久久日韩精品免费热麻豆美女 | 91九色国产 | 99视频一区 | 99超碰在线观看 | 在线看国产一区 | 综合伊人av| 免费欧美 | 国产午夜精品一区 | 国内精品久久久久影院日本资源 | 国产成人精品一区二区三区福利 | 午夜精品在线看 | 激情综合网五月 | 欧美久久久久久久久久久久 | 欧美日韩一区二区视频在线观看 | 亚洲成人免费在线观看 | 免费手机黄色网址 | 在线中文字幕av观看 | 欧美视频xxx| 97国产超碰 | av黄色大片| 青青看片 | 天天射天天射天天射 | 欧美日韩在线看 | 天天射天| 亚洲成av人片在线观看香蕉 | 免费av在线网站 | 99久久这里有精品 | 日韩免费观看一区二区 | 91精品免费看| 婷婷六月天天 | 9在线观看免费高清完整 | 天天爱天天操天天干 | 欧美一二三视频 | 日韩理论电影网 | 日韩欧美一区二区三区视频 | 三级小视频在线观看 | 午夜手机电影 | 91探花国产综合在线精品 | 人人爱人人添 | 久久看片网 | 人人插人人舔 | 热久久视久久精品18亚洲精品 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产一区视频在线播放 | 免费高清在线观看成人 | 天天操夜夜干 | 91看片淫黄大片91 | 午夜精品久久 | 国产精品地址 | 狠狠综合网 | 欧美视屏一区二区 | 手机av电影在线观看 | 免费日韩在线 | 精品久久网 | 欧美精品久久久久久久久老牛影院 | 婷婷色中文网 | 中文字幕乱码亚洲精品一区 | 国产精品视频全国免费观看 | 久久久久久久久久久网站 | 国产又粗又猛又色又黄网站 | 综合激情久久 | 成年人av在线播放 | 99久热在线精品视频成人一区 | 国产一级在线观看视频 | 久草免费在线 | 99久久99视频| 国产精品av电影 | 四虎永久免费网站 | 在线成人免费电影 | 成人久久影院 | 狠狠综合网| 色丁香久久 | 91在线看视频免费 | 五月亚洲婷婷 | 国产xvideos免费视频播放 | 国产精品久久久久一区二区国产 | 精品国产网址 | 国产1区在线观看 | 免费看色网站 | 91免费高清在线观看 | 精品国产乱码久久久久久久 | 黄色成年网站 | 久久午夜色播影院免费高清 | 国产在线资源 | 日本系列中文字幕 | 久久综合久久久 | 久草在线播放视频 | 蜜臀久久99精品久久久无需会员 | 91女神的呻吟细腰翘臀美女 | 国产精品九九九九九 | 久久综合九色综合97_ 久久久 | 在线亚洲激情 | 欧美精品三级在线观看 | 久久久久亚洲国产 | 奇米影音四色 | 91夫妻自拍 | 九九在线国产视频 | 成人影片免费 | 国产九色在线播放九色 | 中文字幕免费 | 国产成人一区二区三区影院在线 | 玖草在线观看 | 免费色视频| 国产精品18久久久久久久久久久久 | 欧美成人按摩 | 最近中文字幕高清字幕免费mv | 91视频传媒 | 91丨九色丨高潮丰满 | 免费福利片2019潦草影视午夜 | 9在线观看免费高清完整版在线观看明 | 中文字幕在线观看三区 | 国产精品久久久久久久久久三级 | 超碰免费在线公开 | 最近中文字幕免费av | av中文字幕网站 | 五月婷社区 | 99久久久久免费精品国产 | 麻花豆传媒一二三产区 | 日韩精品免费一线在线观看 | 91超碰在线播放 | 97视频人人免费看 | 国产成人久久av | 久久久久 免费视频 | 免费a视频在线 | 国产精品福利久久久 | 粉嫩一二三区 | 亚洲最快最全在线视频 | 日本韩国欧美在线观看 | 亚洲精品视频www | 欧美色伊人 | 激情五月开心 | av免费观看在线 | 最近中文字幕国语免费高清6 | 99视频久 | 亚洲情婷婷 | 日日噜噜噜噜夜夜爽亚洲精品 | 在线成人短视频 | 91人人插| 美女视频a美女大全免费下载蜜臀 | 国产一及片 | 99精品免费久久久久久久久 | 国产亚洲精品久久久久久移动网络 | 五月天中文字幕mv在线 | 日本精品在线 | 国产精品久久久久久久久软件 | 久久精品久久精品久久39 | av黄色免费网站 | 91丨九色丨丝袜 | 丁香婷婷综合激情五月色 | 久久综合婷婷国产二区高清 | 免费观看www视频 | 婷婷久月| 天天操天天射天天插 | av在线播放快速免费阴 | 日韩欧美视频免费观看 | 一级免费黄色 | 亚洲资源网 | 日本不卡久久 | 国产亚洲人 | 日韩欧美综合在线视频 | 激情五月婷婷综合网 | 欧洲不卡av| 日韩三区在线观看 | 亚洲国产中文字幕在线视频综合 | 麻豆精品在线 | 黄色av成人在线 | 精品国产激情 | 久久久视屏| 亚洲视频h | 亚洲1区在线 | 国产在线更新 | 国产色婷婷 | 欧美日韩午夜在线 | 天天想夜夜操 | 国产资源在线免费观看 | 在线国产精品视频 | 婷婷综合久久 | 麻豆精品传媒视频 | 日韩视频免费观看高清完整版在线 | 91日韩精品一区 | 中文字幕在线观看完整版 | 亚洲国产精品电影在线观看 | 啪啪免费观看网站 | 色天天 | 日韩欧美黄色网址 | 亚洲精品网址在线观看 | 射综合网 | 日韩视频一区二区三区在线播放免费观看 | 99热这里只有精品在线观看 | 国产91区 | 999久久久免费视频 午夜国产在线观看 | 天天干天天天天 | 成年人免费在线播放 | 国产精品一区欧美 | 婷婷丁香花五月天 | 色视频在线免费 | 国产视频高清 | 日韩在线视频国产 | 香蕉久草 | 欧美性生交大片免网 | 精品一区二区精品 | 免费在线观看视频一区 | 国产成人99av超碰超爽 | 在线观看亚洲国产精品 | av中文电影 | 久久这里只有精品久久 | 久久人人97超碰国产公开结果 | 99免费在线视频观看 | 日韩av午夜 | 精品一区二区三区香蕉蜜桃 | 九九热精品视频在线观看 | 国产精品久久久精品 | 久久理论电影 | 日韩视频a | 天天躁日日躁狠狠 | 天天躁日日躁狠狠躁av麻豆 | 日韩久久精品一区 | 91麻豆视频| 成人综合婷婷国产精品久久免费 | 成人在线播放免费观看 | 一级a性色生活片久久毛片波多野 | 日韩免费不卡av | 成人免费在线观看电影 | 欧美一二区视频 | 毛片.com| 高清在线一区二区 | 国产精品高潮呻吟久久久久 | 国产精品k频道 | av在线播放快速免费阴 | 亚洲无人区小视频 | 狠狠狠色丁香婷婷综合久久五月 | 久视频在线播放 | 日韩xxxbbb| 欧美人zozo | 中文在线www| 久久综合给合久久狠狠色 | 久久av观看 | 天天草综合 | 五月婷婷丁香色 | 久久国产亚洲精品 | 尤物九九久久国产精品的分类 | 外国av网| 五月天狠狠操 | 亚洲欧洲国产视频 | 精品国偷自产国产一区 | 国产亚洲精品免费 | 国产综合在线观看视频 | 精品一区二区三区久久 | а天堂中文最新一区二区三区 | 欧美aaa级片| 一区二区三区中文字幕在线 | 欧美极品一区二区三区 | 97成人免费 | 有码中文在线 | 久久色在线播放 | 91高清一区 | 日韩久久一区二区 | 国产一级高清视频 | 亚洲成人精品av | 国产精品亚州 | 日本久热 | 一区久久久 | 丝袜美女在线观看 | 99久久婷婷国产综合亚洲 | 中文字幕黄色 | 在线小视频你懂得 | 国产精品久久久久久麻豆一区 | 亚洲精品视频第一页 | 中文字幕免费久久 | 欧美伦理电影一区二区 | 久久久久久久久国产 | 色综合久久88色综合天天人守婷 | 国产一级视频在线观看 | 丁香六月欧美 | 日韩有码网站 | 日韩理论电影网 | 久久免费视频网 | 亚洲精品777 | 午夜在线观看影院 | 久久综合狠狠综合 | 成人四虎影院 | 精品亚洲视频在线观看 | 日韩欧美一区二区三区在线观看 | 日韩欧美高清 | 亚洲黄色一级电影 | 成人av电影免费观看 | 亚洲国产中文字幕在线视频综合 | 欧美激情另类 | 成人在线观看影院 | 怡红院av久久久久久久 | 亚洲视频六区 | 久久综合9988久久爱 | 婷婷国产视频 | 国产中文字幕一区二区 | 人人澡人摸人人添学生av | 亚洲第一中文字幕 | 二区三区中文字幕 | 九九av | 成人综合婷婷国产精品久久免费 | 国产精品9999 | 91精品在线麻豆 | 亚洲精品字幕 | 激情欧美一区二区免费视频 | 久久免费视频播放 | 免费男女羞羞的视频网站中文字幕 | 国产日韩精品一区二区在线观看播放 | 久久视频这里有精品 | 狠狠狠色 | 97理论电影 | 亚洲欧美日韩在线看 | 亚洲一区视频在线播放 | 欧美精品久久久久久 | 高清一区二区 | 一级成人网 | 97色婷婷 | 国产午夜三级一二三区 | 午夜精品久久久久久久99无限制 | 国产精品久久久久久久久久三级 | 99福利片 | 日韩久久视频 | 日韩伦理一区二区三区av在线 | 国产在线97 | 亚洲午夜精品久久久久久久久久久久 | 免费色视频网站 | 成年人网站免费观看 | 在线视频观看91 | 久久av影视 | 国内精品久久久久久久久久久久 | 日本视频不卡 | 超碰公开97 | 99精品视频在线免费观看 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 天天综合网国产 | 人人爽人人爽人人片av免 | 午夜国产福利在线观看 | 成人av电影免费观看 | 国产成人久 | 日韩成人精品一区二区三区 | 狠狠色丁香婷综合久久 | 蜜臀91丨九色丨蝌蚪老版 | 波多野结衣精品在线 | 久艹在线免费观看 | 成人精品视频久久久久 | 99视频免费 | 日日夜夜天天干 | 日日夜夜添 | 国产高清在线永久 | 玖草在线观看 | 免费网站黄 | 正在播放亚洲精品 | 欧美性免费 | 亚洲中字幕 | 日韩在线观看视频一区二区三区 | 婷婷国产在线观看 | 探花视频在线版播放免费观看 | 成人四虎 | 天堂久久电影网 | 国产精品theporn| 国产成人av福利 | 日日操天天操狠狠操 | 欧美日韩精品区 | 四虎国产免费 | 免费91在线 | 亚洲国产精品一区二区久久hs | 激情视频综合网 | 免费在线播放黄色 | 在线a视频免费观看 | 国产在线观看 | 国产精品岛国久久久久久久久红粉 | 国产午夜小视频 | 91视频-88av| 九九免费在线观看 | 中文字幕欧美日韩va免费视频 | 国产精品video爽爽爽爽 | 69国产成人综合久久精品欧美 | 91精品对白一区国产伦 | 中文字幕av免费在线观看 | 高清av中文字幕 | 天天操天天操天天操天天操天天操 | 91精品老司机久久一区啪 | 成人av在线观 | 97超碰人| 天天干一干 | 欧美专区国产专区 | 国产91精品看黄网站在线观看动漫 | 在线播放一区二区三区 | 成人在线观看影院 | 夜夜躁天天躁很躁波 | 国产精品99精品 | 精品国产一区二区三区四区在线观看 | 国产精品一区二区三区四区在线观看 | 奇米影视在线99精品 | 亚洲国产精品免费 | 亚洲一级片 | 免费a一级 | 久久久国产精品成人免费 | 999国产在线 | 免费黄色看片 | 叶爱av在线| 国产精品自在欧美一区 | 一色av| 国产999视频 | 热热热热热色 | 最新一区二区三区 | 最近中文字幕完整视频高清1 | 97国产在线视频 | 亚洲一级电影在线观看 | 亚洲精品理论 | 天天操天天干天天操天天干 | 91x色| 色天天综合久久久久综合片 | 综合精品久久 | 色www精品视频在线观看 | 国产高清av在线播放 | 久久视频网 | 激情伊人五月天 | 美女精品久久久 | 午夜精品一区二区三区视频免费看 | 狠狠色婷婷丁香六月 | 91片黄在线观看动漫 | 亚洲欧美国产精品久久久久 | av大片网址 | 在线播放第一页 | 国产精品综合久久久 | 日韩精品免费在线观看视频 | 欧美一级特黄aaaaaa大片在线观看 | 六月色婷婷 | 91精品免费 | 精品久久久久久综合日本 | 精品国产理论 | 狠狠狠狠狠狠狠干 | 日韩av成人在线观看 | 亚洲一级黄色片 | 四虎www.| 欧美a级成人淫片免费看 | 最新国产福利 | 日韩在线视频线视频免费网站 | 99热超碰在线 | 国产看片网站 | 黄色一级影院 | 日韩欧美电影 | 中文字幕4| 久久久久久国产精品美女 | 五月婷婷毛片 | 欧美夫妻生活视频 | 天天摸天天舔天天操 | 日韩久久电影 | 成片视频免费观看 | 久久99国产精品自在自在app | 一本一本久久a久久精品综合 | 久久精品久久精品 | 2019天天干天天色 | 欧美日韩在线精品一区二区 | 国产精品麻豆果冻传媒在线播放 | 韩国av不卡 | 日韩一区精品 | 国产成人综合在线观看 | 男女激情麻豆 | 国产欧美最新羞羞视频在线观看 | 亚洲免费国产视频 | 日韩在线观看小视频 | 欧美亚洲另类在线视频 | 青青看片 |