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

歡迎訪問 生活随笔!

生活随笔

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

综合教程

系统移植的四大步骤

發布時間:2024/1/3 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 系统移植的四大步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學習系統移植的相關知識,在學習和調試過程中,發現了很多問題,也解決了很多問題,但總是對于我們的開發結果有一種莫名其妙的感覺,糾其原因,主要對于我們的開發環境沒有一個深刻的認識,有時候幾個簡單的命令就可以完成非常復雜的功能,可是我們有沒有想過,為什么會有這樣的效果?如果沒有去追問,只是機械地完成,并且看到實驗效果,這樣做其實并沒有真正的掌握系統移植的本質。
在做每一個步驟的時候,首先問問自己,為什么要這樣做,然后再問問自己正在做什么?搞明白這幾個問題,我覺得就差不多了,以后不管更換什么平臺,什么芯片,什么開發環境,你都不會迷糊,很快就會上手。對于嵌入式的學習方法,我個人方法就是:從宏觀上把握(解決為什么的問題),微觀上研究(解決正在做什么的問題),下面以自己學習的arm-cortex_a8開發板為目標,介紹下自己的學習方法和經驗。
嵌入式Linux系統移植主要由四大部分組成:
一、搭建交叉開發環境
二、bootloader的選擇和移植
三、kernel的配置、編譯、和移植
四、根文件系統的制作

第一部分:搭建交叉開發環境
先介紹第一分部的內容:搭建交叉開發環境,首先必須得思考兩個問題,什么是交叉環境? 為什么需要搭建交叉環境?
先回答第一個問題,在嵌入式開發中,交叉開發是很重要的一個概念,開發的第一個環節就是搭建環境,第一步不能完成,后面的步驟從無談起,這里所說的交叉開發環境主要指的是:在開發主機上(通常是我的pc機)開發出能夠在目標機(通常是我們的開發板)上運行的程序。嵌入式比較特殊的是不能在目標機上開發程序(狹義上來說),因為對于一個原始的開發板,在沒有任何程序的情況下它根本都跑不起來,為了讓它能夠跑起來,我們還必須要借助pc機進行燒錄程序等相關工作,開發板才能跑起來,這里的pc機就是我們說的開發主機,想想如果沒有開發主機,我們的目標機基本上就是無法開發,這也就是電子行業的一句名言:搞電子,說白了,就是玩電腦!
然后回答第二個問題,為什么需要交叉開發環境?主要原因有以下幾點:
原因1:嵌入式系統的硬件資源有很多限制,比如cpu主頻相對較低,內存容量較小等,想想讓幾百MHZ主頻的MCU去編譯一個Linux kernel會讓我們等的不耐煩,相對來說,pc機的速度更快,硬件資源更加豐富,因此利用pc機進行開發會提高開發效率。
原因2:嵌入式系統MCU體系結構和指令集不同,因此需要安裝交叉編譯工具進行編譯,這樣編譯的目標程序才能夠在相應的平臺上比如:ARM、MIPS、 POWEPC上正常運行。
交叉開發環境的硬件組成主要由以下幾大部分:
1.開發主機
2.目標機(開發板)
3.二者的鏈接介質,常用的主要有3中方式:(1)串口線 (2)USB線(3)網線
對應的硬件介質,還必須要有相應的軟件“介質”支持:
1.對于串口,通常用的有串口調試助手,putty工具等,工具很多,功能都差不多,會用一兩款就可以;
2.對于USB線,當然必須要有USB的驅動才可以,一般芯片公司會提供,比如對于三星的芯片,USB下載主要由DNW軟件來完成;
3.對于網線,則必須要有網絡協議支持才可以,常用的服務主要兩個
第一:tftp服務:
主要用于實現文件的下載,比如開發調試的過程中,主要用tftp把要測試的bootloader、kernel和文件系統直接下載到內存中運行,而不需要預先燒錄到Flash芯片中,一方面,在測試的過程中,往往需要頻繁的下載,如果每次把這些要測試的文件都燒錄到Flash中然后再運行也可以,但是缺點是:過程比較麻煩,而且Flash的擦寫次數是由限的;另外一方面:測試的目的就是把這些目標文件加載到內存中直接運行就可以了,而tftp就剛好能夠實現這樣的功能,因此,更沒有必要把這些文件都燒錄到Flash中去
第二:nfs服務:
主要用于實現網絡文件的掛載,實際上是實現網絡文件的共享,在開發的過程中,通常在系統移植的最后一步會制作文件系統,那么這是可以把制作好的文件系統放置在我們開發主機PC的相應位置,開發板通過nfs服務進行掛載,從而測試我們制作的文件系統是否正確,在整個過程中并不需要把文件系統燒錄到Flash中去,而且掛載是自動進行掛載的,bootload啟動后,kernel運行起來后會根據我們設置的啟動參數進行自動掛載,因此,對于開發測試來講,這種方式非常的方便,能夠提高開發效率。
另外,還有一個名字叫samba的服務也比較重要,主要用于文件的共享,這里說的共享和nfs的文件共享不是同一個概念,nfs的共享是實現網絡文件的共享,而samba實現的是開發主機上Windows主機和Linux虛擬機之間的文件共享,是一種跨平臺的文件共享,方便的實現文件的傳輸。
以上這幾種開發的工具在嵌入式開發中是必備的工具,對于嵌入式開發的效率提高做出了偉大的貢獻,因此,要對這幾個工具熟練使用,這樣你的開發效率會提高很多。等測試完成以后,就會把相應的目標文件燒錄到Flash中去,也就是等發布產品的時候才做的事情,因此對于開發人員來說,所有的工作永遠是測試。
通過前面的工作,我們已經準備好了交叉開發環境的硬件部分和一部分軟件,最后還缺少交叉編譯器,讀者可能會有疑問,為什么要用交叉編譯器?前面已經講過,交叉開發環境必然會用到交叉編譯工具,通俗地講就是在一種平臺上編譯出能運行在體系結構不同的另一種平臺上的程序,開發主機PC平臺(X86 CPU)上編譯出能運行在以ARM為內核的CPU平臺上的程序,編譯得到的程序在X86 CPU平臺上是不能運行的,必須放到ARM CPU平臺上才能運行,雖然兩個平臺用的都是Linux系統。相對于交叉編譯,平常做的編譯叫本地編譯,也就是在當前平臺編譯,編譯得到的程序也是在本地執行。用來編譯這種跨平臺程序的編譯器就叫交叉編譯器,相對來說,用來做本地編譯的工具就叫本地編譯器。所以要生成在目標機上運行的程序,必須要用交叉編譯工具鏈來完成。
這里又有一個問題,不就是一個交叉編譯工具嗎?為什么又叫交叉工具鏈呢?原因很簡單,程序不能光編譯一下就可以運行,還得進行匯編和鏈接等過程,同時還需要進行調試,對于一個很大工程,還需要進行工程管理等等,所以,這里 說的交叉編譯工具是一個由編譯器、連接器和解釋器組成的綜合開發環境,交叉編譯工具鏈主要由binutils(主要包括匯編程序as和鏈接程序ld)、gcc(為GNU系統提供C編譯器)和glibc(一些基本的C函數和其他函數的定義)3個部分組成。有時為了減小libc庫的大小,也可以用別的 c 庫來代替 glibc,例如 uClibc、dietlibc 和 newlib。
那么,如何得到一個交叉工具鏈呢?是從網上下載一個“程序”然后安裝就可以使用了嗎?回答這個問題之前先思考這樣一個問題,我們的交叉工具鏈顧名思義就是在PC機上編譯出能夠在我們目標開發平臺比如ARM上運行的程序,這里就又有一個問題了,我們的ARM處理器型號非常多,難道有專門針對我們某一款的交叉工具鏈嗎?若果有的話,可以想一想,這么多處理器平臺,每個平臺專門定制一個交叉工具鏈放在網絡上,然后供大家去下載,想想可能需要找很久才能找到適合你的編譯器,顯然這種做法不太合理,且浪費資源!因此,要得到一個交叉工具鏈,就像我們移植一個Linux內核一樣,我們只關心我們需要的東西,編譯我們需要的東西在我們的平臺上運行,不需要的東西我們不選擇不編譯,所以,交叉工具鏈的制作方法和系統移植有著很多相似的地方,也就是說,交叉開發工具是一個支持很多平臺的工具集的集合(類似于Linux源碼),然后我們只需從這些工具集中找出跟我們平臺相關的工具就行了,那么如何才能找到跟我們的平臺相關的工具,這就是涉及到一個如何制作交叉工具鏈的問題了。
通常構建交叉工具鏈有如下三種方法:
方法一 :分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈。該方法相對比較困難,適合想深入學習構建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用下列的方法二構建交叉工具鏈。
方法二:通過Crosstool-ng腳本工具來實現一次編譯,生成交叉編譯工具鏈,該方法相對于方法一要簡單許多,并且出錯的機會也非常少,建議大多數情況下使用該方法構建交叉編譯工具鏈。
方法三 :直接通過網上下載已經制作好的交叉編譯工具鏈。該方法的優點不用多說,當然是簡單省事,但與此同時該方法有一定的弊端就是局限性太大,因為畢竟是別人構建好的,也就是固定的,沒有靈活性,所以構建所用的庫以及編譯器的版本也許并不適合你要編譯的程序,同時也許會在使用時出現許多莫名其妙的錯誤,建議讀者慎用此方法。
crosstool-ng是一個腳本工具,可以制作出適合不同平臺的交叉編譯工具鏈,在進行制作之前要安裝一下軟件:
$ sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk
crosstool腳本工具可以在http://ymorin.is-a-geek.org/projects/crosstool下載到本地,然后解壓,接下來就是進行安裝配置了,這個配置優點類似內核的配置。主要的過程有以下幾點:
1.設定源碼包路徑和交叉編譯器的安裝路徑
2.修改交叉編譯器針對的構架
3.增加編譯時的并行進程數,以增加運行效率,加快編譯,因為這個編譯會比較慢。
4.關閉JAVA編譯器 ,減少編譯時間
5. 編譯
6. 添加環境變量
7. 刷新環境變量。
8. 測試交叉工具鏈
到此,嵌入式Linux系統移植四大部分的第一部分工作全部完成,接下來可以進行后續的開發了。

第二部分:bootloader的選擇和移植
一、Boot Loader 概念
就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核準備好正確的環境,他就是所謂的引導加載程序(Boot Loader)。

【圖1】Flash存儲中存放文件的分布圖

二、為什么系統移植之前要先移植BootLoader?
BootLoader的任務是引導操作系統,所謂引導操作系統,就是啟動內核,讓內核運行就是把內核加載到內存RAM中去運行,那先問兩個問題:第一個問題,是誰把內核搬到內存中去運行?第二個問題:我們說的內存是SDRAM,大家都知道,這種內存和SRAM不同,最大的不同就是SRAM只要系統上電就可以運行,而SDRAM需要軟件進行初始化才能運行,那么在把內核搬運到內存運行之前必須要先初始化內存吧,那么內存是由誰來初始化的呢?其實這兩件事情都是由bootloader來干的,目的是為內核的運行準備好軟硬件環境,沒有bootloadr我們的系統當然不能跑起來。

三、bootloader的分類。
首先更正一個錯誤的說法,很多人說bootloader就是U-boot,這種說法是錯誤的,確切來說是u-boot是bootloader的一種。也就是說bootloader具有很多種類,大概的分類如下圖所示:

【圖2】bootloader分類圖

由上圖可以看出,不同的bootloader具有不同的使用范圍,其中最令人矚目的就是有一個叫U-Boot的bootloader,是一個通用的引導程序,而且同時支持X86、ARM和PowerPC等多種處理器架構。U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目,是由德國DENX小組開發的用于多種嵌入式CPU的bootloader程序,對于Linux的開發,德國的u-boot做出了巨大的貢獻,而且是開源的。
u-boot具有以下特點:

① 開放源碼;
② 支持多種嵌入式操作系統內核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS;
③ 支持多個處理器系列,如PowerPC、ARM、x86、MIPS、XScale;
④ 較高的可靠性和穩定性;
⑤ 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發布等;
⑥ 豐富的設備驅動源碼,如串口、以太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;
⑦ 較為豐富的開發調試文檔與強大的網絡技術支持;
其實,把u-boot可以理解為是一個小型的操作系統。

四、u-boot的目錄結構
* board 目標板相關文件,主要包含SDRAM、FLASH驅動;
* common 獨立于處理器體系結構的通用代碼,如內存大小探測與故障檢測;
* cpu 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件;
* driver 通用設備驅動,如CFI FLASH驅動(目前對INTEL FLASH支持較好)
* doc U-Boot的說明文檔;
* examples可在U-Boot下運行的示例程序;如hello_world.c,timer.c;
* include U-Boot頭文件;尤其configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件;
* lib_xxx 處理器體系相關的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結構相關的文件;
* net 與網絡功能相關的文件目錄,如bootp,nfs,tftp;
* post 上電自檢文件目錄。尚有待于進一步完善;
* rtc RTC驅動程序;
* tools 用于創建U-Boot S-RECORD和BIN鏡像文件的工具;

五、u-boot的工作模式
U-Boot的工作模式有啟動加載模式和下載模式。啟動加載模式是Bootloader的正常工作模式,嵌入式產品發布時,Bootloader必須工作在這種模式下,Bootloader將嵌入式操作系統從FLASH中加載到SDRAM中運行,整個過程是自動的。下載模式就是Bootloader通過某些通信手段將內核映像或根文件系統映像等從PC機中下載到目標板的SDRAM中運行,用戶可以利用Bootloader提供的一些令接口來完成自己想要的操作,這種模式主要用于測試和開發。

六、u-boot的啟動過程
大多數BootLoader都分為stage1和stage2兩大部分,U-boot也不例外。依賴于cpu體系結構的代碼(如設備初始化代碼等)通常都放在stage1且可以用匯編語言來實現,而stage2則通常用C語言來實現,這樣可以實現復雜的功能,而且有更好的可讀性和移植性。
1、 stage1(start.s代碼結構)
U-boot的stage1代碼通常放在start.s文件中,它用匯編語言寫成,其主要代碼部分如下:
(1) 定義入口。由于一個可執行的image必須有一個入口點,并且只能有一個全局入口,通常這個入口放在rom(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器腳本來完成。
(2)設置異常向量(exception vector)。
(3)設置CPU的速度、時鐘頻率及中斷控制寄存器。
(4)初始化內存控制器 。
(5)將rom中的程序復制到ram中。
(6)初始化堆棧 。
(7)轉到ram中執行,該工作可使用指令ldrpc來完成。
2、 stage2(C語言代碼部分)
lib_arm/board.c中的start armboot是C語言開始的函數,也是整個啟動代碼中C語言的主函數,同時還是整個u-boot(armboot)的主函數,該函數主要完成如下操作:
(1)調用一系列的初始化函數。
(2)初始化flash設備。
(3)初始化系統內存分配函數。
(4)如果目標系統擁有nand設備,則初始化nand設備。
(5)如果目標系統有顯示設備,則初始化該類設備。
(6)初始化相關網絡設備,填寫ip,c地址等。
(7)進入命令循環(即整個boot的工作循環),接受用戶從串口輸入的命令,然后進行相應的工作。

七、基于cortex-a8的s5pc100bootloader啟動過程分析
s5pc100支持兩種啟動方式,分別為USB啟動方式和NandFlash啟動方式:
1.S5PC100 USB啟動過程
[1] A8 reset, 執行iROM中的程序
[2] iROM中的程序根據S5PC100的配置管腳(SW1開關4,撥到4對面),判斷從哪里啟動(USB)
[3] iROM中的程序會初始化USB,然后等待PC機下載程序
[4] 利用DNW程序,從PC機下載SDRAM的初始化程序到iRAM中運行,初始化SDRAM
[5] SDRAM初始化完畢,iROM中的程序繼續接管A8, 然后等待PC下載程序(BootLoader)
[6] PC利用DNW下載BootLoader到SDRAM
[7] 在SDRAM中運行BootLoader

2.S5PC100 Nandflash啟動過程
[1] A8 reset, 執行IROM中的程序
[2] iROM中的程序根據S5PC100的配置管腳(SW1開關4,撥到靠4那邊),判斷從哪里啟動(Nandflash)
[3] iROM中的程序驅動Nandflash
[4] iROM中的程序會拷貝Nandflash前16k到iRAM
[5] 前16k的程序(BootLoader前半部分)初始化SDRAM,然后拷貝完整的BootLoader到SDRAM并運行
[6] BootLoader拷貝內核到SDRAM,并運行它
[7] 內核運行起來后,掛載rootfs,并且運行系統初始化腳本

八、u-boot移植(基于cortex_a8的s5pc100為例)
1.建立自己的平臺
(1).下載源碼包2010.03版本,比較穩定
(2).解壓后添加我們自己的平臺信息,以smdkc100為參考版,移植自己s5pc100的開發板
(3).修改相應目錄的文件名,和相應目錄的Makefile,指定交叉工具鏈。
(4).編譯
(5).針對我們的平臺進行相應的移植,主要包括修改SDRAM的運行地址,從0x20000000
(6).“開關”相應的宏定義
(7).添加Nand和網卡的驅動代碼
(8).優化go命令
(9).重新編譯 make distclean(徹底刪除中間文件和配置文件) make s5pc100_config(配置我們的開發板) make(編譯出我們的u-boot.bin鏡像文件)
(10).設置環境變量,即啟動參數,把編譯好的u-boot下載到內存中運行,過程如下:
1. 配置開發板網絡
ip地址配置:
$setenv ipaddr 192.168.0.6 配置ip地址到內存的環境變量
$saveenv 保存環境變量的值到nandflash的參數區

網絡測試:
在開發開發板上ping虛擬機:
$ ping 192.168.0.157(虛擬機的ip地址)

如果網絡測試失敗,從下面幾個方面檢查網絡:
1. 網線連接好
2. 開發板和虛擬機的ip地址是否配置在同一個網段
3. 虛擬機網絡一定要采用橋接(VM--Setting-->option)
4. 連接開發板時,虛擬機需要設置成靜態ip地址

2. 在開發板上,配置tftp服務器(虛擬機)的ip地址
$setenv serverip 192.168.0.157(虛擬機的ip地址)
$saveenv
3. 拷貝u-boot.bin到/tftpboot(虛擬機上的目錄)
4. 通過tftp下載u-boot.bin到開發板內存
$ tftp 20008000(內存地址即可) u-boot.bin(要下載的文件名)

如果上面的命令無法正常下載:
1. serverip配置是否正確
2. tftp服務啟動失敗,重啟tftp服務
#sudo service tftpd-hpa restart

5. 燒寫u-boot.bin到nandflash的0地址
$nand erase 0(起始地址) 40000(大小) 擦出nandflash 0 - 256k的區域
$nand write 20008000((緩存u-boot.bin的內存地址) 0(nandflash上u-boot的位置) 40000(燒寫大小)

6. 切換開發板的啟動方式到nandflash
1. 關閉開發板
2. 把SW1的開關4撥到4的那邊
3. 啟動開發板,它就從nandflash啟動

第三部分:kernel的配置、編譯、和移植

一、將下載好的linux-2.6.35.tar.bz2拷貝到主目錄下解壓

二、修改頂層目錄下的Makefile,主要修改平臺的體系架構和交叉編譯器,代碼如下:
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
修改以上代碼為:
ARCH ?= arm ---->體系架構是arm架構
CROSS_COMPILE ?= arm-cortex_a8-linux-gnueabi- ---->交叉編譯器是arm-cortex_a8平臺的
注意:這兩個變量值會直接影響頂層Makefile的編譯行為,即選擇編譯哪些代碼,用什么編譯器進行編譯。

三、拷貝標準版配置文件,目的是得到跟我們開發板相關的配置信息。

$ cp arch/arm/configs/s5pc100_defconfig .config
這里拷貝arch/arm/configs/s5pc100_defconfig到 .config文件是選取跟我們開發板相關的代碼。因為Linux支持的平臺非常非常多,不僅僅是ARM處理器,當然我們編譯的時候只需要編譯跟我們平臺相關的代碼就可以了,平臺相關的不需要編譯,那么就有個問題,Linux系統中的源代碼文件有一萬多以個,面對這么龐大的文件數量,我們如何去選擇呢?
其實,我們擔心的問題也是寫操作系統的那哥們早就擔心過的問題了,只不過人家已經把這個問題幫我們解決了,我們只需進行很簡單的操作,就可以選擇出我們要編譯的代碼,具體的方法就是把相應平臺的_deconfig直接拷貝到頂層目錄的.config文件中,這樣.config文件中就記錄了我們要移植平臺的平臺信息,因為在配置內核時,系統會把所有的配置信息都保存在頂層目錄的.config文件中。注意在第一次,進行make menuconfig時,系統會根據我們選取的平臺信息自動選取相關的代碼和模塊,因此我們只需要進入然后再退出,選擇保存配置信息就行了,系統會把這些跟我們移植平臺相關的所有配置信息全部保存在頂層目錄的.config文件中。

四、配置內核
$make menuconfig
注意:第一次進去,不做任何操作,直接推出,在推出時提示是否保存配置信息,一定要保存配置信息,點擊“YES”。這樣我們的.config中就已經保存了我們開發平臺的信息。
在這個環節,我們需要關心一個問題,make menuconfig時,系統到低都做了哪些事情?為什么會出現圖形化的界面?圖形化的界面中的相關內容是從哪里來的?
圖形化的界面當然是由一個特殊的圖形庫來實現的,還記得第一次make menuconfig時,系統并沒有出現圖形化的界面,而是報錯了,并且提示我們缺少 ncurses-devel ,此時只需要按照要求安裝一個libncurses5-dev就行了,sudo apt-get install libncurses5-dev,有了這個圖形化庫的支持,我們才能夠正常顯示圖形化界面。
好了,圖形化界面的問題解決了,那還有另外一個問題就是圖形化界面里面的內容是從哪里來的?要回答這個問題,我們就要提一下Linux內核的設計思想了,Linux 內核是以模塊的方式來組織這個操作系統的,那么,為什么要用模塊的方式來組織呢?模塊的概念又是什么呢?在此來一一回答這個問題。
Linux2.6內核的源碼樹目錄下一般都會有兩個文件:Kconfig和Makefile。分布在各目錄下的Kconfig構成了一個分布式的內核配置數據庫,每個Kconfig分別描述了所屬目錄源文件相關的內核配置菜單。每個目錄都會存放功能相對獨立的信息,在每個目錄中會存放各個不同的模塊信息,比如在/dev/char/目錄下就存放了所有字符設備的驅動程序,而這些程序代碼在內核中是以模塊的形式存在的,也就是說當系統需要這個驅動的時候,會把這個驅動以模塊的方式編譯到系統的內核中,編譯分為靜態編譯和動態編譯,靜態編譯內核體積比動態編譯的體積要大,前面已經說了每個目錄下面都會有一個Kconfig的文件,我們還會問,這個文件中都存放了什么信息?前面說了,每個目錄的Kconfig文件描述了所屬目錄源文件相關的內核配置菜單,有其特殊的語法格式,圖形化界面的文字正是從這個文件中讀取出來的,如果把這個文件中的相應目錄文件的信息全部刪除,那么在圖形化界面中將看不到該模塊的信息,因此也不能進行模塊的配置。
在內核配置make menuconfig(或xconfig等)時,系統會自動從Kconfig中讀出配置菜單,用戶配置完后保存到.config(在頂層目錄下生成)中。在內核編譯時,主Makefile調用這個.config,(.config的重要性就體現在,它保存了我們的所有的配置信息,是我們選取源代碼并且進行編譯源代碼的最終依據?。?!)就知道了用戶對內核的配置情況。上面的內容說明:Kconfig就是對應著內核的配置菜單。假如要想添加新的驅動到內核的源碼中,可以通過修改Kconfig來增加對我們驅動的配置菜單,這樣就有途徑選擇我們的驅動,假如想使這個驅動被編譯,還要修改該驅動所在目錄下的Makefile。因此,一般添加新的驅動時需要修改的文件有兩種,即:Kconfig 和相應目錄的Makefile(注意不只是兩個),系統移植的重要內容就是給內核添加和刪除相應的模塊,因此主要修改的內核文件就是Kconfig 和相應目錄的Makefile這兩個文件。

五、編譯內核
$make zImage
通過上述操作我們能夠在 arch/arm/boot 目錄下生成一個 zImage 文件,這就是經過壓縮的內核鏡像。
內核的編譯過程是非常復雜的,注意這里的編譯是靜態編譯,此時會執行頂層目錄下的Makefile中的zImage命令,在執行的過程中,會根據當前目錄的.config文件去選擇編譯源代碼。編譯內核的具體步驟比較復雜,有時間會另寫文章詳細描述。

六、通過tftp網絡服務下載測試內核
setenv bootcmd tftp 20008000(內存地址) zImage;go 20008000
setenv bootargs nfs nfsroot=192.168.1.199(虛擬機的ip):/source/rootfs ip=192.168.1.200(開發板的ip)init=/linuxrc(第一個要啟動的用戶進程) ttySAC0,115200(設置中斷為串口1,波特率為:115200)
保存環境變量,復位開發板,測試是否能夠正常啟動(注意:在此之前應設置好需要nfs掛載的文件系統,最后才能看到效果).內核測試和啟動過程也是比較復雜的,在后續的文章中會詳細介紹。

第四部分:根文件系統的介紹
由本文的第一張圖:Flash存儲中存放文件的分布圖可知,文件系統的制作和移植是系統移植的最后一道工序了,在這里首先要提幾個問題:
1.什么是文件系統?
2.如何實現文件系統?
3.常用的文件系統有哪些?為什么需要這些文件系統?
下面來一一回答這些問題:

文件系統我們在日常生活中則很少聽說,但是它確實存在,只是名字不叫文件系統罷了,一般叫資料庫。資料庫里面的文件眾多,我們如何快速準確的找到我們要的那份文件呢?資料庫采用了分類索引的方法來實現快速查找。類似于我們學校圖書館的管理方式,一樓可能是哲學類,二樓是社科類的,三樓是電子類的,四樓是計算機類的…………等等,我們把這種進行了分類索引的資料庫叫文件系統。
對于計算機而言,文件其實就是資料數據,只能存儲在物理介質上面,比如:硬盤,但是我們人不可能自己讀取物理介質上的文件,或者自己把文件寫入物理介質,物理介質上文件的讀寫只能采用程序來完成,為了方便實現,程序又被分成了物理介質驅動程序、內容存儲程序和文件內容存儲程序。物理介質驅動程序專門用于從物理介質上存取數據;內容存儲程序用于把文件內容和文件屬性信息打包;文件內容存儲程序用于把用戶輸入形成文件內容,或者取得文件內容顯示出來。

我們可以把一個文件系統(倒樹)分解成多個文件系統(倒樹)分別存放到存儲介質上,比如:一個存儲到光盤里,一個存儲到硬盤中,在使用時,我們把光盤里的文件系統的根目錄掛到硬盤文件系統的一個目錄下面,這樣訪問這個目錄就相當于是訪問光盤的根目錄了,找到了根目錄,我們也就可以訪問整個光盤上的文件系統了。

“在Linux系統中一切皆是文件”這句話是我們學習Linux系統的時候常常聽到的一句話。雖然有些夸張,但是它揭示了文件系統對于Linux系統的重要性;實際上文件系統對于所有的操作系統都很重要,因為它們把大部分的硬件設備和軟件數據以文件的形式進行管理。Linux系統對設備和數據的管理框架圖如下:

【圖3】文件系統實現

[說明]

A.VFS(virtualfilesystem)是虛擬文件系統,它管理特殊文件(虛擬文件)、磁盤文件和設備文件

B.fs_operations結構是由一系列文件操作接口函數組成,由文件系統層來完成,為VFS提供文件操作;

C.在文件系統層,磁盤文件要實現各種文件系統(如:ext2),設備文件要實現各種抽象的設備驅動

D.在設備驅動層,磁盤驅動要實現各種磁盤的驅動程序,其他設備驅動要實現具體的設備驅動

E.物理層就是設備自身


為什么會有不同的文件類型?

由于存儲介質有很多種,所以沒有辦法用一種統一的格式存放文件系統到各種不同的存儲介質上,而是需要多種不同的存儲格式來適應各種存儲介質的特性,以求達到存取效率和空間利用率的最優化,這樣就需要對每種存儲格式制定一個規范,這寫規范就叫文件系統類型。常見的文件系統類型有:
1.Dos
FAT16
2.windows
FAT16、FAT32、NTFS
3.Linux
Minix、ext、ext2 、ext3 、ISO9660 、jffs2, yaffs, yaffs2、cramfs, romfs, ramdisk, rootfs、proc、sysfs、usbfs、devpts、 tmpfs & ramfs、 NFS

由此可見,Linux支持的文件系統最多。以不同的介質來分類,如下所示:
? 磁盤
FAT16、 FAT16、FAT32、NTFS、ext、ext2 、ext3、Minix
? 光盤
ISO9660、
? Flash
jffs2, yaffs, yaffs2、cramfs, romfs
? 內存
Ramdisk、tmpfs & ramfs
? 虛擬
rootfs、proc、sysfs、usbfs、devpts、NFS

常用的存儲介質理論上都可以用于存儲Linux支持的文件系統;因為我們這里只研究嵌入式系統,而嵌入式系統由于體積和移動特性的限制,不能采用磁盤和光盤,所以只能采用flash類的存儲設備、內存和虛擬存儲設備作為文件系統的存儲介質;

flash芯片的驅動程序是由系統來提供,所以它的存取特點完全是flash自身的特點,這時最好有更加適合flash的文件系統——Jffs、Yaffs、Cramfs和Romfs。這些文件系統都是嵌入式Linux系統中常用的文件系統,可以根據特點來選擇使用它們,特點如下:
共同點
基于MTD驅動
Jffs
A.針對NOR Flash的實現
B.基于哈希表的日志型文件系統
C.采取損耗平衡技術,每次寫入時都會盡量使寫入的位置均勻分布
D.可讀寫,支持數據壓縮
E.崩潰/掉電安全保護
F.當文件系統已滿或接近滿時,因為垃圾收集的關系,運行速度大大放慢
Yaffs
A.針對Nand Flash的實現
B.日志型文件系統
C.采取損耗平衡技術,每次寫入時都會盡量使寫入的位置均勻分布
D.可讀寫,不支持數據壓縮
E.掛載時間短,占用內存小
F.自帶Nandflash驅動,可以不使用VFS和MTD
Cramfs
A.單頁壓縮,支持隨機訪問,壓縮比高達2:1
B.速度快,效率高
C.只讀,有利于保護文件系統免受破壞,提高了系統的可靠性,但是無法對其內容進行擴充
Romfs
A.簡單的、緊湊的、只讀的文件系統
B.順序存放數據,因而支持應用程序以XIP(execute In Place,片內運行)方式運行,在系統運行時,節省RAM空間

特有的文件系統類型:Ramdisk文件系統
在Linux系統中,內存經常用于存儲文件系統,這種叫做Ramdisk,Ramdisk有兩種,一種是完全把內存看成物理存儲介質,利用內存模擬磁盤,運用磁盤的文件系統類型;另一種只是在內存中存儲了文件系統邏輯結構,運用tmpfs&ramfs文件系統類型:
tmpfs & ramfs
1.概述
用物理內存模擬磁盤分區,掛載這種分區后,就可以跟讀寫磁盤文件一樣讀寫這里面的文件,但是操作速度要比磁盤文件快得多;所以一般應用在下面幾個方面:
1)讀寫速度要求快的文件應該放在這種文件系統中
2)磁盤分區為flash的情況下,把需要經常讀寫的文件放在這種文件系統中,然后定期寫回flash
3)系統中的臨時文件,如/tmp、/var目錄下的文件應該放在這種文件系統中
4)/dev設備文件(因為設備文件隨驅動和設備的加載和卸載而變化),應該放在這種文件系統中
2.特點
1)由于數據都存放在物理內存中,所以系統重啟后,這個文件系統中的數據會全部丟失
2)ramfs在沒有指定最大的大小值情況下,會自動增長,直到用掉系統中所有的物理內存為止,這時會導致系統的崩潰,建議掛載時最好限定其最大的大小值
3)tmpfs如果指定了大小值,自動增長至大小值后,系統會限定它的大??;這個文件系統占用的物理內存頁可以背置換到swap分區,但是ramfs不行

不同的文件系統具有不同的制作方法,有的比較復雜,有的比較簡單,在此由于篇幅限制,先不做介紹,在后續的文章中會單獨介紹文件系統的制作。

總結

以上是生活随笔為你收集整理的系统移植的四大步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

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

欧美日韩国产二区三区 | 中日韩免费视频 | 9999在线视频| 这里只有精彩视频 | www毛片com| 中文字幕日韩有码 | 久久久久久久网 | av理论电影 | 免费在线成人av电影 | 国产成人在线综合 | 91视频免费视频 | 久久婷婷亚洲 | 天天射综合 | 日韩av视屏 | 国产一区精品在线观看 | 国产人成一区二区三区影院 | 天天干天天插 | 国产精品爽爽爽 | 国产精品99久久免费黑人 | 日韩在线首页 | 97香蕉久久超级碰碰高清版 | 国产999精品久久久久久绿帽 | 国产美女在线观看 | 国产精品成人aaaaa网站 | 国产精品美女久久久久久 | 久久老司机精品视频 | 日本大尺码专区mv | 91视频高清完整版 | 国产精品婷婷午夜在线观看 | 国产最新视频在线观看 | 91亚洲夫妻| 欧美国产日韩在线视频 | 天天爱天天射 | 中文字幕免费在线 | 国产资源在线观看 | 久久er99热精品一区二区 | 亚洲理论影院 | 天天色天天射天天干 | 日韩视频在线不卡 | 国产精品美女视频 | 久久激情久久 | 日韩在线色视频 | 国产免费xvideos视频入口 | 天天天操操操 | 欧美成人亚洲成人 | 亚洲精品系列 | 亚洲人成精品久久久久 | 91丝袜美腿| 天天草视频 | 色欧美88888久久久久久影院 | 国产成人一区二区三区免费看 | 中国黄色一级大片 | 蜜臀av网址 | 三级a毛片 | 九九九热精品免费视频观看网站 | 91av原创| 91视频在线免费观看 | 国产专区精品视频 | 国产亚洲综合在线 | 久久久久国产成人精品亚洲午夜 | 成人欧美一区二区三区黑人麻豆 | 在线观看亚洲国产 | 九九热中文字幕 | 成人综合婷婷国产精品久久免费 | 日韩激情小视频 | 日韩激情免费视频 | 国产又粗又猛又黄又爽 | 天天鲁一鲁摸一摸爽一爽 | 91人人澡人人爽人人精品 | 国产精品高清在线 | 精品久久久久久久久久久院品网 | 久久久一本精品99久久精品 | 国产99一区视频免费 | 涩涩网站在线 | 久久99国产精品久久 | 亚洲精品乱码久久久一二三 | 欧美极品裸体 | 在线免费观看国产 | 免费观看国产成人 | 91在线porny国产在线看 | 国产一级一片免费播放放 | 91中文在线| 国产又粗又猛又爽又黄的视频免费 | 日韩区在线观看 | 国产精品免费久久久久影院仙踪林 | 最近2019好看的中文字幕免费 | 免费网站v | 人人干干人人 | www.国产毛片| 九九九电影免费看 | 久草视频在线新免费 | 久草在线欧美 | 久热久草 | 久久久999| 中文字幕人成人 | 欧美性精品 | 欧美性久久久久久 | 久久精品观看 | 在线免费91 | 日韩av一区二区在线影视 | 中文字幕免费高清在线观看 | 免费视频三区 | 三级视频国产 | 9999在线 | 色综合久久久网 | 国产免费又爽又刺激在线观看 | 91污在线| 青青河边草免费视频 | 香蕉久久久久久av成人 | 成人精品一区二区三区电影免费 | 欧美日在线观看 | 精精国产xxxx视频在线播放 | 日韩精品一区二区三区三炮视频 | 日日成人网 | 911国产 | 18+视频网站链接 | 天天亚洲 | 亚洲成人免费在线观看 | 日韩亚洲在线 | 日韩免费大片 | 人人超在线公开视频 | 日韩欧美一区二区三区视频 | 国产视频一区在线播放 | www.国产毛片 | 久草在线视频首页 | 欧美激情视频一区二区三区免费 | 久久国产成人午夜av影院潦草 | 五月激情亚洲 | 免费看色网站 | 精品国产一区二区在线 | 夜夜爽www | 久久久久免费精品国产 | 成人午夜在线观看 | 亚洲影院色 | 中文字幕乱视频 | 成人午夜精品久久久久久久3d | 五月婷婷综合在线视频 | 99久久精品国产系列 | 国产精品毛片久久久久久久久久99999999 | 超碰激情在线 | 成人久久电影 | 亚洲国产视频在线 | 欧美日韩超碰 | 色中文字幕在线观看 | 美女国产网站 | 99免在线观看免费视频高清 | 91精品在线播放 | 欧美精品国产精品 | 午夜10000 | 日韩精选在线 | 国产大片黄色 | 四虎永久免费网站 | 亚洲精品456在线播放乱码 | 又湿又紧又大又爽a视频国产 | 亚洲精品色婷婷 | 久久久久久久av麻豆果冻 | 91视频免费网址 | 成人黄色av免费在线观看 | 久久一二三四 | 成人影片在线免费观看 | 一区二区三区在线观看中文字幕 | 久久精品免费观看 | 久久久免费精品 | 国产一级性生活视频 | 久99久中文字幕在线 | 在线观看视频99 | 在线国产日本 | 国产偷v国产偷∨精品视频 在线草 | 日韩中文字幕第一页 | 亚洲视频在线观看免费 | 久久国产影视 | 最近最新mv字幕免费观看 | 在线观看日韩免费视频 | 黄色小说视频网站 | 久久精品国产精品亚洲精品 | 久久久久久久久久久影院 | 国产中文字幕久久 | 黄色大片视频网站 | 99久久精品国产免费看不卡 | 超级av在线 | 黄色av网站在线观看 | 麻豆va一区二区三区久久浪 | 中文字幕乱偷在线 | 99r精品视频在线观看 | 91精品婷婷国产综合久久蝌蚪 | 成人小视频在线观看免费 | 国产精品人人做人人爽人人添 | 中文字幕免费不卡视频 | 91福利免费 | 91网页版在线观看 | 超碰公开在线 | 日韩a在线播放 | 日日干天天 | 黄色在线观看www | 国产一级免费观看 | 欧美日韩视频精品 | 成人免费毛片aaaaaa片 | 激情狠狠干 | 99久在线精品99re8热视频 | 激情欧美一区二区三区免费看 | 日韩国产精品久久 | 91麻豆免费看 | 免费观看久久久 | 亚洲va综合va国产va中文 | 久人人| 国产一区观看 | 欧美国产一区在线 | 久久成人国产精品入口 | 久久久国产精品亚洲一区 | 五月综合网站 | 91av国产视频 | 国产福利在线 | 天天爱天天操天天爽 | 中文一二区 | 色婷婷精品大在线视频 | 欧美日韩不卡在线视频 | 日韩免费视频播放 | 国产精品乱码久久久 | 99精品欧美一区二区蜜桃免费 | 久久视频国产精品免费视频在线 | 欧美一级网站 | 成人欧美一区二区三区黑人麻豆 | 亚洲精品美女久久久久 | 天天摸夜夜操 | 美女在线观看网站 | 丁香婷婷激情国产高清秒播 | 人人爱在线视频 | 99精品国产成人一区二区 | 久久av观看| 色九九在线| 久久免费看av | 黄色av网站在线观看免费 | 成年人视频在线观看免费 | 色婷婷播放 | 成人a级黄色片 | 美女网站色 | 成人亚洲精品国产www | 国产精品一区二区免费看 | 国产福利免费看 | 久久久久欧美精品999 | 国产精品久久久久影院日本 | 亚洲精区二区三区四区麻豆 | 黄色录像av | а天堂中文最新一区二区三区 | 婷婷午夜天 | 最新不卡av| 九九久久影视 | 欧美一区二区三区在线视频观看 | 91九色porny在线 | 国产不卡在线观看 | 91精品国产成人 | 亚洲理论在线观看电影 | 国产另类xxxxhd高清 | 色综合天天综合网国产成人网 | 91视频免费看 | 日韩91精品 | 天天色天天草天天射 | 亚洲男男gaygay无套 | 黄色一级性片 | 99久久这里有精品 | 色天天综合久久久久综合片 | 国产视频日韩视频欧美视频 | 亚洲黄色影院 | 久久精品视频在线观看免费 | 国色综合| 9999毛片 | 国产网红在线观看 | 久久精精品视频 | 中文字幕久久精品一区 | 久久久久久久久久久高潮一区二区 | 波多野结衣最新 | 久久精品导航 | 日韩av中文字幕在线免费观看 | 美女网站在线观看 | www.操.com| 96精品在线 | 夜夜嗨av色一区二区不卡 | 精品国产一区二区三区免费 | 国产精品成人国产乱 | 一区二区三区国产欧美 | 国产在线视频一区 | 福利一区二区三区四区 | 欧美午夜精品久久久久 | 欧美成年网站 | 午夜久久久久久久 | 91成人精品国产刺激国语对白 | 激情图片区 | 日韩a欧美| 成人av av在线 | ,午夜性刺激免费看视频 | 日韩精品播放 | 国产精品欧美日韩在线观看 | 亚洲成人二区 | 成人av手机在线 | 一区二区观看 | 亚洲第一伊人 | 久久综合九色综合97_ 久久久 | 欧美成人一区二区 | 日韩在线网址 | 亚洲天天摸日日摸天天欢 | 欧美日韩视频 | 亚洲成人av一区 | caobi视频 | 色狠狠综合天天综合综合 | 草久在线观看 | 亚洲日本va在线观看 | 天天操 夜夜操 | 一级片黄色片网站 | 精品国产乱码久久久久久浪潮 | 一区二区久久 | 久久久久久久久久影院 | av黄色成人 | 国产精品免费在线视频 | 天天色天天操综合网 | 亚洲五月激情 | 日本久久久影视 | 伊人资源站 | 在线之家免费在线观看电影 | 夜色.com| 日韩一区二区三 | 午夜一级免费电影 | 中文字幕 第二区 | 亚洲精品1区2区3区 超碰成人网 | 亚洲黄色免费电影 | 国产精品嫩草69影院 | 日韩a级黄色 | 国产精品午夜久久久久久99热 | 黄色官网在线观看 | 三级黄色网址 | a'aaa级片在线观看 | 在线 视频 一区二区 | av黄色国产| 欧美一级特黄aaaaaa大片在线观看 | 久久影院亚洲 | 91成人精品一区在线播放 | 亚洲国产伊人 | 99日韩精品 | 在线观看av小说 | 欧美片网站yy | 又黄又爽又无遮挡的视频 | 国产精品一区二区三区四 | 国产成人av片 | av网址aaa| 97超碰在线资源 | 全久久久久久久久久久电影 | 美女黄久久 | 97国产| 天天干,天天射,天天操,天天摸 | 黄色小说在线免费观看 | 五月婷激情 | 久久精品9 | 亚洲精品视频www | av官网在线 | 超碰97国产在线 | 色欧美88888久久久久久影院 | 97人人艹 | 在线观看免费 | 成人宗合网 | 国产91粉嫩白浆在线观看 | 日韩国产高清在线 | 日韩精品中文字幕在线 | 在线观看亚洲精品视频 | av在线色| 国产中年夫妇高潮精品视频 | 国产精品免费一区二区 | 最新的av网站 | 91免费高清视频 | 91完整版在线观看 | 麻豆av电影 | 在线观看的av网站 | www.狠狠| 五月天亚洲激情 | 久久精品直播 | 国产中文字幕免费 | 婷婷综合五月天 | 在线免费性生活片 | 91在线免费看片 | 午夜精品久久久久久 | 在线 国产一区 | www.色五月.com | 四虎国产精品成人免费影视 | 亚洲永久精品国产 | 成年人免费看的视频 | 六月婷婷久香在线视频 | 最新日韩视频 | jizzjizzjizz亚洲 | 免费日韩高清 | 成人av在线亚洲 | 久久久影院官网 | 最近高清中文在线字幕在线观看 | 国产无遮挡又黄又爽在线观看 | 亚洲一级理论片 | 久久免费视频在线 | 日黄网站| 中文有码在线视频 | 国产精品永久在线 | 中文字幕在线观看第三页 | 五月婷婷视频在线观看 | 亚洲最大成人免费网站 | 不卡的av在线播放 | 五月天电影免费在线观看一区 | 国产一区二区三区免费在线 | 香蕉视频在线免费 | 久久 亚洲视频 | 91精品老司机久久一区啪 | 久久美女高清视频 | 国产亚洲精品久久久久久 | 日韩字幕在线观看 | 国产精品日韩久久久久 | 亚洲另类在线视频 | av片在线观看 | 少妇bbbb揉bbbb日本 | 国产91丝袜在线播放动漫 | 五月天国产精品 | 91久久国产自产拍夜夜嗨 | 黄色精品视频 | 国内久久久 | 黄色精品久久久 | 天天综合网在线 | 91精品爽啪蜜夜国产在线播放 | 国产99久久99热这里精品5 | 91一区二区三区久久久久国产乱 | 久热超碰 | 成人av在线亚洲 | 国产精品久久久久999 | 欧美在线1区 | 91麻豆产精品久久久久久 | 国产成人精品一区二区三区在线 | 久久免费在线视频 | 在线电影日韩 | 很黄很污的视频网站 | 日韩精品一区二区免费 | 不卡av在线 | 操高跟美女 | 日韩在线视频一区 | 国产伦精品一区二区三区无广告 | 天天操天天干天天玩 | 免费观看一区二区 | 中文字幕资源网 | 亚洲黄色app | 亚洲综合国产精品 | 久久超碰99| 一级免费av | 99久久精品国 | 日韩精品免费专区 | 91porny九色在线播放 | 99色视频| 亚洲精品乱码久久久久v最新版 | 91欧美精品 | 天天爽天天碰狠狠添 | 99精品一级欧美片免费播放 | 美女网站视频色 | 麻豆免费视频 | 婷婷五月情 | 精品1区二区 | 国产精品视频一二三 | 免费成人av电影 | 99在线观看免费视频精品观看 | 国产视频黄 | 久久精品—区二区三区 | 日韩资源在线观看 | 欧美日韩国产一二三区 | 日韩成人免费观看 | 91av视频导航 | aa级黄色大片| 亚洲精品婷婷 | 天天干天天做 | 黄色大片国产 | 日韩成人中文字幕 | 精品在线免费观看 | 午夜精品一区二区三区视频免费看 | 国产91aaa | 超碰人人草人人 | 免费看一级特黄a大片 | 精品久久久久_ | 欧美国产亚洲精品久久久8v | www.97视频 | 久久亚洲精品电影 | 亚洲免费观看视频 | 欧美日韩在线视频一区 | 国产精品免费看久久久8精臀av | 日韩中文字幕亚洲一区二区va在线 | 91视频久久久 | 久久视频精品在线观看 | 国产高清第一页 | 一区二区三区在线看 | 狠狠做深爱婷婷综合一区 | 中文字幕在线观看的网站 | 国产成人精品一区一区一区 | 韩国av免费观看 | 久久精品超碰 | 婷婷午夜 | 国内精品久久久久久久影视麻豆 | 好看的国产精品视频 | 激情视频网页 | 国产麻豆剧果冻传媒视频播放量 | 免费视频久久久久 | 国产成人福利 | 久久99久久99| 天天爱综合 | 91成年人在线观看 | 又爽又黄在线观看 | 欧美精品一区二区在线观看 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 婷婷激情久久 | 国外调教视频网站 | 久久国产精品99国产精 | 国产视频色 | 久久高清毛片 | 久草视频资源 | 中文字幕电影高清在线观看 | 午夜精品三区 | 国产日韩欧美在线一区 | 婷婷激情综合网 | 欧美做受69 | a成人v在线 | 嫩草伊人久久精品少妇av | 九九久久婷婷 | 国产精品电影在线 | 999成人网| 一级免费片 | 精品亚洲欧美无人区乱码 | 91毛片在线 | h动漫中文字幕 | 97人人澡人人添人人爽超碰 | 日韩av午夜在线观看 | 午夜精品电影 | 激情久久伊人 | 国产亚洲在线 | 国产精品一区专区欧美日韩 | www久久精品 | 人人插人人玩 | 日韩免费三区 | 免费在线观看亚洲视频 | 天堂在线v | 中文字幕 在线看 | 狠狠干狠狠操 | 不卡中文字幕在线 | 手机av看片 | 亚州精品视频 | 91精品国产乱码在线观看 | 国产一区二区三区视频在线 | 99综合视频 | 国产精品视频地址 | 人人看人人做人人澡 | 免费高清看电视网站 | 91亚洲欧美激情 | 天天激情天天干 | 日韩色综合网 | 精品久久久久久久久久久久久久久久久久 | 大胆欧美gogo免费视频一二区 | 日韩高清成人 | 欧美日韩国产mv | 成人免费毛片aaaaaa片 | 国产精品成人a免费观看 | 天天综合入口 | 人人爽爽人人 | 国产视频999| 在线a人v观看视频 | 97色噜噜 | 国产视频九色蝌蚪 | 天天鲁一鲁摸一摸爽一爽 | 最新中文在线视频 | 麻豆91精品91久久久 | 日日躁夜夜躁xxxxaaaa | 国产精品久久三 | 一区二区三区韩国免费中文网站 | 97色涩 | 99在线播放 | 天天躁天天操 | 一区二区三区四区久久 | 97超碰在线播放 | 午夜精品久久一牛影视 | 国产精品精品国产婷婷这里av | 国产手机在线视频 | 国产91大片 | 成人一区电影 | 福利一区二区 | 成人黄色大片在线免费观看 | 免费黄色网址大全 | 免费在线黄色av | 免费国产黄线在线观看视频 | 成 人 免费 黄 色 视频 | 日本午夜在线亚洲.国产 | 国际精品久久久久 | 麻豆视频91 | 中文在线√天堂 | 爱情影院aqdy鲁丝片二区 | 久久精品亚洲一区二区三区观看模式 | 免费av免费观看 | 中文字幕一区三区 | 国产精品18久久久久久首页狼 | 国产主播大尺度精品福利免费 | 欧美成年网站 | 精品一区二区三区在线播放 | 美女福利视频 | 91手机电影| 久久99国产综合精品免费 | 夜夜夜影院 | 在线观看你懂的网址 | 免费成人短视频 | 日日干av| 婷婷六月激情 | 丝袜美腿亚洲 | 久久久久亚洲精品成人网小说 | 国产美女免费看 | 国产精品初高中精品久久 | 中文字幕一区二区三区四区视频 | 成人97视频一区二区 | 日韩av免费一区 | 久久久三级视频 | 成人久久电影 | 美女视频免费一区二区 | 成年人免费观看在线视频 | 日韩精品三区四区 | 免费a v在线 | 亚洲影院色 | 久久国产精品久久精品 | 国产在线污 | 精品一区二区免费在线观看 | 丁香六月综合网 | 五月天丁香综合 | 你操综合 | 久久免费观看少妇a级毛片 久久久久成人免费 | 色多多污污| 日韩a欧美| 国产中文字幕视频在线观看 | 精品在线小视频 | 亚洲乱码精品久久久 | 综合久久久久久久久 | 国产在线精品一区二区三区 | 一区三区视频 | 18+视频网站链接 | 91麻豆福利 | 爱爱av在线 | 国产亚洲成av人片在线观看桃 | 中文区中文字幕免费看 | 婷婷去俺也去六月色 | 九九热精品国产 | 国产成人91 | 午夜视频在线观看一区二区 | 久精品一区 | www.精选视频.com | 亚洲精品国偷拍自产在线观看蜜桃 | 国产伦精品一区二区三区四区视频 | 久久99网| 91av观看 | 91超级碰 | 超碰97国产在线 | 亚洲v欧美v国产v在线观看 | 在线观看免费视频你懂的 | 欧美亚洲国产一卡 | 2019中文在线观看 | 91精品视频一区二区三区 | 久久精品aaa | 欧美91在线| 在线观看视频一区二区三区 | ww视频在线观看 | 啪啪小视频网站 | 久久艹艹 | 在线电影 一区 | 五月激情综合婷婷 | 2021国产精品| 性色av免费看 | 亚洲高清激情 | 欧美一区二区三区在线视频观看 | 日韩剧情 | 91精品小视频 | 有码一区二区三区 | 成人国产精品av | 久久影视一区 | 欧美日韩精品在线观看 | 国产精品美女免费 | 99久久久国产精品美女 | 亚洲h色精品 | 精品一区二区三区香蕉蜜桃 | 九九热有精品 | 日本中文字幕网站 | 日韩在线免费小视频 | 成人在线观看免费视频 | 91视频免费看 | 97成人在线免费视频 | 国产精品久久久久久久久岛 | 91毛片视频 | 国产亚洲激情视频在线 | 欧美一区二区伦理片 | 国产黄色av| 国产中出在线观看 | 在线观看激情av | 久久成人高清视频 | 久久成| 青青河边草免费直播 | 日韩欧美高清视频在线观看 | 日韩美女免费线视频 | 欧美在线视频不卡 | 日韩亚洲在线视频 | 成人av在线播放网站 | 中日韩在线视频 | 黄色高清视频在线观看 | 97成人在线视频 | 91喷水| 精品中文字幕在线 | 在线观看成人福利 | 91成人区 | 99精品在线 | 午夜10000| 久久九九久久九九 | 安徽妇搡bbbb搡bbbb | 亚州国产视频 | 久草在线免费色站 | 免费精品人在线二线三线 | 国产在线一卡 | 国产99久久久国产精品 | 亚洲精品1区2区3区 超碰成人网 | 亚洲欧洲精品一区二区精品久久久 | 中文字幕av最新更新 | 午夜精品久久久久久久久久久 | 国产精品美女久久久久久久久久久 | 久久男人免费视频 | 国产精品一区免费看8c0m | 日韩精品久久久免费观看夜色 | 成人网444ppp | 亚洲精品网站 | 婷婷在线色 | 欧美91视频 | 在线中文字母电影观看 | 天天干夜夜 | 中中文字幕av在线 | 亚洲天堂精品 | www.com.黄| 永久免费的av电影 | 亚洲涩涩涩涩涩涩 | 亚洲成av人片在线观看 | 91九色在线观看视频 | 在线黄色av电影 | 国产亚洲欧美一区 | 国产精品久久久久久久午夜片 | av在线看片 | av在线免费在线 | 久久情侣偷拍 | 国产婷婷视频在线 | 久久成人麻豆午夜电影 | 99国产精品久久久久老师 | 欧美午夜a | 欧美日本中文字幕 | 国产在线黄色 | 成人毛片在线观看视频 | 国产精品欧美久久 | 久久色视频 | 一区二区视频在线观看免费 | 欧美一区在线看 | 韩日电影在线 | 日韩欧美一区二区三区视频 | 亚洲第一久久久 | 亚洲国产中文字幕在线观看 | 一区二区不卡 | 97视频久久久 | 九九热1| 激情五月婷婷综合 | www.久久91| 91中文字幕一区 | 日本天天操| 中文字幕一区三区 | 日韩av电影免费观看 | 在线视频中文字幕一区 | 免费高清影视 | 爱av在线网 | 国产精品久久二区 | 久久精品综合视频 | 欧美极品少妇xxxx | 亚洲精品永久免费视频 | 亚洲精品国产综合久久 | 五月综合色 | 久久免费高清 | 国产精品久久一区二区三区不卡 | 欧美最猛性xxxx | 去干成人网 | 在线观看一级视频 | 天天爱天天 | 91天天操 | 在线黄色国产电影 | 美女精品在线观看 | 欧美一级黄色网 | 99热最新精品 | 午夜视频在线观看欧美 | 国产一区二区三区午夜 | 狠狠操电影网 | 一区二区国产精品 | 国产专区视频在线观看 | 亚洲a资源| 九九精品在线观看 | 中文字幕在线观看的网站 | 欧美在线你懂的 | 亚洲另类xxxx | 久久精品一区二区三区中文字幕 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲成人黄色网址 | 精品国产_亚洲人成在线 | 在线之家免费在线观看电影 | 久久精品99国产精品亚洲最刺激 | 日本韩国在线不卡 | 久久国产欧美日韩 | www.国产视频 | 成人免费av电影 | 国产精品一区二区在线免费观看 | 深夜免费福利在线 | 亚洲成av人影院 | 国产精品99久久久久久武松影视 | 奇米影视8888 | 99久久精品国产一区二区成人 | 91av中文| 在线免费观看视频你懂的 | www.天天射 | 91一区二区三区在线观看 | 色综合网 | 一区二区三区在线观看免费视频 | 麻豆久久精品 | 亚州精品天堂中文字幕 | 色婷婷六月 | 中文超碰字幕 | 少妇bbb| 激情综合色综合久久 | 久久a国产| 综合久久婷婷 | 国产精品视频不卡 | 成人永久在线 | 精品91久久久久 | 色综合久久久久久久 | 日日夜夜干 | 国产成人精品免费在线观看 | 国产精品a久久 | 国产日韩精品一区二区三区在线 | 国产一区在线观看视频 | 色综合久久五月天 | 久久99久久99精品免观看粉嫩 | 中文字幕在线看视频国产中文版 | 国产一区二区中文字幕 | 中文字幕 国产视频 | 精品色999 | 精品久久久99 | 99热国产在线 | 亚洲精品国产欧美在线观看 | 久久久久一区二区三区四区 | 综合色久 | 日韩欧美一区二区三区视频 | 精品福利视频在线观看 | 国产精品一区二区中文字幕 | 成人一级视频在线观看 | 成人久久精品视频 | 98久9在线 | 免费 | 欧洲色吧 | 69国产精品成人在线播放 | 久久久久久久久久久久电影 | japanesefreesex中国少妇 | 丝袜美腿一区 | 欧美日韩高清不卡 | 91成人精品国产刺激国语对白 | av免费看看 | 欧美专区亚洲专区 | 亚洲美女精品视频 | 日韩免费电影一区二区三区 | 精品日韩在线 | 免费av片在线 | 五月天婷婷在线播放 | v片在线播放| 日韩在线网址 | 最新真实国产在线视频 | 天天做天天爽 | 久久黄色a级片 | 国产一区二区成人 | 激情偷乱人伦小说视频在线观看 | 91桃色在线观看视频 | 日韩免费成人 | 久久精品国产一区二区电影 | 亚洲精品999 | 欧美人人 | 欧美黄色特级片 | 久久精品免视看 | 日日干天天插 | 欧美激情综合色 | 成人黄色影片在线 | 免费观看一级 | 亚洲精品美女久久久久 | 青青视频一区 | 日韩视| 在线a人片免费观看视频 | 欧美日韩久久不卡 | 韩国精品一区二区三区六区色诱 | 亚洲女人天堂成人av在线 | 国产精品无 | 综合色综合色 | 国产成人精品午夜在线播放 | 亚洲成av人影片在线观看 | 99精品久久只有精品 | 午夜精品久久久久久久久久久久 | 欧美精品久久99 | 久久99九九99精品 | 免费看黄20分钟 | 丰满少妇在线观看 | а天堂中文最新一区二区三区 | 欧美一性一交一乱 | 日日操操操 | 97久久精品午夜一区二区 | 国产中文字幕视频 | 国产视频亚洲视频 | 91av电影在线观看 | 99在线视频观看 | 久久久国产一区二区三区 | 日本黄色免费大片 | 伊人六月 | 国产一区二区在线看 | 日韩视频在线不卡 | 中文字幕国产 | 黄色一级免费 | 一区二区 不卡 | 六月婷婷久香在线视频 | 国产手机在线精品 | 四虎成人免费影院 | 国产高清久久久 | 啪啪免费视频网站 | 久久久久成人精品亚洲国产 | 日韩av不卡在线播放 | 中文字幕一区二区三 | 亚洲综合小说电影qvod | 久久黄色网址 | 欧洲高潮三级做爰 | 精品久久久久_ | 日本福利视频在线 | 精品国产一二三 | 亚洲国产色一区 | 天天色天天艹 | 97视频在线观看网址 | 欧美国产一区在线 | 五月亚洲综合 | 日韩视频在线播放 | 亚洲精品国| 成人91在线 | 国产在线视频一区二区三区 | 91网页版在线观看 | 福利电影久久 | 97超级碰碰碰视频在线观看 | 中文免费在线观看 | 欧美极品少妇xxxx | 在线播放精品一区二区三区 | 在线观看日本韩国电影 | 久久精品亚洲综合专区 | 亚洲h在线播放在线观看h | 又黄又网站 | 国内精品视频一区二区三区八戒 | 中文字幕中文字幕 | 国产精品国产三级在线专区 | 99在线免费观看视频 | 成人av免费网站 | 婷婷综合激情 | 亚洲精品国产综合99久久夜夜嗨 | 在线看av的网址 | 97操碰 | 日韩高清在线一区 | 成人久久综合 | 精品99在线| 久久久久久久久久久久亚洲 | 亚洲精品久久久蜜桃直播 | 中文字幕欧美日韩va免费视频 | 国产一级片一区二区三区 | 蜜臀久久99精品久久久无需会员 | 久久高视频 | 亚洲免费精品一区二区 | 片网址 | 超碰精品在线观看 | 国产麻豆剧果冻传媒视频播放量 | 亚洲乱亚洲乱妇 | 黄色成人免费电影 | 成人影片免费 | 久久成人国产精品免费软件 | 国产精品美女久久久久久2018 | 日韩免费视频网站 | 韩日精品在线观看 | 国产91探花 | 久久99精品久久久久久清纯直播 | 国产精品久久久av | 麻豆影视在线观看 | 91插插视频| 中文字幕永久 | 午夜免费福利片 | 在线免费观看黄网站 | 国产一区二区免费看 | 综合久久2023 | 久久久久久久影院 | 最新av在线播放 | 精品国产伦一区二区三区观看体验 | 国产成人精品一区二区 | 黄色小说18 | 免费看污污视频的网站 | 欧美久久影院 | 日韩美一区二区三区 | 国产日本在线 | av观看免费在线 | 国产特级毛片aaaaaa毛片 |