亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式Linux系統(tǒng)移植研究與實(shí)現(xiàn)

        2017-01-10 07:36:31陶琳張亞楠楊新鋒
        微型電腦應(yīng)用 2016年12期
        關(guān)鍵詞:源代碼內(nèi)核內(nèi)存

        陶琳,張亞楠,楊新鋒

        ?

        嵌入式Linux系統(tǒng)移植研究與實(shí)現(xiàn)

        陶琳1,張亞楠1,楊新鋒2

        (1.河南工業(yè)職業(yè)技術(shù)學(xué)院電子信息工程系,南陽(yáng) 473003 2.南陽(yáng)理工學(xué)院計(jì)算機(jī)與信息工程學(xué)院,南陽(yáng) 473003)

        主要研究ARM和Linux嵌入式系統(tǒng)中BotLoader、Linux內(nèi)核及文件系統(tǒng)的移植方法。目標(biāo)板上的微控制器是S3C2440,其內(nèi)核為ARM920T,存儲(chǔ)器有64M的SDRAM、64M的Nand Flash以及2M的Nor Flash;板上還集成了串口、網(wǎng)卡、鼠標(biāo)、鍵盤(pán)、LCD、聲卡等多種接口。開(kāi)發(fā)環(huán)境是在VMvare虛擬機(jī)平臺(tái)軟件下安裝的Linux操作系統(tǒng),并構(gòu)建交叉編譯開(kāi)發(fā)環(huán)境,在此基礎(chǔ)上試驗(yàn)移植了Linux系統(tǒng),包括U-Boot移植、配置、編譯,Linux內(nèi)核的移植、配置、編譯,根文件系統(tǒng)的構(gòu)建、編譯。

        ARM平臺(tái);BootLoader;Linux內(nèi)核;根文件系統(tǒng);移植

        0 引言

        嵌入式系統(tǒng)是計(jì)算機(jī)技術(shù)、通信技術(shù)、半導(dǎo)體技術(shù)、微電子技術(shù)、語(yǔ)音圖像數(shù)據(jù)傳輸技術(shù)等先進(jìn)技術(shù)相結(jié)合后的產(chǎn)物[1]。嵌入式系統(tǒng)一般包括嵌入式微處理器,外圍硬件設(shè)備,嵌入式操作系統(tǒng),和應(yīng)用程序等幾個(gè)部分。當(dāng)今的數(shù)字時(shí)代是嵌入式系統(tǒng)蓬勃發(fā)展、廣泛應(yīng)用的時(shí)代[2-4]。

        嵌入式系統(tǒng)中的操作系統(tǒng),首選是Linux,因Linux具有源代碼開(kāi)放、內(nèi)核穩(wěn)定高效、軟件豐富、支持處理器結(jié)構(gòu)和硬件平臺(tái)類型多、可移植性好特點(diǎn)[5]。隨著Linux 2.6內(nèi)核的迅速發(fā)展,嵌入式Linux在嵌入式領(lǐng)域的應(yīng)用越來(lái)越廣泛。

        1 嵌入式Linux系統(tǒng)的軟件開(kāi)發(fā)環(huán)境

        軟件開(kāi)發(fā)平臺(tái)是嵌入式開(kāi)發(fā)的關(guān)鍵,由于嵌入式硬件平臺(tái)的存儲(chǔ)空間有限、處理器頻率較低,很難直接在嵌入式硬件式平臺(tái)上建立Linux系統(tǒng)、安裝嵌入式開(kāi)發(fā)軟件,因此只能采用嵌入式交叉開(kāi)發(fā)環(huán)境來(lái)解決這個(gè)問(wèn)題[6-8]。通過(guò)建立開(kāi)發(fā)環(huán)境才能更方便的進(jìn)行Boot Loader移植、Linux內(nèi)核移植以及GUI系統(tǒng)開(kāi)發(fā)等。

        1.1 交叉開(kāi)發(fā)環(huán)境

        由于嵌入式系統(tǒng)的硬件資源的局限性,在嵌入式系統(tǒng)的開(kāi)發(fā)過(guò)程,通常都要借助于交叉開(kāi)發(fā)環(huán)境,這樣可以在開(kāi)發(fā)主機(jī)上安裝開(kāi)發(fā)工具,編輯,編譯目標(biāo)的引導(dǎo)程序,內(nèi)核和文件系統(tǒng),然后在目標(biāo)板上調(diào)試運(yùn)行[9]。

        1.2 交叉編譯工具

        由于開(kāi)發(fā)平臺(tái)是X86體系結(jié)構(gòu),開(kāi)發(fā)平臺(tái)上運(yùn)行的程序不能在ARM體系的處理器平臺(tái)上運(yùn)行,所以必須使用交叉編譯工具鏈來(lái)編譯程序[10,11]。把工具鏈安裝在/usr/local/arm目錄下。然后,在環(huán)境變量PATH中添加路徑,其方法是在etc目錄下的profile文件中,添加“PATH=$PATH:/usr/local/arm/3.4.1/bin”,這樣不必在每次重啟機(jī)器后再重設(shè)PATH變量了。

        2 BootLoader及移植

        Boot Loader負(fù)責(zé)硬件平臺(tái)的最基本的初始化,并引導(dǎo)Linux內(nèi)核的啟動(dòng)。它的作用就相當(dāng)于Windows中的BIOS(Basic Input Output System)。

        Boot Loader是操作系統(tǒng)運(yùn)行之前的一段小程序,它主要負(fù)責(zé)初始化硬件設(shè)備,建立內(nèi)存空間的映射表等,將操作系統(tǒng)映像裝載到內(nèi)存中,然后跳轉(zhuǎn)到操作系統(tǒng)所在的空間,啟動(dòng)操作系統(tǒng)運(yùn)行[12,13]。

        2.1 BootLoader移植與編譯

        雖然對(duì)于S3C2440和S3C2410來(lái)說(shuō),三星從一開(kāi)始就專門(mén)為其設(shè)計(jì)vivi,其功能和性能都已經(jīng)足夠了,并且vivi從一開(kāi)始就支持Nand flash啟動(dòng),比U-Boot有一定優(yōu)勢(shì),但是U-Boot作為嵌入式系統(tǒng)中通用的Boot Loader,可以很方便的移植到其他硬件平臺(tái),因此對(duì)嵌入式系統(tǒng)Boot Loader,研究U-Boot的移植就顯得非常重要。接下來(lái)我們以smdk2410公板為模板,開(kāi)始移植U-Boot到QQ2440V3開(kāi)發(fā)板。

        移植U-Boot到新的嵌入式系統(tǒng)板上包括兩個(gè)層面的移植,第一層面是針對(duì)CPU的移植,第二層面是針對(duì)BOARD的移植,同時(shí)需要移植相關(guān)的頭[14]。

        U-Boot的移植方法如下:

        (1)修改/cpu/arm920t/start.S。start.S文件是整個(gè)Boot loader程序的入口點(diǎn),在這里我們需要對(duì)寄存器地址定義、中斷禁止部分、時(shí)鐘設(shè)置(2440的主頻為405MHz)等部分,按照s3c2440手冊(cè)或者vivi的源代碼,將從Flash啟動(dòng)改成從NAND Flash啟動(dòng)。

        (2)在board/friendlyarm/qq2440加入NAND Flash讀函數(shù)文件,拷貝vivi中的nand_read.c文件到此文件夾即可。

        (3)修改board/friendlyarm/qq2440/Makefile文件。

        OBJS:= qq2440.o nand_read.o flash.o

        (4)修改include/configs/qq2440.h文件。添加NAND FLASH、JFFS2、USB啟動(dòng)支持。

        (5)修改board/friendlyarm/qq2440/lowlevel_init.S文件,依照開(kāi)發(fā)板的內(nèi)存區(qū)的配置情況, 修改board/tekkaman/tekkaman2440/lowlevel_init.S文件,我們利用友善之臂提供的vivi源碼里的信息做一些簡(jiǎn)單的修改。

        (6)修改/board/friendlyarm/qq2440/qq2440.c。修改其對(duì)GPIO和PLL的配置(需參閱開(kāi)發(fā)板的硬件說(shuō)明和芯片手冊(cè)):

        (7)在個(gè)文件中添加“CONFIG_S3C2440”,使得原來(lái)s3c2410的代碼可以編譯進(jìn)來(lái)。

        此外還需要對(duì)以下文件進(jìn)行一些修改

        include/linux/mtd/nand_ids.h include/linux/mtd/nand.h

        /lib_arm/board.c common/env_nand.c

        /board/friendlyarm/qq2440/qq2440.c

        U-boot交叉編譯較簡(jiǎn)單,在U-Boot根目錄下執(zhí)行如下命令:

        # make clean

        # make qq2400_config

        # make

        編譯一段時(shí)間后,便會(huì)生成五個(gè)文件u-boot,u-boot.bin,u-boot.srec,System.map。

        其中,u-boot是U-Boot映像的ELF格式,System.map文件是U-Boot映像的符號(hào)表,u-boot.bin文件是U-Boot映像原始的二進(jìn)制格式,u-boot.srec是U-Boot映像的S-Record格式。以上的三種映像格式都可以燒到flash中,但是需要加載器的支持。一般u-boot.bin最為常用,直接按照二進(jìn)制格式下載即可。

        2.2 安裝BootLoader到開(kāi)發(fā)板

        目標(biāo)開(kāi)發(fā)板采用的Boot Loader是基于vivi改進(jìn)而來(lái),名為Supervivi,它采用功能菜單的方式,并可以和原來(lái)的命令交互模式互相切換。Supervivi可以使用JTAG板直接燒寫(xiě)入Nor Flash中使用,也可以直接燒入Nand Flash中運(yùn)行。當(dāng)燒入Nor Flash并從中啟動(dòng)時(shí),將會(huì)出現(xiàn)菜單模式;當(dāng)燒入Nand Flash并從中運(yùn)行時(shí),則為命令交互模式(提示:需要在超級(jí)終端界面下按住空格鍵才能進(jìn)入,否則直接啟動(dòng)系統(tǒng))。Supervivi的菜單模式主要為燒寫(xiě)系統(tǒng)而用,也可以設(shè)置參數(shù)和進(jìn)行分區(qū)等,它采用USB下載的方式,因此下載速度快,使用及其方便。Supervivi的編譯與vivi類似。執(zhí)行sjf2440.exe /f vivi 即可以燒寫(xiě)vivi到目標(biāo)板的NandFlash或Nor flash了。

        3 Linux內(nèi)核移植

        3.1 Linux內(nèi)核結(jié)構(gòu)

        Linux的內(nèi)核源代碼非常龐大,并且隨著版本的發(fā)展不斷的增加。所以它采用了目錄樹(shù)結(jié)構(gòu),并且使用Makefile組織配置編譯。Linux內(nèi)核頂層目錄的Makefile是整個(gè)內(nèi)核配置編譯的核心文件,負(fù)責(zé)整個(gè)組織目錄樹(shù)中子目錄的編譯管理。

        arch/ 存放體系結(jié)構(gòu)相關(guān)的代碼,如arch/i386,arch/arm等drivers/ 各種設(shè)備驅(qū)動(dòng)程序,如drivers/char,drivers/block

        Documentation/ 內(nèi)核文檔

        fs/ 文件系統(tǒng),例如:fs/ext3,fs/jffs2等

        include/ 內(nèi)核頭文件

        init/ Linux初始化

        ipc/ 進(jìn)程間通信的代碼

        kernel/ linux內(nèi)核核心代碼

        lib/ 各種庫(kù)子程序

        mm/ 內(nèi)存管理代碼

        net/ 網(wǎng)絡(luò)支持代碼,主要是網(wǎng)絡(luò)協(xié)議

        scripts/ 內(nèi)部或外部使用的腳本

        usr/ 用戶的代碼。

        3.2 Linux內(nèi)核的配置

        Linux內(nèi)核源代碼支持20多種體系結(jié)構(gòu)的處理器,還有各種各樣的驅(qū)動(dòng)程序選項(xiàng),因此在編譯之前必須根據(jù)特定平臺(tái)配置內(nèi)核源碼。Linux內(nèi)核有上千個(gè)配置選項(xiàng),配置相當(dāng)復(fù)雜,所以Linux內(nèi)核源代碼組織了一個(gè)配置系統(tǒng)。

        1. Linux內(nèi)核移植

        首先我們把內(nèi)核的源代碼包復(fù)制到我們的工作目錄,并進(jìn)行解壓這樣內(nèi)核源碼被解壓到了/home/kernel 2.6.13目錄中接下來(lái),需要把根目錄的Makefile中以下兩行注釋掉:

        ARCH ?=$(SUBARCH)

        CROSS_COMPILE ?=

        并添加以下兩行

        ARCH ?=arm

        CROSS_COMPILE ?=/usr/local/arm/bin/arm-linux-

        這兩個(gè)參數(shù)分別用來(lái)指定編譯的體系結(jié)構(gòu)和交叉編譯工具鏈的,或者我們也可以直接在啟動(dòng)配置菜單或編譯時(shí)以參數(shù)的形式指定它們,如

        # make menuconfig ARCH=arm

        #make CROSS_COMPILE=/usr/local/arm/bin/arm-linux

        2. Linux內(nèi)核配置

        使用菜單式配置軟件menuconfig配置,啟動(dòng)menuconfig進(jìn)入主配置菜單。CPU配置界面,如,圖1所示。

        圖1 CPU配置界面

        可以看到,系統(tǒng)大部分使用了標(biāo)注了S3C2410的選項(xiàng),這是因?yàn)?S3C2410 和3C2440的很多寄存器地址等地址和設(shè)置是完全相同的,該版本的 linux-2.6內(nèi)核沒(méi)有再對(duì)這兩種CPU分別設(shè)置。 CPU配置之后,配置LCD驅(qū)動(dòng)、USB鼠標(biāo)和鍵盤(pán)、網(wǎng)卡驅(qū)動(dòng)等,它們都可以很方便的通過(guò)如上配置系統(tǒng)進(jìn)行配置。配置完成后,保存退出,默認(rèn)會(huì)保存為源代碼根目錄下名為.config的文件,然后如上節(jié)執(zhí)行make zImage命令即可。

        4 Linux根文件系統(tǒng)

        文件系統(tǒng)是任何操作系統(tǒng)中都非常重要的概念,每個(gè)操作系統(tǒng)都有一種把數(shù)據(jù)保存為文件和目錄的方法。

        4.1 Linux根文件系統(tǒng)目錄結(jié)構(gòu)

        Linux的跟文件系統(tǒng)包括支持Linux系統(tǒng)正常運(yùn)行的基本內(nèi)容,包含系統(tǒng)使用的軟件和庫(kù),以及一些用戶級(jí)軟件支持等。Linux遵守文件系統(tǒng)科學(xué)分類標(biāo)準(zhǔn)(Filesystem Hierarchy Standard,F(xiàn)HS),使得其文件系統(tǒng)布局實(shí)現(xiàn)了標(biāo)準(zhǔn)化。

        /dev 設(shè)備文件

        /root 用戶主目錄

        /usr 存放一般不需要修改的命令程序文件,程序庫(kù)手冊(cè)和其他文檔等

        /home 用戶主目錄的默認(rèn)位置

        /proc 系統(tǒng)內(nèi)存的映射

        /bin 包含二進(jìn)制文件的可執(zhí)行程序

        /etc 存放大部分的系統(tǒng)重要配置文件

        /boot 存放系統(tǒng)啟動(dòng)時(shí)所需要的文件

        /lib 標(biāo)準(zhǔn)程序設(shè)計(jì)庫(kù)

        /mnt 為其它文件系統(tǒng)提供掛載點(diǎn)

        鑒于大多數(shù)嵌入式系統(tǒng)使用Flash存儲(chǔ)介質(zhì),所以傳統(tǒng)的Linux文件系統(tǒng)己經(jīng)不適合應(yīng)用在嵌入式系統(tǒng)中,常見(jiàn)的專用于閃存設(shè)備的文件系統(tǒng)主要有JFFS2和YAFFS。

        JFFS2是一個(gè)可讀寫(xiě)的、壓縮的、日志型文件系統(tǒng),并提供了崩潰/掉電安全保護(hù),克服了JFFS的一些缺點(diǎn):使用了基于哈希表的日志節(jié)點(diǎn)結(jié)構(gòu),大大加快了對(duì)節(jié)點(diǎn)的操作速度;支持?jǐn)?shù)據(jù)壓縮;提供了“寫(xiě)平衡”支持;支持多種節(jié)點(diǎn)類型;提高了對(duì)閃存的利用率,降低了內(nèi)存的消耗。這些特點(diǎn)使JFFS2文件系統(tǒng)成為目前Flash設(shè)備上最流行的文件系統(tǒng)格式。

        YAFFS/YAFFS2是專為嵌入式系統(tǒng)使用NAND型閃存而設(shè)計(jì)的一種日志型文件系統(tǒng)。和JFFS2相比它減少了一些功能,所以速度更快,而且對(duì)內(nèi)存的占用比較小。此外,YAFFS自帶NAND芯片的驅(qū)動(dòng),相對(duì)于JFFS2在NAND閃存上的不穩(wěn)定,在NAND閃存上使用YAFFS是更好的選擇。

        4.2 YAFFS文件系統(tǒng)映像制作

        把下載的 mkyaffsimage.tgz 文件拷貝到臨時(shí)目錄,進(jìn)入該目錄,然后執(zhí)行相關(guān)命令,把制作工具mkyaffsimage安裝到系統(tǒng)的可執(zhí)行路徑/usr/sbin目錄。

        可以根據(jù)需要,建立自己的文件目錄,但是以一定要把系統(tǒng)所必需的文件拷貝到相應(yīng)的目錄下,這里使用友善之臂提供的光盤(pán)中的root_default.tgz為例,來(lái)進(jìn)行文件目錄的制作,首先執(zhí)行解壓命令,解壓完成后,就會(huì)在目錄下生成一個(gè)root_default目錄。接下來(lái),執(zhí)行如下命令進(jìn)行編譯:

        #mkyaffsimage root_default root_qq2440

        編譯可能需要一段時(shí)間,等編譯完成后,就在目錄下生成了映像文件root_qq2440。

        5 對(duì)比分析

        與參考文獻(xiàn)中的移植方法相比,本文選擇了主流的內(nèi)核為ARM920T的S3C2440作為目標(biāo)板上的微控制器,其次鑒于當(dāng)前大部分嵌入式系統(tǒng)使用Flash存儲(chǔ)介質(zhì),采用了專為嵌入式系統(tǒng)使用NAND型閃存而設(shè)計(jì)的日志型文件系統(tǒng)——YAFFS/YAFFS2,YAFFS自帶NAND芯片的驅(qū)動(dòng),在NAND閃存上的更加穩(wěn)定,和JFFS2相比它減少了一些功能,所以速度更快,而且對(duì)內(nèi)存的占用比較小。

        6 總結(jié)

        本文對(duì)Linux操作系統(tǒng)移植環(huán)境及過(guò)程進(jìn)行了深刻剖析,重點(diǎn)討論了嵌入式系統(tǒng)的引導(dǎo)加載程序—Boot Loader和Linux內(nèi)核的移植實(shí)現(xiàn)過(guò)程、同時(shí)對(duì)Linux根文件系統(tǒng)的建立、硬件平臺(tái)的結(jié)構(gòu),進(jìn)行了比較深入的了解。本文的研究旨在對(duì)嵌入式系統(tǒng)移植過(guò)程進(jìn)行熟悉和了解,因此在選用移植內(nèi)核時(shí),選用的是尚觀科技公司提供的2.6.13內(nèi)核,其中已經(jīng)包含了ARM平臺(tái)的BSP包,外圍器件相差不大,從而移植起來(lái)也相對(duì)比較容易。移植過(guò)程并沒(méi)有深入到太多的嵌入式移植的底層代碼部分,只是針對(duì)已有的2440的BSP包,對(duì)代碼進(jìn)行了適量的修改,在很多方面還有待繼續(xù)研究并不斷深化。

        [1] 周國(guó)運(yùn). ARM9嵌入式系統(tǒng)基礎(chǔ)教程[M]. 北京:人民郵電出版社,2010:1-5.

        [2] 孫繼坤, 張小全. 嵌入式Linux系統(tǒng)開(kāi)發(fā)設(shè)計(jì)詳解—基于ARM [M]. 北京:人民郵電出版社,2006:3-8.

        [3] 孟慶昌,牛欣源. Linux教程[M].北京:電子工業(yè)出版社,2007:1-6.

        [4] 楊建新,竇林卿.Red Hat Linux 9 入門(mén)與提高[M].北京:清華大學(xué)出版社,2006:5-9.

        [5] 王俊偉,吳俊海. Linux標(biāo)準(zhǔn)教程[M].北京:清華大學(xué)出版社,2006:5-15.

        [6] 李善平,劉文峰.王煥龍. Linux與嵌入式系統(tǒng)[M].北京:清華大學(xué)出版社,2006:2-5.

        Research and Implementation for Embedded Linux System Migration

        Tao Lin1, Zhang Yanan1, Yang Xinfeng2

        (1. Department of Electronic Information Engineering, Henan Polytechnic Institute, Nanyang 473004, China;2. School of Computer and Information Engineering, Nanyang Institute of Technology, Nanyang 473004, China)

        The paper mainly researches migrationes methods for BotLoader, Linux kernel and file system in embedded system of ARM and Linux. The microcontroller in target board is S3C2440, which kernel is ARM920T. The memorizer has 64M SDRAM, 64M Nand Flash and 2M Nor Flash. The board also integrates interfaces such as serial port, network card, mouse, keyboard, LCD, sound card, etc. Development environment is the Linux operating system installed under virtual machine platform software VMvare. cross-compiler development environment is constructed. On this Linux system is transplanted, which includes the transplant, configuration, compiling of U-Boot and Linux kernel,and the construction and compiling for the root file system.

        ARM platform; Boot Loader; Linux kernel; Root file system; Transplant

        1007-757X(2016)12-0012-03

        TP316

        A

        河南省科技攻關(guān)重點(diǎn)計(jì)劃項(xiàng)目(122102210563,132102210215);河南省高等學(xué)校重點(diǎn)科研項(xiàng)目計(jì)劃(15B520008)

        陶琳(1979-),女(漢),河南南陽(yáng)人,工程碩士,講師,研究方向:計(jì)算機(jī)應(yīng)用,南陽(yáng) 473003

        張亞楠(1984-),女(漢),河南省泌陽(yáng)人,工程碩士,講師,研究方向:計(jì)算機(jī)應(yīng)用,南陽(yáng) 473003

        楊新鋒(1979-),男(漢),河南南陽(yáng)人,碩士,副教授,研究方向:圖形圖像處理,南陽(yáng) 473003

        (2016.04.18)

        猜你喜歡
        源代碼內(nèi)核內(nèi)存
        人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于TXL的源代碼插樁技術(shù)研究
        “春夏秋冬”的內(nèi)存
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        軟件源代碼非公知性司法鑒定方法探析
        揭秘龍湖產(chǎn)品“源代碼”
        基于內(nèi)存的地理信息訪問(wèn)技術(shù)
        少妇特殊按摩高潮对白| 久久棈精品久久久久久噜噜| 丰满少妇人妻无码专区| 校花高潮一区日韩| 免费看片的网站国产亚洲| 欧美性高清另类videosex| 草草浮力地址线路①屁屁影院| 亚洲手机国产精品| 亚洲福利第一页在线观看| 国产精品成人av大片| 免费看男女做羞羞的事网站| 黄色成人网站免费无码av| 九九精品国产99精品| 99久久国产免费观看精品| 亚洲av无码久久精品色欲| 最近高清中文在线字幕观看| 中文字幕日韩熟女av| 麻神在线观看免费观看| 99热爱久久99热爱九九热爱| 免费啪啪视频一区| 国产性感丝袜美女av| 日韩精品第一区二区三区| 99久久国产综合精品女图图等你| 色欲av一区二区久久精品| 国产精品久久婷婷六月| 久久久久99精品成人片欧美| 野花社区视频www官网| 国产精品系列亚洲第一| 中文字幕一区二区人妻性色av| 精品无码国产自产拍在线观看| 欧美人与动人物牲交免费观看| 亚洲av成人一区二区三区色| 精品国产一区二区三区18p| 国产成人无码a区在线观看视频| 人妻丰满熟妇AV无码片| 在线观看国产自拍视频| 中文字幕精品一区二区精品| 激情亚洲一区国产精品| 免费观看成人稀缺视频在线播放| 青青草精品视频在线播放| 国产成人免费一区二区三区 |