久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

arm学习笔记

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arm学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單的介紹
打今天起菜鳥的ARM筆記算是開張了,也算給我的這些筆記找個存的地方。

為什么要發布出來?也許是大家感興趣的,其實這些筆記之所以叫筆記而不是文章,是因為它們完全是本人個人學習經驗的總結,而這些經驗都來自于其他前輩的無私奉獻,在這里對這些樂于發表自己經驗的前輩致以由衷的感謝!現在我把這些前輩的文章經過自己的理解寫出來一方面是對于他們的尊重,另一方面也希望覺得本人的筆記有參考意義的朋友把這種精神繼續傳下去。

再次聲明,本人確實是個菜鳥,現在手頭的板子是自己畫的,以RT&ZQ的板子為底版,對部分電路進行了改動。比如加入了SD卡,IIC總線鍵盤,觸摸屏,GPS,GPRS等等。并對LCD接口進行改造,使之完全適合手頭的SHARP液晶。把網絡,串口,USB這些調試用接口都外擴了,目的是使主板盡量小(目前第一版為了調試方便,主板特意畫的比較大)。但是存儲部分(RAM ROM)沒有做任何變動,在這里對RT&ZQ致謝!

這塊板子是本人第二個板子(第一塊是個接口板,30根線。)所以走線,設計都經不起推敲,但是同樣非常希望大家能夠指點!

板子基本元件清單說一下吧,方便其他人參考

CPU:44B0

RAM:HY57V641620

ROM:AM29LV160

NET:8019

USB:D12

KEY:ZLG7290

LCD:SHARP LM7M632
?
目前為止本人做的工作
1 板子的硬件調試是跟著軟件來的

2 ADS AXD調試環境搭建

3 FLSH燒寫筆記

4 UBOOT移植筆記

5 UCLINUX編譯下載簡單筆記

6 字符設備驅動開發
?
C工程模板使用說明

本模板用于使44B0運行C程序
一般說來匯編用來初始化 之后跳到C入口MAIN函數處

一、關于工程文件

1、本目錄下建工程文件(.MCP)
2、工程文件至少包含3個文件44binit.s??? 44blib_a.s??? *.c(自己的c文件)
3、44binit.s中開頭部分INCLUDE兩個文件MEMCFG.S?? Option.s用于基本設置
注意這兩個文件的存放目錄,即讓INCLUDE找到它們
4、以上文件除自己的c文件之外均為三星公版,不需修改

二、關于CodeWarrior設置
1、DebugRel Setting里一般設置幾項
1)Target Setting->Linker里選ARMLinker
?? 用于設置連接
2)Target Setting->Post-Linker選ARM fromELF
?? 用于生成FLASH燒錄代碼(只在RAM里運行 而不燒錄則不用)
3)ARM Linker->RO BASE里添地址
?? 根據板子來,這板子上RAM接的NSCS6,地址0XC000000-0XC7FFFFF;
?FLASH接的NSCS0,地址0X00000-0XFFFFF
?地址分配原理見44B0數據手冊內存管理那章的內存分配圖

?想在RAM里調試就添0XC000000(比如0XC008000)的地址
?但是注意的是地址不要添過界,比如想在RAM里調試卻添0X00000000 程序可以 進入C代碼 但沒法運行
?
?再有
?想生成用于燒寫得FLASH代碼 RO地址就需要設置為0X0000000開始的 而且LAYOUT中也必須設置44BINIT.O為初始加載文件
?以上FLASH測試結論經FLASHPGM測試
而且FLASHPGM不支持BIN文件 只支持INTEL得HEX文件
4)RW可以添 可以不添 一般RO解釋為數據段,RW解釋為數據段
?有時高興了就添上0XC100000(RAM調試時)
5)ARM Linker->OPTION->Image entry point選擇0xc000000(RAM調試時)
6)ARM Linker->Layout->Object/Symbol里可以添工程起始程序44BINIT.O 注意是.O不是.S和.0(零)
?也可以不添

三、AXD設置
1)按照BANYANGT或者ARM7正確設置調試代理
?BANYANGT、ARM7、H-JTAG都是代理,裝哪個無所謂,一般認為BANYANGT好,但無論哪個調試之前必須運行代理
2)在option->configure interface里 在session file 選擇 44b0.ini 這個文件是初始化44b0寄存器的,必須運行
3)Options->Configue Target里本來有兩項,上面上是硬件調試,下面是軟件仿真(在電腦上仿真)
?用ARM7就改第一項(按照ARM7說明改),用BANYANGT就按照BANYANGT說明在下面再加個BANYANGT的驅動
4)在general標簽頁選擇attach,然后確定,最后在file->save session,關閉AXD(在CodeWarrior里一DEBUG就自動打開)

四、關于JTAG
1)JTAG一般有幾種 SDT和WIGGLER 我的是WIGGLER的,兩者區別主要在并口25針定義不一樣(不算復位腳),與板子上JTAG相連的腳不是區分JTAG類型的標志
?只要和44B0對上就行
2)JTAG小板上與44B0大板上JTAH跳線RAM調試時都不用接 燒FLASH才用到
3)網上流傳的JTAG小板上也有不用RST信號的版本,無所謂,RST信號不是標準的

五、另外
開始的時候犯了低級錯誤,沒設置OM1 2 3跳線 導致晶體不陣~~~
?

其他的看萬龍的ARM開發板使用手冊,寫的還不錯
模板:user94/mamajinco/upload/825806664.rar


這部分可能過于簡單,很少有人寫,但是對于不了解ARM開發過程的人真的簡單嗎?我是菜鳥,在這卡了3天:)
一般說來有幾種方法,
1)板子原來的BOOTLOADER程序或者為燒寫而編寫的專用ADS程序
比較高級而快速的方法,很多現成的開發板都用這種方法(相對來說有實力的公司),此狀態下CPU是運行的,所以速度快。
比如ZLG的,但是對于初學或者不準備細研究硬件的人來說就比較麻煩,因為要編寫(改寫)ADS燒寫程序。愿意的人可以看看。
2)FLUTED
和FLASHPGM一樣,使用的好象叫邊界掃描法,CPU此時并不運行,因此燒寫的比較慢。
在這里也不推薦FLUTED這個軟件,原因比較簡單,麻煩+速度慢。
因為需要編寫(改寫)兩個配置文件,而且是字符界面。倒是有人說這個軟件只能在WIN98下用的說法好象不對(現在有可以讓2000和XP下用的方法)
喜歡的朋友可以用用
3)FLASHPGM(推薦)
很簡單的程序,GUI界面,速度尚好。
設置很簡單,在CPU里選對型號,當然是3星的44B0。在FLASH里也一樣,39LV160,29LV160都有。
確定好地址,RAM地址我的是0XC000000(BANK7上) FLASH地址0X0(BANK0上)
選完了以后讀一下FLASH的ID(左下腳的按鈕吧)能讀出廠家的ID就行。
然后是燒寫了,PROGRAME按鈕,注意的是FLASHPGM不支持BIN格式,按照下面方法處理。
再有就是盡量在寫之前擦一下,PROGRAME菜單里有個選項,打個鉤就OK。
具體燒寫方法可以看我總結的另一篇文檔,在這里只說說UBOOT相關的。
前面說過UBOOT編譯以后產生3個文件
u-boot——ELF格式的文件,可以被大多數Debug程序識別;
u-boot.bin——二進制bin文件,純粹的U-BOOT二進制執行代碼,不保存ELF格式和調試信息。這個文件一般用于燒錄到用戶開發板中;
u-boot.srec——Motorola S-Record格式,可以通過串行口下載到開發板中。
FLASHPGM不支持BIN格式的,可以燒寫u-boot——ELF格式的文件,別看它沒擴展名,一樣燒寫。
還有,如果你懶(和我一樣),拿別人現成的BIN文件來燒,FLASHPGM還提供了一個BINTOS19的程序,就在它的安裝目錄下。具體用法運行它,它自己就告訴你了。

注意:有時(尤其是FLASH里已經有程序的時候)0XC000000會莫名奇妙的提示內存不可以寫,有幾個方法可以試試:把地址改成0x10000000(好象是緩存地址),之后點EREASE擦除芯片,擦除一般說來是不成功的,最后無論如何都下不去,沒關系,這時候關閉擦除對話框,然后0x10000000地址不變,燒FLASH,我一般是燒寫一個我自己寫的LED測試小程序把內存占上:)。回來這時候再把0X1000000換成0XC000000再按照正常操作,一般可以正常。
這現象的原因就是過去下的程序(多數是不正確的程序)正在運行 占用了RAM與ROM,下個LED測試小程序就是把這幾個部分清除掉。
如果以上方法還不正常,可以用另一個程序叫FLASHP就差2個字母:)很好!在這里對這個程序的作者致敬!!
用這個軟件擦FLASH,然后再用FLASHPGM燒,原因是FLASHP擦厲害,但寫好象有些問題~~

UBOOT 移植操作(1)
[0]目錄結構
◆ board:和一些已有開發板有關的文件,比如Makefile和u-boot.lds等都和具體開發板的硬件和地址分配有關。
◆ common:與體系結構無關的文件,實現各種命令的C文件。
◆ cpu:CPU相關文件,其中的子目錄都是以U-BOOT所支持的CPU為名,比如有子目錄arm926ejs、mips、mpc8260和nios等,每個特定的子目錄中都包括cpu.c和interrupt.c,start.S。其中cpu.c初始化CPU、設置指令Cache和數據Cache等;interrupt.c設置系統的各種中斷和異常,比如快速中斷、開關中斷、時鐘中斷、軟件中斷、預取中止和未定義指令等;start.S是U-BOOT啟動時執行的第一個文件,它主要是設置系統堆棧和工作方式,為進入C程序奠定基礎。
◆ disk:disk驅動的分區處理代碼。
◆ doc:文檔。
◆ drivers:通用設備驅動程序,比如各種網卡、支持CFI的Flash、串口和USB總線等。
◆fs:支持文件系統的文件,U-BOOT現在支持cramfs、fat、fdos、jffs2和registerfs。
◆ include:頭文件,還有對各種硬件平臺支持的匯編文件,系統的配置文件和對文件系統支持的文件。
◆ net:與網絡有關的代碼,BOOTP協議、TFTP協議、RARP協議和NFS文件系統的實現。
◆ lib_arm:與ARM體系結構相關的代碼。
◆ tools:創建S-Record格式文件 和U-BOOT images的工具。

==========================================================================================
[1]u-boot.1.1.2目錄下有Makefile
1)設置編譯器
可以看到這一項:
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-

也就是說這里所用的交叉編譯器是arm-linux-gcc,u-boot默認是用這個的,也有用arm-elf-gcc的,arm-elf-tools-20030314.sh,用它來編譯,沒有問題。如果最后MAKE的時候提示找不到arm-linux-gcc就是這錯了,改一下。

arm-elf-gcc是用來編譯uClinux內核的工具,arm-linux-gcc用來編譯LINUX
2)加進自己板子的項目
搜索B2的這部分文件
B2_config????? :????? unconfig
?????? @./mkconfig $(@:_config=) arm s3c44b0 B2 dave

后面加上這部分:
TT_config?????? :????? unconfig
?????? @./mkconfig $(@:_config=) arm s3c44b0 TT T2T
切記在@./mkconfig $(@:_config=) arm s3c44b0 TT T2T
前面的是Tab來的,TT_config?????? :????? unconfig也是一樣,不能用空格代替,因為它是靠這個來識別命令的

==========================================================================================

[2]在宿主機(PC機)上建立arm-elf-gcc交叉編譯環境

1)建立arm-linux-gcc編譯環境
在RedHat Linux系統下以root用戶登錄,
將cross-2.95.3.tar.bz2文件復制到/目錄下,
安裝:
# tar jxvf cross-2.95.3.tar.bz2
這個命令會在你的/usr/local/arm/2.95.3目錄下安裝 arm-linux-gcc 交叉編譯程序,
然后在PATH變量中添加一項:/usr/local/arm/2.95.3/bin.
[root@localhost root]# export PATH=$PATH:/usr/local/arm/2.95.3/bin


把PATH=:$PATH:/usr/local/arm/2.95.3/bin添加到/ETC/bash_profile文件中

或者
在/etc/bashrc文件中添加一項:
?export PATH=:$PATH:/usr/local/arm/2.95.3/bin
之后可以測試一下 echo $PATH

注意:PATH大小寫不一樣,另外LINUX下大小寫是不同的,以后不特別聲明。

注意:命令中的參數之間都由單個空格或者TAB隔開,命令前有的有# 代表命令行符,不用輸入。

注意:不可在WINDOWS下用winRAR解壓u-boot-1.1.2.tar.bz2或u-boot-1.1.2.tar.gz這種文件,會少文件,去LINUX下,另外解壓的時候也不用非點用命令行操作,LINUX現在對GUI已經支持的非常好了,比如解壓只要右鍵點文件,選解壓到當前文件夾就可以,執行的時候只要雙擊再選“執行”

注意:我用的VMWARE(虛擬機)裝的LINUX,要在LINUX和WIN中間傳遞文件用VM-》SETTING里的SHARE FOLDER
該功能是把WIN 下的一個文件夾共享給LINUX。
這個功能必須裝VMWARE TOOLS才能用,
裝VMWARE TOOLS方法:首先在VM-》SETTING里CDROM項里把光驅設置為裝入VMWARE安裝文件夾下的LINUX工具的.ISO,LUINUX下就出現CDROM了 拷貝 解壓 安裝不在話下。必須注意的是VMWARE TOOLS在每次重起LINUX之后還必須也重起一下,TMD,誰搞定不用重起告訴我一聲
重起的方法:/etc/init.d/vmware-tools restart
就有消息出來了

注意:另外郁悶的是我的WIN與LINUX之間復制文字似乎也不順暢,干脆在SHARE FOLDER里建立一個TXT,兩個系統搗文字玩~~

測試:
把終端關閉,重新打開后執行如下命令:

# arm-linux-gcc –v

建立好交叉編譯環境后可以試著編譯u-boot了
2)也可以建立arm-elf-gcc
與上面類似,用周立功的編譯包直接安裝
會在/usr/local/bin下產生arm-elf-gcc只類的文件
然后設置路徑
[root@localhost root]# export PATH=$PATH:/usr/local/arm-elf/bin
======================================================================================================
[3] 測試交叉編譯器搞好沒有
?編譯個44B0例子 在UBOOT包目錄下執行一下命令,以下是編譯的包自帶的DAVE公司板子B2(名)
1)???? Make distclean (清除以前編譯的痕跡)
2)???? Make B2_config(B2代表B2板子的,前面見到過)
3)???? Make
沒問題就可以進行下面了
注意:B2默認用arm-linux-gcc編譯,要是前面安的arm-elf-gcc的話此時會報錯 把UBOOT目錄下的MAKEFILE按照前面說的改一下
注意:一般說來還會有個問題,懷疑是編譯器的問題 提示什么abi=apcs-gnu只類的找不到吧~~記不住了
改UBOOT目錄下config.mk (好象)
文件里改成如下
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu,))
原來的行少了$(call cc-option,-mabi=apcs-gnu,) 具體在哪行忘了 CTRL+F搜索一下
其他應該沒問題,有問題GOOGLE搜一下,不是通病就是自己安裝的問題了
注意:
MAKE之后會生成三個文件:
u-boot——ELF格式的文件,可以被大多數Debug程序識別;
u-boot.bin——二進制bin文件,純粹的U-BOOT二進制執行代碼,不保存ELF格式和調試信息。這個文件一般用于燒錄到用戶開發板中;
u-boot.srec——Motorola S-Record格式,可以通過串行口下載到開發板中。
?
[4]開始配置U BOOT
1)給自己板子個公司起個名,我的公司叫T2T 板子叫TT,剛才那個例子公司名DAVE板子名B2
以B2板子的程序做為模板來做,省很多工作
#cd u-boot-1.1.2//進U BOOT目錄
#cd board //進BOARD目錄,該目錄下存放各種公司的開發板,但44B0的好象只有一種B2
#cp -R dave T2T (復制 并且改名)
#cd T2T
#mv B2 TT (復制 并且改名)
#cd TT
# mv B2.c TT.c
修改TT里面的Makefile, 把B2改成TT,編譯時如果報的其它類似找不到B2的錯誤也是把相應的B2改成TT來處理。
修改T2T/TT/config.mk
  TEXT_BASE = 0x0c1000000
修改T2T/TT/Makefile
  將所有的B2改為TT
2)/include/configs
cp B2.h TT.h依舊是把B2的改個名
注意:DAVE的板子是用44B0的,但還有其他板子用嗎?怎么確定只有它用?用以下命令

到board目錄查了一下:
#cd u-boot
#cd board
#find . -exec grep -l 44B0 {} \;
結果是:
./dave/B2/B2.c
B2網站是: http://www.dave-tech.it

3)以下文件修改記錄

----------------------------------------------------------------------------------------------------
-----------------------------------/include/configs/TT.h-------------------------------------------
----------------------------------------------------------------------------------------------------
#define CONFIG_INIT_CRITICAL???? 1???????? 這個在cpu/s3c44b0/start.S里面用到,如果你的u-boot程序不是在sdram中調試而是固化到flash中運行的話,這個必不可少。

找到 #define CONFIG_B2????????? 1??????? 改成CONFIG_TT

找到 #define CONFIG_S3C44B0_CLOCK_SPEED?? 75?? 主頻改成60

找到Size of malloc() pool這部分設置,改成這樣。

#define CFG_MONITOR_LEN??????????? (256 * 1024)?? /* Reserve 256 kB for Monitor????? */

#define CFG_ENV_SIZE???????????????? (64*1024)??????? /* 1024 bytes may be used for env vars*/

#define CFG_MALLOC_LEN????????????? (CFG_ENV_SIZE + 128*1024 )

#define CFG_GBL_DATA_SIZE??? 128? /* size in bytes reserved for initial data */

#define CFG_ENV_IS_IN_FLASH???????? 1? 這個必不可少,如果你想把你的參數保存到flash的話
#define CFG_ENV_ADDR??? (PHYS_FLASH_1+0x40000)? 這個就是你的參數保存在flash里的起始地址了

#define CFG_ENV_OFFSET 0x40000????? 這個我后來看它源程序發現如果你上一步沒有設置它的起始地址的話就會用它來作默認地址的了

#define CONFIG_AUTO_COMPLETE

其它地方沒有深究哦,有些好像不要也行,你就試試吧。

找到Hardware drivers部分,這應該是網絡芯片設置吧,參考一下這個吧(要看芯片的):

#define CONFIG_DRIVER_RTL8019??????? 這個就要看你的板上用的是什么網卡了(這個是臺灣出的,有10M)

#define RTL8019_BASE??????? 0x06000300?? 這個是網卡相就寄存器的起始地址,有的掛在BANK4上了地址自然是0X08000300

以下部分我試過不要也行,你試下吧

#define RTL8019_BUS32???????????? 0

#define CONFIG_SMC_USE_16_BIT

#undef? CONFIG_SHOW_ACTIVITY

#define CONFIG_NET_RETRY_COUNT?????????? 10?????? 應該是重試的次數吧


#define CONFIG_SERIAL 1

#define CONFIG_BAUDRATE???????????? 115200? 設置波特率

?


#define CONFIG_COMMANDS????????? ( CONFIG_CMD_DFL | \

??????????????????????????????????????????????????????? CFG_CMD_DATE | \

??????????????????????????????????????????????????????? CFG_CMD_ELF??? | \

??????????????????????????????????????????????????????? CFG_CMD_NET??? | \

??????????????????????????????????????????????????????? CFG_CMD_EEPROM?? | \

??????????????????????????????????????????????????????? CFG_CMD_I2C??????????? | \

??????????????????????????????????????????????????????? CFG_CMD_FAT | \

??????????????????????????????????????????????????????? CFG_CMD_JFFS2)

把CFG_CMD_EEPROM改成CFG_CMD_FLASH吧,雖然不改也是可以的,具體沒考究。

?


以下是板上env參數設置,看一下吧,其實我覺得了解一下就行的了,只是一些初始設置值,以后可以用命令setenv? saveenv來修改的。

#define CONFIG_BOOTDELAY?? 3??????????????? 這個就是運行bootcmd之前的等待時間

#define CONFIG_BOOTARGS? "devfs=mount root=ramfs console=ttyS0,115200" 引導uClinux的時候傳遞的參數,不會就先不用管它也行。

#define CONFIG_ETHADDR?????? 00:50:c2:1e:af:fb??? 網卡的物理地址MAC

#define CONFIG_NETMASK? 255.255.255.0?????? 掩碼地址,設置過ip的人都應該知道吧

#define CONFIG_IPADDR?? 192.168.0.30????????? 這是你板上網卡8019的ip地址

#define CONFIG_SERVERIP?????? 192.168.0.10?????? 這是你宿主機的ip地址,以后用tftp下載的時候用到,一定要跟你的宿主機一致才行。

#define CONFIG_BOOTFILE?????? "u-boot.bin"??????? 這個就是你要下載文件的默認名字,注意的是不是UBOOT編譯的文件 而是UBOOT下載以后在這個地址執行這個文件,比如這個文件在下LINUX后就常被改成UCLINUC.BIN了

#define CONFIG_BOOTCOMMAND?? "bootm 0x50000"?? 這是bootdelay后運行的命令

?


Miscellaneous configurable options部分,參考一下吧:

#define??? CFG_LONGHELP?????????????????????? /* undef to save memory?????? */

#define??? CFG_PROMPT????? "TENWAY=>"?? 這是進入命令模式下的提示符,改個帥一點的吧

#define??? CFG_CBSIZE??????? 256???????? /* Console I/O Buffer Size???? */

#define??? CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */

#define??? CFG_MAXARGS????????? 100????????????? /* max number of command args? */

#define CFG_BARGSIZE???????????? CFG_CBSIZE /* Boot Argument Buffer Size?????? */

?


#define CFG_MEMTEST_START???? 0x0C400000?? /* memtest works on???? */

#define CFG_MEMTEST_END?????????? 0x0C800000?? /* 4 ... 8 MB in DRAM? */

#undef? CFG_CLKS_IN_HZ????????????? /* everything, incl board info, in Hz */

#define??? CFG_LOAD_ADDR???????????? 0x0c008000??? 默認的下載地址

#define??? CFG_HZ????????????????????? 1000????????????? /* 1 kHz */

#define CFG_BAUDRATE_TABLE? { 9600, 19200, 38400, 57600, 115200 } 可供選擇的波特率

?

?

?

Physical Memory Map部分,比較重要,修改你的sdram和flash的地址和容量。

#define CONFIG_NR_DRAM_BANKS 1??????? 我們只占用了一個Bank用來映射sdram

#define PHYS_SDRAM_1??????????? 0x0c000000???? sdram的起始地址

#define PHYS_SDRAM_1_SIZE?? 0x00800000???? sdram的容量(8M)

#define PHYS_FLASH_1????????????? 0x00000000???? flash的起始地址

#define PHYS_FLASH_SIZE??????? 0x00200000 flash的容量(2M)

#define CFG_FLASH_BASE???????? PHYS_FLASH_1?? 定義多個名字而已,其它地方會用到

注意:
存儲容量的計算方法
2M=0x00200000-----------------16進制轉換成10進制(用WINDOWS自帶的計算機就行)-------------------》2097152
2097152=1024*1024*2

FLASH organization部分,看注釋應該知道了吧,參考一下:
/*-----------------------------------------------------------------------
?* FLASH organization
?*/
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks? */
#define CFG_MAX_FLASH_SECT 256 /* 最大支持的SECTOR數量,另外SAM FEI的補丁這里設置了32個 是錯誤的*/
//#define CFG_MAIN_SECT_SIZE????? 0x10000? /* main size of sectors on one chip */

#define CFG_FLASH_ERASE_TOUT 4120000 /* Timeout for Flash Erase (in ms) 在前面加個4讓它長點 */
#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
其他地方還沒動 以后動的再補上

UBOOT 移植操作(3)

----------------------------------------------------------------------------------------------------
-----------------------------------board/myboard/common/flash.c-----------------------------------
----------------------------------------------------------------------------------------------------
找到這個函數:write_buff

里面有這句話,一共有6處吧?全改了:#ifdef CONFIG_B2

把CONFIG_B2改成上面TT.H文件里面起的名,我的叫CONFIG_TT

關于FLASH的一點疑問:
一直懷疑29LV160和39LV160在U BOOT下是否兼容的問題
看了這段程序后似乎U BOOT是可以自動檢測的

----------------------------------------------------------------------------------------------------
-----------------------------------board/T2T/TT/memsetup.S-----------------------------------
-----------------------------------也叫board/T2T/TT/lowlevel_init.S-----------------------------------
----------------------------------------------------------------------------------------------------
按照如下改
?
* Bank 0 parameter */
.equ??? B0_Tacs,????? 0x3 /* 0clk */
.equ??? B0_Tcos,????? 0x3 /* 0clk */
.equ??? B0_Tacc,????? 0x7 /* 14clk */
.equ??? B0_Tcoh,????? 0x3 /* 0clk */
.equ??? B0_Tah,?????? 0x3 /* 0clk */
.equ??? B0_Tacp,????? 0x1 /* 0clk */
.equ??? B0_PMC,?????? 0x0 /* normal(1data) */
/* Bank 1 parameter */
.equ??? B1_Tacs,????? 0x0 /* 4clk */
.equ??? B1_Tcos,????? 0x1 /* 4clk */
.equ??? B1_Tacc,????? 0x2 /* 14clkv */
.equ??? B1_Tcoh,????? 0x1 /* 4clk */
.equ??? B1_Tah,?????? 0x0 /* 4clk */
.equ??? B1_Tacp,????? 0x0 /* 6clk */
.equ??? B1_PMC,?????? 0x0 /* normal(1data) */

/* Bank 2 parameter -? */
.equ??? B2_Tacs,????? 0x0 /* 4clk */
.equ??? B2_Tcos,????? 0x2 /* 4clk */
.equ??? B2_Tacc,????? 0x4 /* 14clk */
.equ??? B2_Tcoh,????? 0x2 /* 4clk */
.equ??? B2_Tah,?????? 0x3 /* 4clk */
.equ??? B2_Tacp,????? 0x3 /* 6clk */
.equ??? B2_PMC,?????? 0x0 /* normal(1data) */

/* Bank 3 parameter */
.equ??? B3_Tacs,????? 0x3 /* 4clk */
.equ??? B3_Tcos,????? 0x3 /* 4clk */
.equ??? B3_Tacc,????? 0x7 /* 14clk */
.equ??? B3_Tcoh,????? 0x3 /* 4clk */
.equ??? B3_Tah,?????? 0x3 /* 4clk */
.equ??? B3_Tacp,????? 0x3 /* 6clk */
.equ??? B3_PMC,?????? 0x0 /* normal(1data) */

/* Bank 4 parameter */
.equ??? B4_Tacs,????? 0x3 /* 4clk */
.equ??? B4_Tcos,????? 0x3 /* 4clk */
.equ??? B4_Tacc,????? 0x7 /* 14clk */
.equ??? B4_Tcoh,????? 0x3 /* 4clk */
.equ??? B4_Tah,?????? 0x3 /* 4clk */
.equ??? B4_Tacp,????? 0x3 /* 6clk */
.equ??? B4_PMC,?????? 0x0 /* normal(1data) */

/* Bank 5 parameter */
.equ??? B5_Tacs,????? 0x0 /* 4clk */
.equ??? B5_Tcos,????? 0x1 /* 4clk */
.equ??? B5_Tacc,????? 0x4 /* 14clk */
.equ??? B5_Tcoh,????? 0x1 /* 4clk */
.equ??? B5_Tah,?????? 0x0 /* 4clk */
.equ??? B5_Tacp,????? 0x0 /* 6clk */
.equ??? B5_PMC,?????? 0x0 /* normal(1data) */

/* Bank 6(if SROM) parameter */
.equ??? B6_Tacs,????? 0x3 /* 4clk */
.equ??? B6_Tcos,????? 0x3 /* 4clk */
.equ??? B6_Tacc,????? 0x7 /* 14clk */
.equ??? B6_Tcoh,????? 0x3 /* 4clk */
.equ??? B6_Tah,?????? 0x3 /* 4clk */
.equ??? B6_Tacp,????? 0x3 /* 6clk */
.equ??? B6_PMC,?????? 0x0 /* normal(1data) */

/* Bank 7(if SROM) parameter */
.equ??? B7_Tacs,????? 0x3 /* 4clk */
.equ??? B7_Tcos,????? 0x3 /* 4clk */
.equ??? B7_Tacc,????? 0x7 /* 14clk */
.equ??? B7_Tcoh,????? 0x3 /* 4clk */
.equ??? B7_Tah,?????? 0x3 /* 4clk */
.equ??? B7_Tacp,????? 0x3 /* 6clk */
.equ??? B7_PMC,?????? 0x0 /* normal(1data) */

/* Bank 6 parameter */
.equ??? B6_MT,??????? 0x3 /* SDRAM */
.equ??? B6_Trcd,????? 0x1 /* 2clk */
.equ??? B6_SCAN,????? 0x0 /* 8bit */

.equ??? B7_MT,??????? 0x3 /* SDRAM */
.equ??? B7_Trcd,????? 0x1 /* 2clk */
.equ??? B7_SCAN,????? 0x0 /* 8bit */


/* REFRESH parameter */
.equ??? REFEN,??????? 0x1 /* Refresh enable */
.equ??? TREFMD,?????? 0x0 /* CBR(CAS before RAS)/Auto *** */
.equ??? Trp,??????? 0x0 /* 2clk */
.equ??? Trc,??????? 0x3 /* 0x1=5clk 0x3=11clk*/
.equ??? Tchr,?????? 0x0 /* 0x2=3clk 0x0=0clks? */
.equ??? REFCNT,?????? 1550

MEMORY_CONFIG:
? .long?? 0x01000102 /* Bank0 = OM[1:0] , Bank1-2 4-7 16bit, ,BANK3 8BIT,Bank2=Nowait,UB/LB*/
? .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) /*GCS0*/
? .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) /*GCS1*/
? .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) /*GCS2*/
? .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) /*GCS3*/
? .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) /*GCS4*/
? .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) /*GCS5*/
? .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))? /*GCS6*/
? .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))? /*GCS7*/
? .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)? /*REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1019*/
? .word 0x10????? /*SCLK power down mode, BANKSIZE 16M/16M*/
? .word 0x20????? /*MRSR6 CL=2clk*/
? .word 0x20????? /*MRSR7*/
主要是設置MEMORY_CONFIG里的內容 值得注意的是.long?? 0x01000102 /* Bank0 = OM[1:0] , Bank1-2 4-7 16bit, ,BANK3 8BIT,Bank2=Nowait,UB/LB*/中設置了各個BANK的位寬,要注意。因為8019有8位的,有16位的,配置錯了網絡不通
其實就是一些字
有人從地址讀出來后是下面這樣也可以

MEMORY_CONFIG:
.long 0x11010102
.long 0x600
.long 0x7ffc
.long 0x7ffc
.long 0x7ffc
.long 0x7ffc
.long 0x2610
.long 0x18000
.long 0x18000
.long 0x960459
.long 0x10
.long 0x20
.long 0x20
由于對armsys硬件不是太了解,沒有辦法,只得看armsys bootloader程序,但每個版本又有差別.因此是用AXD調試看bootlaoder啟動后0x1c80000中的值定的.

注意:這個注意是后補上的,因為自己和朋友在做的時候發現網上對這部分分析的人特別少,可能因為理論比較簡單,操作起來又比較麻煩吧。
聽聽菜鳥的方法吧。

首先U BOOT1.1.1和1.1.4版本有個小差別,就是文件名的差別1.1.1叫memsetup.S,1.1.4叫lowlevel_init.S如果把別人用1.1.1編譯的直接拿過來也可以,但一定記得在改文件名的同時還一定要在文件里改函數名!就是這個文件最后那部分匯編上面的函數名。不然后來會提示START.S里找不到lowlevel_init。切記

另外,比較重要的這部分究竟代表什么,怎么改。
這個文件實際分3部分,這3個部分實際又是把44B0初始化那幾個匯編文件重新組合了,就是ADS在RAM里調試文檔里說的,把44B0當單片機用時C語言前面的那寫匯編文件,一般說來包括44binit.s MEMCFG.S 44BLIB_A.S Option.s。其中44binit.s MEMCFG.S就包含了內存初始化的參數,按照這兩個文件改吧。

再說這3部分
開始是內存設置,在數據手冊(英文)4-14頁,各個意思就不多說了。說說怎么改,當然得根據你的內存具體改(一句廢話)但是有簡單的方法,前面提到了,看MEMCFG.S這個文件。

然后是一些移位只類的操作,把各個BANK設置好,其實就是設置一些預定義的字,然后在其他的地方利用這些字設置寄存器。就把這些理解為宏或者就當是個結構體吧(不準確,就幫助理解)。為什么這么設置看看數據手冊(英文)4-13頁
這部分在怎么改的快?找,哪找?44binit.s里面有,一模一樣,不羅嗦了。

最后那部分是這個文件唯一執行的部分
基本不需要改吧(除了有的時候函數名:))
看見0X01C80000還不明白嗎?看數據手冊(英文)4-3頁去吧,有匯編的例子,至于這個32位寄存器為什么這么設置。

別看我這裝的明白,就是會對付,別跟我較真,我還也在研究中:)

注意:順便在這里說說個小問題,有朋友問“為什么原理圖上地址線從A1開始,而不是A0”看數據手冊(英文)4-4頁,因為是16位地~~~
注意:我的8019是連在BANK3上的 而且是8BIT的 所以MEMORY_CONFIG下面第一項里要做設置 要不不好使

----------------------------------------------------------------------------------------------------
-----------------------------------board/T2T/TT/config.mk-----------------------------------
----------------------------------------------------------------------------------------------------
修改最后的TEXT_BASE為把UBOOT加載到RAM的地址,這里添0XC700000,當然添0XC300000也可以 但是如果添0XC300000之前的似乎在下載LINUX的時候會死機,因為地址空間不夠

?
-----------------------------------------------------------------
-----------------------------------cpu/s3c44b0/start.S------
-------------------------------------------------------------------

找到
#if CONFIG_S3C44B0_CLOCK_SPEED==60
??
?ldr r0, =0x70081 /* 60MHz (Quartz=10MHz) 具體怎么算的 可以看我寫的計算方法說明*/
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
?ldr r0, =0xac042? /* 75MHz? */
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
設置一下主頻

------------------------------------------------------------------------------
--------------cpu/s3c44b0/serial.c-----------------------------------
--------------------------------------------------------------------------------
找到以下幾項
主要是把頻率改一下并把分拼設置對
void serial_setbrg (void)
{
?DECLARE_GLOBAL_DATA_PTR;

?u32 divisor = 0;

?/* get correct divisor */
?switch(gd->baudrate) {
??????
??????????
????
?
?case 1200:
#if CONFIG_S3C44B0_CLOCK_SPEED==60
? divisor =? 3124;
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
? divisor = 3905;
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
#endif
? break;

?case 9600:
#if CONFIG_S3C44B0_CLOCK_SPEED==60
? divisor = 390;
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
? divisor = 487;
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
#endif
? break;

?case 19200:
#if CONFIG_S3C44B0_CLOCK_SPEED==60
? divisor = 194;
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
? divisor = 243;
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
#endif
? break;

?case 38400:
#if CONFIG_S3C44B0_CLOCK_SPEED==60
? divisor = 97;
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
? divisor = 121;
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
#endif? break;

?case 57600:
#if CONFIG_S3C44B0_CLOCK_SPEED==60
? divisor = 64;
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
? divisor = 80;
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
#endif? break;

?case 115200:
#if CONFIG_S3C44B0_CLOCK_SPEED==60
? divisor = 32;/*具體算法和上面主頻算法在一個文檔里*/
#elif CONFIG_S3C44B0_CLOCK_SPEED==75
? divisor = 40;
#else
# error CONFIG_S3C44B0_CLOCK_SPEED undefined
#endif
--------------------------------------------------------------------------
---------board/T2T/TT/TT.C-------------------------------
------------------------------------------------------------
這個沒什么好說的,如果你用的是網上流行的原理圖,改動基本沒有,我的因為加了些東西,所以這個文件改動很多。
但文件里主要就是對44B0各個管腳設置,哪個是IO哪個是TXD、RXD。不多說了,自己看數據手冊8-6頁,有點耐心。

---------------------------------------------------------------------
------------lib_arm/board.c-----------------------------------
---------------------------------------------------------
好象網卡需要加個INCLUDE
//待補充
這個文件不用修改,在網上找的講解,順便提一下

進行各種初始化設置,主要有:
cpu_init CPU相關的設置, 具體在./cpu/s3c44b0/cpu.c中.
board_init 板子相關的設置, 具體在board/wx/wx20/wx20.c 中
interrupt_init中斷設置,我們沒有用,具體在./cpu/s3c44b0/interrupts.c中
env_init 初始化環境變量, 具體要看用什么介質來存儲環境變量,如果用flash來存貯, 程序在common/env_flash.c中.
init_baudrate 設置baud參數
serial_init 串口初始化, 具體在cpu/s3c44b0/serial.c.
console_init_f 控制臺設置, 具體在./common/console.c

display_banner 顯示標題.[這里可以鼓搗一下,讓它輸出些個性的東西:)]
dram_init 可用內存配置, 具體在./board/wx/wx20/wx20.c.
flash_init flash初始化,具體./drivers/cfi_flash.c.

接下來就是環境變量初始化, 網絡初始化,最后到main_loop,可以運行各種命令.
====================================
[5]燒寫FLASH
這部分可能過于簡單,很少有人寫,但是對于不了解ARM開發過程的人真的簡單嗎?我是菜鳥,在這卡了3天:)
一般說來有幾種方法,
1)板子原來的BOOTLOADER程序或者為燒寫而編寫的專用ADS程序
比較高級而快速的方法,很多現成的開發板都用這種方法(相對來說有實力的公司),此狀態下CPU是運行的,所以速度快。
比如ZLG的,但是對于初學或者不準備細研究硬件的人來說就比較麻煩,因為要編寫(改寫)ADS燒寫程序。愿意的人可以看看。
2)FLUTED
和FLASHPGM一樣,使用的好象叫邊界掃描法,CPU此時并不運行,因此燒寫的比較慢。
在這里也不推薦FLUTED這個軟件,原因比較簡單,麻煩+速度慢。
因為需要編寫(改寫)兩個配置文件,而且是字符界面。倒是有人說這個軟件只能在WIN98下用的說法好象不對(現在有可以讓2000和XP下用的方法)
喜歡的朋友可以用用
3)FLASHPGM(推薦)
很簡單的程序,GUI界面,速度尚好。
設置很簡單,在CPU里選對型號,當然是3星的44B0。在FLASH里也一樣,39LV160,29LV160都有。
確定好地址,RAM地址我的是0XC000000(BANK7上) FLASH地址0X0(BANK0上)
選完了以后讀一下FLASH的ID(左下腳的按鈕吧)能讀出廠家的ID就行。
然后是燒寫了,PROGRAME按鈕,注意的是FLASHPGM不支持BIN格式,按照下面方法處理。
再有就是盡量在寫之前擦一下,PROGRAME菜單里有個選項,打個鉤就OK。
具體燒寫方法可以看我總結的另一篇文檔,在這里只說說UBOOT相關的。
前面說過UBOOT編譯以后產生3個文件
u-boot——ELF格式的文件,可以被大多數Debug程序識別;
u-boot.bin——二進制bin文件,純粹的U-BOOT二進制執行代碼,不保存ELF格式和調試信息。這個文件一般用于燒錄到用戶開發板中;
u-boot.srec——Motorola S-Record格式,可以通過串行口下載到開發板中。
FLASHPGM不支持BIN格式的,可以燒寫u-boot——ELF格式的文件,別看它沒擴展名,一樣燒寫。
還有,如果你懶(和我一樣),拿別人現成的BIN文件來燒,FLASHPGM還提供了一個BINTOS19的程序,就在它的安裝目錄下。具體用法運行它,它自己就告訴你了。

注意:有時(尤其是FLASH里已經有程序的時候)0XC000000會莫名奇妙的提示內存不可以寫,有幾個方法可以試試:把地址改成0x10000000(好象是緩存地址),之后點EREASE擦除芯片,擦除一般說來是不成功的,最后無論如何都下不去,沒關系,這時候關閉擦除對話框,然后0x10000000地址不變,燒FLASH,我一般是燒寫一個我自己寫的LED測試小程序把內存占上:)。回來這時候再把0X1000000換成0XC000000再按照正常操作,一般可以正常。
這現象的原因就是過去下的程序(多數是不正確的程序)正在運行 占用了RAM與ROM,下個LED測試小程序就是把這幾個部分清除掉。
如果以上方法還不正常,可以用另一個程序叫FLASHP就差2個字母:)很好!在這里對這個程序的作者致敬!!
用這個軟件擦FLASH,然后再用FLASHPGM燒,原因是FLASHP擦厲害,但寫好象有些問題~~

細小的問題--patch命令的使用
有的時候大家收到的別人移植好的UBOOT了UCLINUC了是以patch包發布的

這里轉個寫的比較好的patch命令的使用方法

文件:isp1161-2.6.12.patch(在/root下)
?
--- linux-2.6.12/drivers/usb/Makefile 2005-06-17 22:48:29.000000000 +0300
+++ linux-2.6.12-new/drivers/usb/Makefile 2005-07-27 08:11:47.908336540 +0300
?
......
......
?
由于patch文件的首行已經指明了路徑,所以根據當前所在的目錄,加不同的參數使用patch命令:
?
1:如果當前的目錄是和linux-2.6.12的同級目錄:
?
[root@kcn-110mw]#patch -p0 </root/isp1161-2.6.12.patch
?
2:如果當前的目錄為 linux-2.6.12/:
?
[root@kcn-110mw]#patch -p1 </root/isp1161-2.6.12.patch
?
3:如果當前的目錄為 linux-2.6.12/drivers/:
?
[root@kcn-110mw]#patch -p2 </root/isp1161-2.6.12.pathc
?
0,1,2,是指略去的patch文件中的前幾級目錄
?
細小的問題---VMWARE安裝與使用
mamajinco 發表于 2006-9-6 9:49:00
首先 推薦大家在開發的過程中使用VMWARE虛擬機 安裝LINUX
原因比較簡單 開發過程中會頻繁的在兩個系統之間交換 對于沒有兩個計算機的朋友來說 過于麻煩
對的不說了 說說開發里遇到問題
==================================
一 安裝VMWARE虛擬機與LINUX
1 分出個10G左右的地方
我是分個10G的FAT32格式分區來單獨做LINUX的區域,推薦分出來的空間大于9G,因為對于新手來說LIXUN要盡量全部安裝。
分區盡量是FAT32格式(WINDOWS用的)NTFS聽有的朋友說過好象有問題。
推薦計算機內存大于256M,我用的是512M,開VMWARE再開ACROBAT時就會明顯慢。
安裝后的VMWARE虛擬機基本是3種文件,VMWARE程序文件我安在C盤下了,VMWARE的配置文件(安裝后再添加的,比較小)和VMWARE虛擬出的硬盤文件(選10G,該文件就是10G),所以我單獨分出個驅存他們。
虛擬機里安裝后的操作系統(一般都是LINUX吧,順便說一下,你也可以按WIN了蘋果了操作系統)
2 安裝VMWARE虛擬機
VMWARE虛擬機對于WINDOWS來說就是個軟件,用這個軟件虛擬出個計算機來。對于VMWARE虛擬機里面安裝的系統來說自己就獨占了一臺計算機。
安裝沒有什么特殊的,我用的是VER5.5,選標準安裝,基本一律下一步就搞定。
值得注意的是中間有問你分出來多大硬盤空間,默認是8G ,改成10G吧。
之后是建立VMWARE虛擬機配置文件,根據自己的要求建立,基本不用改什么,就是整錯了也可以在后來的SETTING里改。
不多說了。
3 安裝LINUX
把LINUX安裝盤放光驅里吧,啟動虛擬機,自己就檢測啟動了。
多說一句,到這大家都明白了吧?啟動虛擬機就相當于啟動一個計算機,光盤自動啟動也跟物理上的計算機完全一樣。
值得注意的是:如果電腦里安了虛擬光驅可能影響光盤自動啟動,如果有問題就把虛擬光驅卸了吧。
安裝的時候同樣沒什么問題,手動分驅,按照內存大小的2倍分出來個SWAP分驅,其余的我分成一個驅,強制為主分驅,掛載點選“/”根目錄,分驅格式選EXT3……
多說一句,在分驅里就能看出來了吧?LINUX完全獨占了這10G的地方,看不到WINDOWS
二 安裝VMWARE-tools

VMWARE-tools還是安裝比較好,最起碼WIN和LINUX交換文件就方便了
引用別人的文章 加上自己的注釋吧
1、以ROOT身份進入LINUX

2、按下 CTRL+ALT組合鍵,進入主操作系統,點擊VMWARE狀態欄安裝提示,或者點擊 SETTING菜單下的ENABLE VMWARE TOOLS子菜單。

3、確認安裝VMWARE TOOLS。
這時我們并沒有真正的安裝上了VMWARE TOOLS軟件包,如果您點擊菜單:DEVICES,您就會發現光驅的菜單文字變為:ide1:0-> Crogram FilesVMwareVMware WorkstationProgramslinux.iso,這表示VMWARE將LINUX的ISO映象文件作為了虛擬機的光盤

注釋:有的時候不能自動掛載,自己要在菜單里光驅項目里選掛載VMWARE安裝目錄(不是配置文件存儲目錄,我的在C盤里)里某個目錄的linux.iso

4、鼠標點擊LINUX界面,進入LINUX。

5、運行如下命令,注意大小寫。

mount -t iso9660 /dev/cdrom /mnt

加載CDROM設備,這時如果進入 /mnt 目錄下,你將會發現多了一個文件:vmware-linux-tools.tar.gz。這就是WMWARE TOOLS的LINUX軟件包,也就是我們剛才使用WINISO打開LINUX.ISO文件所看到的。

注釋:在新版本里可以不用命令掛載和卸載了,打開 LINUX.ISO后LINUX桌面會自動彈出光驅標志,雙擊打開。

cp /mnt/vmware-linux-tools.tar.gz /tmp

將該軟件包拷貝到LINUX的 TMP目錄下。

umount /dev/cdrom

卸載CDROM。

cd /tmp

進入TMP目錄

tar zxf vmware-linux-tools.tar.gz

解壓縮該軟件包,默認解壓到vmware-linux-tools目錄下(與文件名同名)。

cd vmware-linux-tools

進入解壓后的目錄

./install.pl

運行安裝命令。

這時install提示你是否需要備份以前的配置文件,建議選擇"y"。

等待INSTALL運行完成后,這時鍵入 START 命令,是不是可以看到漂亮的LINUX圖形界面了?

三 使用VMWARE TOOLS
必須注意的是VMWARE TOOLS在每次重起LINUX之后還必須也重起一下,TMD,誰搞定不用重起告訴我一聲
重起的方法:/etc/init.d/vmware-tools restart
就有消息出來了

四 文件共享
我用的VMWARE虛擬機裝的LINUX,要在LINUX和WIN中間傳遞文件用VM-》SETTING里的SHARE FOLDER
該功能是把WIN 下的一個文件夾共享給LINUX。
這個功能必須裝VMWARE TOOLS才能用。
共享以后在LINUX的MNT目錄下就出一個F什么打頭的文件夾,進去就是你共享的文件夾名了

細小的問題---arm-linux-gcc與arm-elf-gcc的區別
總看見有人問

arm-linux-gcc為有MMU的LINUX準備的比如2410上的LINUX

arm-elf-gcc為沒有MMU的UCLINUX準備的比如44B0上的UCLINUX

就這么簡單
?
閑聊ARM的入門(1)
我的筆記剛公布就有很多朋友來找我,把我當高手,問我“ARM怎么入門”。我不是高手,仍然是菜鳥。

但是回想起自己當時的迷茫,特意寫了這篇東西,當作給和我一樣的兄弟姐妹的幫助吧。問這個問題的人多半不是已經工作的工程師,而是和我一樣是學生,所以這篇筆記就把看家當成我一樣的菜鳥,高手勿怪。

首先聲明:本人還沒有找工作,事實上處于研究生剛畢業,還沒開始找工作的空閑時間,44B0只是興趣所在,打發時間。
所有看法完全是自己的感受,不代表任何他人。錯了的觀點各位幫我糾正。

再次補充:很多朋友看了上面的話就問我為什么研究生畢業了還不找工作:)說是打發時間,其實是因為研究生的時候帶了一個項目,申請提前畢業以后項目還有塊尾巴,答應導師把項目做完再走:)就這么簡單。男人總點負點責,呵呵

以下問題常被問到,我就想到哪說到哪吧。

一 首先說說ARM的發展
可以用一片大好來形容,翻開各個公司的網站,招聘里面嵌入式占據了大半工程師職位。
廣義的嵌入式無非幾種:傳統的什么51、AVR、PIC稱做嵌入式微控制器;ARM是嵌入式微處理器;DSP;FPGA。
客觀的講,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因為數字處理與通信領域的空前發展而火暴,小到MP3 射象頭,大到我們軍品里的控制器,應用面很廣。
FPGA的兄弟一般做ANSIC(特殊芯片設計,好象是這么翻譯的)。
而ARM單純說來并不比一個單片機強多少,但是它的獨特就在于不斷下降的價格和提升的性能。這完全依靠于ARM公司的戰略,厲害!!很佩服他們的戰略眼光!!
值得注意的是:在找工作中,企業(著名的,小的不算)對單純的ARM硬件開發工程師并不比單片機重視,很少有大企業的職位里寫“從事過ARM開發優先”。
寫的多的是什么?“嵌入式LINUX”
到這相信大家看出來了吧,需要的是硬件中的軟件。

二 ARM是硬件還是軟件
很難說,ARM是硬件,LINUX是軟件。
ARM的硬件多半已經模塊化了,像我這樣把板子改成這樣的就算動的多的了,這同樣是ARM公司的戰略,再次佩服。
實際中的LINUX的開發工作更多,更耗時。從這方面說ARM應該算是軟件了。
在找工作中更是這樣,舉個例子,聯想里和ARM最接近的是“BIOS工程師”是軟件,MOTO里接近的是嵌入式LINUX工程師是軟件。而其他很多公司把嵌入式產品開發歸為硬件。
所以,不要討論這個,好好玩轉自己的板子才是關鍵。實在不爽你就把自己叫“嵌入式開發工程師”

三 要不要買開發板 買哪家
我的答案是“在你個人的學習方法”,但是如果看家是需要看這騙筆記的水平,個人推薦還是買現成的。
1 買
買板子可以把注意力集中在軟件開發上,軟件開發(尤其是驅動)可以不必擔心自己硬件上的問題,我就是以便調試一邊寫驅動和程序,每次寫驅動前就要先確認硬件沒問題。
另外,買板子更省錢和時間,我自己做的板子,原理圖PCB花了2周以上!制版又15天,回來以后焊接44B0 160個腳!那叫一個麻煩~~花了多少錢呢?2層板,制版費就300塊!當然 我把接口都外引了,還做了個20X18的LCD背板,板子比較大。
總體下來 元件+LCD屏+PCB=11XX塊!夠2410的了。
再有就是買的資料相對來說比較全,但是不要指望有技術支持!都是騙人的,賣你之后就不會理你。

2 做
自己做可以更了解底層硬件,可以按照自己的要求加東西,比如我就加了GPS模塊、 GPRS模塊 、SD卡模塊,擴了個IIC的35個鍵子的鍵盤、把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。做的很爽的。玩一把嗎。

當然,你可以有策略的做,比如像我一樣,把RAM和ROM,網絡都保持和某現成的板子一樣,這樣他們的資料你就可以拿過來直接用,給自己留個退路。其他的如SD了 什么的自己做。都達到了~~就是費錢,費時間。
再有就是給做的朋友幾點建議:盡量拿到現成的板子,盡量多搜集其他板子的全套資料,一定要拿到一張沒問題的原理圖。
網上流傳的原理圖多數是龔俊03年畫的,再這里對龔俊表達一下我的敬意!!牛人!
但是那個圖有個小BUG,我指的是03版的,后來的沒這問題了。8019那地址線和地址有問題。還有人仿照他的PDF圖畫的SCH,更是漏洞百出!譴責!順便譴責把龔俊板子偷賣的人。

3 買哪家
個人感覺分3類吧
1)首先是ZLG的,資料非常的全,感覺他是真正想教你怎么開發ARM,而不是像有的公司自己技術都沒做好就做個板子出來賣錢。但是最大的不利就是價格太貴!而且主要是PHILIP的,貨源比較麻煩~~可能有人說21XX系列的不貴啊,那是總線不外擴的,只能跑UCOS,不能跑UCLINUX。但是說是話,21XX系列才是ARM7的價格性能結合點。ARM7最適合做工業控制,ARM普及,銷量都是怎么來的?都是ARM7來的,而44B0是典型的商業片子。但是,這里如果你看中的是為工作做準備,還是選能跑UCLINUX的吧。
但是仍然作為第一個推薦,因為菜鳥時期,合適的資料太重要了!!在這里被ZLG的務實精神感動!你看人家那代碼寫的。
2)感覺立宇泰的44B0不錯
硬件沒別的,就是資料比較全的說,不像有些家,原理圖直接拿人家的,還錯的~~
3)找個最便宜的
好象最便宜的有賣350的吧?也是沒別的,就是即省了錢 還省時間搜集資料,至于資料全不全,別計較了~~硬件肯定好使就行吧。

四 要不要有51 AVR等單片機基礎
有更好,但沒有也無所謂。
兩個月以前,我只是看別人做,耳濡目染~~,本科學過單片機,從來沒做過。我們這的技術主干做AVR和51,我就跟他們調過C語言程序。你看出來了?我是個不折不扣的菜鳥吧?
但是做這個之前我特意找了ZLG的兩本書,看了里面的例子和原理圖,這很重要。例程里有匯編有C,都看懂了就OK,不用自己現寫

五 開發都需要學習哪些軟件
總結起來最主要的有以下幾個吧
1 ADS調試用
確切的說是ADS+AXD。ADS里包含AXD。原來都用SDT后來ARM公司停止對SDT支持了,改支持ADS了,還是用ADS吧。
有的人的程序發布的仍然是SDT版本的,但基本都可以找到相應ADS的,新人在這里不要發蒙。ADS是編譯器,AXD是調試器。便宜成AXF以后再在ARM的RAM里調試。

2 PLASHPGM
FLASH燒寫的軟件。AXD在RAM里調試,掉電就沒有了,方便程序修改。調試好的程序再下到FLASH里,上電直接運行。
同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的PLASHPGM使用了。

3 BANYANT調試代理(不知道名對不,起這么個難記的,我一般都叫它“半羊”因為知道它那幾天剛吃了烤羊)
調試代理就是用它幫你使用更簡單的JTAG(便宜啊)來實現原本1K才賣的JTAG仿真器的大部分功能。JTAG調試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅動就行了。
調試代理還有很多種,什么H-JTAG了、ARM7了(不知道具體叫什么,就記得可執行文件叫ARM7.EXE)都是,BANYANT比較好。

需要注意的是,沒種調試代理安裝方法雖然都簡單 但都不一樣,需要看說明。而且AXD調試之前都要運行。省錢了,就別怕麻煩了。

4 ARM-ELF-TOOLS工具鏈
里面是UCLINUX開發用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發布的方便你開發的東西。具體安裝方法看我另一篇筆記。
另外如果你開發LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。

5 U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)
生成的BOOTLOADER燒到FLASH里,然后就可以用BOOTLOADER下載 燒寫其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當然UCOS的不用這個,用什么我不知道:)
最新版本是1.1.4 具體使用方法看我另一篇筆記吧。

6 UCLINUX包
UCLINUX的源碼包,不用多說了吧?建議大家用現成的先體會一下,然后再自己編譯,裁剪。因為單獨UCLINUX的編輯技術上比較簡單,但涉及的方面還是比較廣的。

7 VMWARE
老牌的虛擬機軟件,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。

六 有哪些書推薦
主要推薦ZLG的三本書,有這3本再加網絡就不用別的書了,其中主要推薦前2本,3是介紹體系結構的,也不錯
1 ARM嵌入式LINUX系統構建與驅動開發,北航版
驅動寫的很詳細,前期開發介紹也很好
2 ARM 嵌入式系統實驗教程(二),北航版
有ZLG2200的原理圖,實驗程序和注釋,了解人家是怎么開發的。
3 ARM嵌入式系統基礎教程
最重要的是體系結構,匯編部分介紹,看看吧,增加理論素質。
4 44B0數據手冊
寫在這里是強調它的重要。

不推薦ZLG早期出的紅色皮的ARM什么體系結構~只類的
寫的太多,看煩了。

其他的書沒了幾本,沒看見好的,大家有看過的推薦吧。
?
閑聊ARM的入門(2)
mamajinco 發表于 2006-9-7 9:34:00
七 選UCOS?UCLINUX?LINUX?VXWORKS?還是當單片機用
1 搞開發,工程設計,用UCOS,小巧,多進程,簡單,體現了ARM7的精髓。

2 LINUX 正根的嵌入式系統,LINUX消費與通信領域用的比較多,但缺點是必須ARM9才能跑,ARM9的板子自己做就不行了,6層板太貴。買開發板1K達底吧。但是還是推薦選ARM9+LINUX

3 UCLINUX 算投機嵌入式系統:)ARM7上可以跑,由有LINUX近親,學好好可以比較方便的轉向LINUX,像我一樣的窮鬼用吧,呵呵

4 VXWORKS
學好后可以找到高薪工作,但工作機會本身并不比LINUX好找。

5 當單片機用
不推薦,雖然我景仰的ZLG一直號召這么干。因為對于學習來說多進程的系統設計才是ARM7的玩頭,至少你也要整個UCOS啊:)
有朋友問我先學這個當基礎不行嗎?那當然可以~~但我當時就用了1周搞定,就是我先的ADS在RAM中調試的筆記。后來我清空FLASH用的小段程序還是當時寫的LED閃爍程序呢。另外1周里其中還因為自己過于菜,沒把OM設置好導致晶陣不陣
哈哈。這個是必須做的,但一帶而過。目標放的遠一點。

八 學習要用多長時間
我從菜鳥到現在兩個多月,中間被打擾數次。仍然搞定了PCB設計與制版,RAM調試,FLASH下載,UBOOT移植和下載UCLINUX(沒剪裁,用現成的),LCD驅動。
再次坦誠的說:我確實比較菜,說這些不是讓大家羨慕,只是告訴你們“你們應該比這個更好”
我相信良好的態度+合適的方法+及時的總結=成績

九 ARM都玩什么
就幾點
1 硬件設計
2 系統移植
3 驅動開發
4 應用開發
沒了。其中推薦把注意力放在后兩個上,3有難度,4比較靈活,最重要的是都是找工作的砝碼。

十 我用的什么板子
很多人問我這個問題,我特意寫過一個的。再說一次吧。
我是自己做的,RAM、ROM、8019等比較麻煩而當時的自己不理解的都按照龔俊的做的。保持其他不便的情況下做了如下改動。
1 加了串口通信的GPS模塊、 GPRS模塊
一個UART0,一個UART1,當與要用超級終端時用跳線切換。

2 SD卡,和7843觸摸屏
同時掛在SPI總線上,因為SPI只能掛一個設備,同時還做了I/O模擬的準備,把兩個設備又通過跳線掛在4個IO上。

3 擴了個IIC的35個鍵子的鍵盤
用的ZLG的7290,不占用CPU,最大支持64個鍵子,只上了35個,其他留接口。

4 把LCD接口按照買的LCD改裝了,可以用FPC線直接連接。
?所以改動雖然多,但真正很移植了,初期調試有關的并沒動,就是為了現在不那么菜的時候做準備:)

十一 開發流程
這里是我的開發流程
1 設計原理圖(含WIGGLER的JTAG訪真器)
2 設計PCB(含WIGGLER的JTAG訪真器)
3 制版
4 焊接電壓,確定電壓沒問題
5 焊接44B0+JTAG電路+WIGGLER的JTAG訪真器+周邊電路,用BANYANT+仿真器連接,BANYANT提示錯誤,但可以顯示44B0編號,好象是0X0F0F0F0F只類的,說明44B0沒問題
6 焊接晶體+RAM+ROM+周邊電路,用BANYANT+仿真器連接,可以顯示正確的44B0了
7 用BANYANT+仿真器連接,開AXD,在命令行窗口操作RAM,看可不可以修改,可以的話(用內存窗口看RAM地址)RAM就沒問題
可以用這個命令“setmem 0xc000000,0xffffffff,32”
我的RAM掛在BANK6上 所以地址是0XC000000,你要是改了就也得改。
8 用我寫的《自己寫了個C工程模板又寫了個使用說明 》里的方法調試程序吧,寫個簡單的,我當時寫個LED閃爍的。看好使不。
9 把程序按照《FLASH燒寫總結 》里的燒到FLASH里,測試一下
10 按照《UBOOT 移植操作》移植UBOOT
11 按照《UCLINUX下載簡單說明》下個UCLINUX
12 看看驅動開發的方法,自己寫個驅動看看
13 還有很多事東西著你玩 呵呵

十二 關于JTAG訪真器
JTAG訪真器現在用的多是簡板的,一個244那種,用的沒什么不好。
按照并口定義不同分幾種,建議選WIFFLER定義的,因為支持的軟件多。這個網上多的是,不多說了。
值得提的是有的JTAG訪真器原理圖上有跳線用來使能復位信號,這個一般不跳上。就是不用復位信號,因為JTAG協議里本身也可以控制44B0復位。
當然,板子上的復位信號跳線也不用跳。

十三 哪個公司的ARM
這個是問題比較簡單。
1 ARM7主要就幾個公司的
三星,PHILIP,ATMEL的
ATMEL的有比較便宜的AT91SAM7S32 和AT91SAM7S64 專為8位應用產品量身定做,價格很便宜好象《3刀吧。和PHILIP的21XX差不多,資料太少,項目中選還不錯。
其他兩家上面說了的不多說了吧

2 ARM9
這個玩2410和2440的多吧,現在2440還比較火啊 可以考慮買個了
但是2410就比較便宜了,作為學習來說反到和不錯,推薦整一個:)
其實ARM9用的最多的領域應該是消費電子,比如手機PDA,而這上面用的多的應該是INTEL的和TI的吧。
但是INTEL的TI的入門材料少,價格高,自己看情況定吧。

UBOOT命令總結(轉)
很好的UBOOT命令總結,我在起步時就是看的這篇東西,熟悉了以后就用“?”看自帶幫助就行:)

Printenv 打印環境變量。

Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
Environment size: 80/8188 bytes

Setenv 設置新的變量

Uboot> setenv myboard AT91RM9200DK
Uboot> printenv
baudrate=115200
ipaddr=192.168.1.1
ethaddr=12:34:56:78:9A:BC
serverip=192.168.1.5
myboard=AT91RM9200DK
Environment size: 102/8188 bytes

Saveenv 保存變量

命令將當前定義的所有的變量及其值存入flash中。用來存儲變量及其值的空間只有8k字節,應不要超過。

Loadb 通過串口Kermit協議下載二進制數據。

Tftp 通過網絡下載程序,需要先設置好網絡配置

Uboot> setenv ethaddr 12:34:56:78:9A:BC
Uboot> setenv ipaddr 192.168.1.1
Uboot> setenv serverip 192.168.1.254???? (tftp服務器的地址)
下載bin文件到地址0x20000000處。
Uboot> tftp 20000000 application.bin (application.bin應位于tftp服務程序的目錄)

Uboot> tftp 32000000 vmlinux
把server(IP=環境變量中設置的serverip)中/tftpdroot/ 下的vmlinux通過TFTP讀入到物理內存32000000處。

Md 顯示內存區的內容。

Mm 修改內存,地址自動遞增。

Nm 修改內存,地址不自動遞增。

Mw 用模型填充內存

mw 32000000 ff 10000(把內存0x32000000開始的0x10000字節設為0xFF)

Cp 拷貝一塊內存到另一塊

Cmp 比較兩塊內存區

這些內存操作命令后都可加一個后綴表示操作數據的大小,比如cp.b表示按字節拷貝。

Protect 寫保護操作

protect on 1:0-3(就是對第一塊FLASH的0-3扇區進行保護)
protect off 1:0-3取消寫保護

Erase 擦除扇區。

erase: 刪除FLASH的扇區
erase 1:0-2(就是對每一塊FLASH的0-2扇區進行刪除)

對DataFlash的操作

U-Boot在引導時如果發現NPCS0和NPCS3上連有DataFlash,就會分配虛擬的地址給它,具體為 :
0xC0000000---NPCS0
0xD0000000---NPCS3

run 執行設置好的腳本

Uboot> setenv flashit tftp 20000000 mycode.bin\; erase 10020000 1002FFFF\;
cp.b 20000000 10020000 8000
Uboot> saveenv
Uboot> run flashit

bootcmd 保留的環境變量,也是一種腳本

如果定義了該變量,在autoboot模式下,將會執行該腳本的內容。

Go 執行內存中的二進制代碼,一個簡單的跳轉到指定地址

Bootm 執行內存中的二進制代碼

要求二進制代碼為制定格式的。通常為mkimage處理過的二進制文件。
起動UBOOT TOOLS制作的壓縮LINUX內核, bootm 3200000

Bootp 通過網絡啟動,需要提前設置好硬件地址。

? 得到所有命令列表

help? help usb, 列出USB功能的使用說明

ping? 注:只能開發板PING別的機器

usb

usb start:? 起動usb 功能
usb info:? 列出設備
usb scan:? 掃描usb storage(u 盤)設備

kgo? 起動沒有壓縮的linux內核

kgo 32000000

fatls 列出DOS FAT文件系統

fatls usb 0列出第一塊U盤中的文件

fatload 讀入FAT中的一個文件

fatload usb 0:0 32000000 aa.txt 把USB中的aa.txt 讀到物理內存0x32000000處!

flinfo 列出flash的信息

nfs

nfs 32000000 192.168.0.2:aa.txt
把192.168.0.2(LINUX 的NFS文件系統)中的NFS文件系統中的aa.txt 讀入內存0x32000000處。
?
CPU頻率計算方法---PLL設置
看見很多朋友不會計算PLL分頻和串口頻率,整理個筆記發上來

cpu時鐘頻率和串口波特率的計算公式
S3C44B0的系統時鐘設置公式
Fpllo 為系統的主頻,此處為60MHz
Fin 為晶振的頻率,此處為10MHz
一. 通過PLL輸出時鐘脈沖頻率的計算:
a) Fpllo = (m × Fin)/ (p × 2^s)
b) m = (MDIV + 8) , p = (PDIV + 2), s = SDIV
c) 20MHz < Fpllo < 66MHz
d) Fpllo * 2s < 170MHz (s應該盡可能的大)
e) 1MHz <= Fin/p < 2MHz (最好是Fin/p = 1MHz)
f) 如果PLL打開則:Fpllo = Fout
g) 這樣計算出MDIV, PDIV, SDIV的值寫入PLLCON寄存器中就可設置Fpllo的輸出頻率。
根據 d)知道s=1
根據 e)知道p=10
再根據 a)就知道了m=120,注意2^s代表2的s次方
再根據 b)知道MDIV=112, PDIV=8, SDIV=1
根據44B0數據手冊5-14頁算出 PLLCON=0X70081
注意:PLLCON的結果不為一!比如P可以取8 取7……
注意:PLLCON寄存器是20位的 各個區域中間有空的
比如MDIV是寄存器里19-12位,PDIV是9-4位兩個中間有11,10位空,如果用2進制算就添0

不過做過硬件的就知道 大可不必只要把MDIV, PDIV, SDIV用WEINDOWS自帶計算機直接由2進制轉換成16進制順序寫就行
比如MDIV=112=0x70, PDIV=8=0x08, SDIV=1=0x1
PLLCON寄存器就是0x70081(看到這 連手冊都不用翻了吧?:))
還得多說一句 不是0x700801,因為SDIV=1=0x1不是0X01,跟PDIV=8=0x08不一樣

S3C44B0的UART波特率計算公式---分頻設置
S3C44B0的UART波特率計算公式
MCLK即主頻 此處為60MHz
UBRDIVn(又稱divisor) = ( (int)(MCLK / (bps * 16) + 0.5) – 1 )
MCLK = Fout = Fpllo
Bps = 1200,9600,19200,38400,57600,115200
例如 主頻=60MHz=60000000Hz
串口速度選115200

divisor=取整[60000000/(115200*16)??? +? 0.5]??? -1?? =?? 32
?
MINICOM設置
最近的朋友很多問MINICOM設置的問題
把原來寫的整理一下 發一下 現成的還行 有朋友問我驅動怎么開發
這個就比較麻煩了:)還是等我過段時間了也把手頭的幾個驅動搞定了再說

---------正文-------------
MINICOM是LINUX提供的和WEINDOWS超級終端一樣的工具,一般用做串口與開發板通信,當然有的板子也用USB,但這里只介紹串口的設置

一 VMWARE虛擬機添加串口(如果沒用虛擬機可以跳過這步)
如果在VMWARE虛擬機下 一定要記得先確認這步 要不不好使 很多朋友的問題就在這里!
先關閉虛擬機下的LINUX,然后設置一下虛擬機:在vm-〉settings-〉hardware里添加串口 COM1 COM2都加上吧

二 設置MINICOM
進LINUX系統 開個控制臺 字符里輸入minicom 就啟動了
這時一般還要設置一下
Ctrl+A進入控制界面(Esc返回)按Z進設置
一般設置兩個
1 按O(注意:是O不是零)設置第三第四項,分別是串口設置與MODEM設置
串口設置:不用說了吧 進去都看明白了 敲字母 設置相應項目 比如“115200 8-N-1”
MODEM設置:也要設置一下 要不有的看不到東西 把上面兩個選項都清空 就是按那行前面的字母(好象是‘A’和什么)然后光標就跳過去了 刪之
回車 到開始選第三第四項的菜單 選下面的保存(別忘了保存 菜鳥們常犯)
2 回到剛才按O的界面 看一下P 里面的串口設置對不對
對就不用改了 不對改之

提醒一下:LINUX設備的編號是從0開始的 比如串口1也就是COM1在LINUX里的設備號叫ttyS0
串口設置里面要用到 那里添全部路徑也就是"/dev/ttyS0"
好了 就這么簡單
?
uclinux編譯文檔
user94/mamajinco/upload/1012638628.rarUCLINUX編譯的過程是非常折磨人的,我在這整了3天!媽的!把很多公司的都試遍了。第3天的晚上10點搞定了~~

但說真的,很難寫下來整體過程,因為跟版本有關,跟各個板子也有關系……

所有的移植都是用2.4做的,誰讓咱是菜鳥呢,先從簡單的做。
總結幾點吧,介紹個現在主流的立宇泰的板子UCLINUX編譯方法和我自己拿HFRK的板子提供的UCLINUX改的8019和NFS的方法
一 立宇泰(憑回憶,有些地方當時沒記下來)
1下載
arm-elf-tools-20030314.sh//開發工具
uClinux-dist-20040408.tar.gz//源代碼包
uClinux-20040408-ARMSYS.rar//立宇泰的補丁
configfiledemo.rar//立宇泰的設置文件

前兩個UCLINUX的網站有下的,很快。
后兩個立宇泰公司網站有下的,很小,也很快。

2 安裝
arm-elf-tools-20030314.sh
在LINUX(我用的VMWARE跑的PC4)下雙擊,選運行就行,不多說了,有人這里出過問題,提示一個錯誤,去21IC搜索一下,把一個參數改一下就行。但我的沒這個問題。

uClinux-dist-20040408.tar.gz
考到/usr/src/下,右鍵截壓縮到當前目錄,也沒什么說的。就是記得硬盤要有足夠的空間,這個比較大,一般還得有幾個備份,得2G左右。

uClinux-20040408-ARMSYS.rar
這個補丁確實不錯!!好商家!還共享了,改了一堆文件。
截壓縮不說了,得到PARCH文件,拷貝到剛才UCLINUX源代碼包目錄下,注意,要到uClinux-dist目錄里。不是uClinux-dist-20040408.tar.gz目錄里。

還不能直接補丁,需要改一下uClinux-dist/vector/Samsung/4510B這個文件夾,直接把名字改成44B0就行了。

打開終端吧,CD到uClinux-dist目錄里輸入以下命令:
patch -p1 < uClinux-20040408-ARMSYS.patch
注意-P1是數字一不是L字母,命令什么意思就不解釋了,GOOGLE一下,有個兄弟專門講了。
打包到最后會有問題,因為剛才咱們把4510直接改成44B0了嘛,問你問題的時候敲的N吧,退出。
把uClinux-dist/vector/Samsung/44B0里Makefile 和 rc打開,對著uClinux-20040408-ARMSYS.patch改。
具體方法是:雙擊(這里PC機都默認使用GNOME,比KDE方便,比如雙擊打開)查看PATCH文件。對著改吧。
補充個語法知識:.patch里面主要有幾種符號分別是“+++”“---”"+""-""@@""diff"
每個區域都是diff --- +++ @@四行開始 之后是+ -或者無符號的行,+代表在一個位置加一行,-代表刪除一行,什么都不帶就什么都不做,用來定位的。
好了,文件最后可以找到 diff uClinux-dist/vector/Samsung/44B0開始的文件了吧?
對著把Makefile 和 rc改了吧。

打完補丁,還得做一件事,把/uClinux-dist/Linux-2.4.x/Driver/Block/blkmem.c改了
#ifdef CONFIG_BOARD_SNDS100
extern char romfs_data[];
extern char romfs_data_end[];
#endif
后加個
#ifdef CONFIG_BOARD_MBA44
extern char romfs_data[];
extern char romfs_data_end[];
#endif
?
#ifdef CONFIG_BOARD_MBA44
{0, 0xc700000, -1},
#endif
改策成
#ifdef CONFIG_BOARD_MBA44
{0, romfs_data, -1},
#endif

要不編譯后的內核運行的時候會有“Kernel panic: VFS: Unable to mount root fs on XXXXX”錯誤

3 設置
make menuconfig
當然 也可以make Xconfig 但不推薦,雖然顯示很好,但速度慢~~
進了菜單,基本就幾個鍵子上 下 左 右 回車 空格。
選什么比較麻煩,建議第一次先用剛才下的configfiledemo立宇泰的設置文件,解壓以后是三個文件,分別對應主菜單,內核和用戶菜單。
選擇Load an Alternate Configuration File
里面輸入文件的地址與名稱,記得開始的時候說的VMWARE-TOOS共享吧?把這幾個文件拷貝到合適的目錄下吧,我就放在uClinux-dist-20040408.tar.gz下了。
左右選《EXIT》退出。選保存。

一會自動彈出KERNEL設置菜單,和上面一樣Load an Alternate Configuration File,選config_kernel文件。
需要注意的是這里的USB好象不對,因為板子上沒整USB(以后再整)就把USB的選項直接去掉了(到USB子菜單下把[*]去了)。
要不會有hcb.c錯誤。

System Type里要改一下
(Samsung) ARM system type
[*] Set flash/sdram size and base addr
(00800000) (S)DRAM Size
(00200000) FLASH Size
(S3C44B0X-MBA44) Board Implementation

Block devices也改一下
[*] RAM disk support
(4096)?? Default RAM disk size
(AMD)?? FLASH type
(AUTO)?? FLASH size
(AUTO)?? FLASH bit width

General setup改一下
[*] Timer and CPU usage LEDs
[*]?? Timer LED
[*]?? CPU usage LED

其他沒說就是別動

左右選《EXIT》退出。選保存

一會自動彈出USER設置菜單,和上面一樣Load an Alternate Configuration File,選config_user文件。(語法多整齊)
沒有注意了,直接左右選《EXIT》退出。選保存。

說實在的,要是沒有這些CONFIG文件,自己改是件很麻煩的事,本人就嘗試了自己增加NFS和修改8019(我的板子是自己畫的和這個不一樣)那叫一個麻煩~~~。建議大家新手還是先把這些順利的做完了再說改的。

退出以后就是編譯了。
4 編譯
幾大命令
make dep
make clean
make lib_only
make user_only
make romfs
make
順利的話一次全的執行了,但第3步要是自己鼓搗過在這里就要受苦了,比如后面要講的把驅動編譯進內核里。
這里要說的是,出問題不可怕,但一要做好記錄,知道自己改什么,錯誤可能出現在什么地方,因為報告的錯誤很可能不是出現錯誤的位置。二要善于搜索,使用GOOGLE搜索。三 要BBS提問的時候把錯誤,操作記錄都說清楚了,等待高手給你解答。四就是自己要積累看MAKE錯誤的知識。此外別無他法!

二 好了
我最后用的是HFRK的包,版本是2005311,不用打補丁。但聽說所有2005311的包都不用打了,好消息啊。但編譯的過程仍然折磨人。
設置與編譯的過程仍然和上面一樣,這里共項我的CONFIG文件供大家參考吧。就不多說了。
下面說我自己改8019驅動的方法。
8019用的是drivers/net/下的ne.c文件改的。
改之前要差幾點:8019是8位還是16位,地址線是怎么對應的(8019是ADDR1對44B0的ADDR幾?),8019掛在44B0的哪個BANK上,8019使用哪個中斷,中斷號多少。

好了,對應的改吧。
先改文件。
drivers/net/ne.c
找到CONFIG_BOARD_MBA44,修改一下中斷號dev-irq,改成我們電路中使用的EINT1(中斷號24),掛在BANK3上地址0x06000000
……
#elif defined(CONFIG_BOARD_MBA44)
static int once = 0;
if (once)
return -ENXIO;
dev->base_addr = base_addr = 0x06000000;
dev->irq = 24 ;
once++;
……

注意:一定要知道8019地址線是怎么對應的,我的是0對0(8位)但有的朋友8019是7對0,就要改了,但是具體哪個文件忘了,GOOGLE搜索一下吧:)

進make menuconfig里把以下選了
1 General Setup --->
Networking Support

2Networking options --->
?Packet socket
TCP/IP networking

3 進Networking device Support---》
4 File system --->
Network device support?

Ethernet (10 or 100Mbit) --->
Other ISA cards
NE2000/NE1000 support
注意:這里通過[ ]??????? 16Bits mode support選擇8019工作位,我沒選,因為做的是8位的

4 Network Applications --->
arp
ifconfig
inetd
ping
route
好了,之后就是編譯了,燒寫,然后測試一下PING宿主機,NFS掛一下看看。
注意:宿主機的防火墻要關了,不然PING不通,當然NFS也不行。

好了,編譯內核就到這里,因為過于繁瑣,只能分部分來簡化寫了~~大家有問題再交流吧。

搞定UCLINUX移植以后就開始整個最小的程序吧,當然是HELLOWORLD了:)
一 先寫個helloworld.c (對于小代碼我喜歡先在WINDOW下建個“新建 文本文檔.txt”再在里面寫代碼,然后保存后改名成helloworld.c 注意的是擴展名也要從TXT改成C才行,原來說過,不多說了)
里面寫下面等號里的代碼:
==================
#i nclude <stdlib.h>
#i nclude <stdio.h>

int main(void)
{
?printf("hello world ! I got it!\n");
?return 0;
}
==================
不用解釋了吧:)

二 然后編寫個makefile吧,別總用arm-elf-gcc了。
為以后編寫大規模程序打個基礎:)
建個makefile(和前面一樣,先TXT然后改名,沒有擴展名)
=====================
EXEC = helloworld
OBJS = helloworld.o

all: $(EXEC)
$(EXEC): $(OBJS)
?$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)

romfs:
?$(ROMFSINST) /bin/$(EXEC)
clean:
?rm -f $(EXEC) *.elf *.gdb *.o
======================
基本能看明白吧?MAKE的語法比較復雜,就不多講了,可以看我在前幾篇筆記里推薦的ZLG那本書。但幸運的是基本不用自己動手了,LINUX源代碼里有很多MAKE 拿來改改吧:)

三 下面就是有朋友問我怎么把程序下到板子里了
一般說來有幾種方法。
1 板子掛載宿主機的NFS共享目錄,把程序拷貝到/tmp目錄(在RAM里)測試一下,但缺點是掉電要消失,只適合做調試時用。
2 做JFFS之類的日志文件系統,和上面一樣NFS掛載拷貝過來,JFFS文件系統可以保證掉電不消失,類似U盤里拷貝程序(只是結果類似,原理完全不同)。
3 直接把程序燒寫進ROMFS文件系統,這里就只介紹這種。原因有兩點 首先 我還沒學怎么做JFFS,其次 我還沒學怎么做JFFS。哈哈
好了,那開工。

1)在uClinux-dist/user/下建立目錄hello
把helloworld.c和makefile拷貝到里面,怎么拷貝不用說了吧?VMWARE-TOOLS共享文件夾吧。

2)修改uClinux-dist/user/makefile

在適當位置 找一行(這句語法扎堆的地方)加
dir_$(CONFIG_USER_HELLO)?????????????? += hello

3)記住CONFIG_USER_HELLO這個名(自己可以改的 )
在uClinux-dist/config/Configure.help里加(扎堆)下面兩行
CONFIG_USER_HELLO
? Only print hello world
上面是名(和前面必須一致)下面是注釋

4)改uClinux-dist/config/Configure.in里按照扎堆的原則加下面幾行
#############################################################################
mainmenu_option next_comment
comment 'Hello World'
bool 'demo' CONFIG_USER_MYAPP_DEMO
endmenu
#############################################################################
#號中間加的就是語法了,基本意思就是在Hello World--->下加個[]demo
編譯過內核的都熟悉吧:)

5)像編譯內核一樣編譯了
進內核源代碼目錄,比如uClinux-dist
make menucinfig
把主菜單選好了,不用說了吧?我的編譯內核筆記里有,當然如果不想修改內核就只選上以下這個
Kernel/Library/Defaults Selection? --->[*] Customize Kernel Settings (NEW)
意思是修改USER程序
EXIT 保存
然后在Customize Kernel Settings菜單里最后會出現Hello World--->
回車進去以后看見[]demo了吧?
選上

EXIT 保存

6)編譯
幾大命令~~~
make dep
make clean
make lib_only
make user_only
make romfs
make
之后在生成uClinux-dist/image下有了uclinux_rom.bin

7)燒寫到板子里
板子里有UBOOT了吧?
順序做下面步驟(我在UBOOT編譯筆記里寫過,再寫一次)
A:loadb 0xc500000
B:發送(KERMIT協議)uclinux_rom.bin
C:erase 0x50000 0x1fffff
D:cp 0xc500000 0x50000 文件大小
注意:文件大小就是在傳輸完uclinux_rom.bin后顯示的數字 0X開頭=什么的那個0X數字
比如提示是0X0012a7f1=1222641
就0X0012a7f1/4+2=0x4A9FE命令就是:cp 0xc500000 0x50000 0x4A9FE
E:重起板子 就進UCLINUX了


8)板子進到/bin下 看是不是有個helloworld?
執行它就看見“hello world ! I got it!”
注意:因為把文件編寫到內核了,所以不是用./helloworld
直接在任何目錄下寫helloworld就行

最簡單的驅動---讓LED閃一閃-1
user94/mamajinco/upload/1012942565.rar這幾天抽時間做了幾個驅動,基本都是字符設備,什么GPS 模塊了GPRS模塊了LCD了
有很多朋友關心驅動,但更菜的菜鳥居多:)總結了一下 把I/O驅動改成個更簡單的LED驅動吧
做的工作非常簡單,就是讓連在GPC0-GPC2上的LED順序閃10下
目的就是演示一下驅動過程。

一 先補充一下基礎知識 懂的朋友就不用看了

嵌入式驅動的概念
?
設備驅動程序是操作系統內核和機器硬件之間的接口,設備驅動程序為應用程序屏蔽了硬件的細節,這樣在應用程序看來,硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作。設備驅動程序是內核的一部分,它主要完成的功能有:對設備進行初始化和釋放;把數據從內核傳送到硬件和從硬件讀取數據;讀取應用程序傳送給設備文件的數據、回送應用程序請求的數據以及檢測和處理設備出現的錯誤。
?
Linux將設備分為最基本的兩大類:一類是字符設備,另一類是塊設備。字符設備和塊設備的主要區別是:在對字符設備發出讀/寫請求時,實際的硬件I/O一般就緊接著發生了。字符設備以單個字節為單位進行順序讀寫操作,通常不使用緩沖技術;塊設備則是以固定大小的數據塊進行存儲和讀寫的,如硬盤、軟盤等,并利用一塊系統內存作為緩沖區。為提高效率,系統對于塊設備的讀寫提供了緩存機制,由于涉及緩沖區管理、調度和同步等問題,實現起來比字符設備復雜得多。LCD是以字符設備方式加以訪問和管理的,Linux把顯示驅動看做字符設備,把要顯示的數據一字節一字節地送往LCD驅動器。
?
Linux的設備管理是和文件系統緊密結合的,各種設備都以文件的形式存放在/dev目錄下,稱為設備文件。應用程序可以打開、關閉和讀寫這些設備文件,完成對設備的操作,就像操作普通的數據文件一樣。為了管理這些設備,系統為設備編了號,每個設備號又分為主設備號和次設備號。主設備號用來區分不同種類的設備,而次設備號用來區分同一類型的多個設備。對于常用設備,Linux有約定俗成的編號,如硬盤的主設備號是3。Linux為所有的設備文件都提供了統一的操作函數接口,方法是使用數據結構struct file_operations。這個數據結構中包括許多操作函數的指針,如open()、close()、read()和write()等,但由于外設的種類較多,操作方式各不相同。Struct file_operations結構體中的成員為一系列的接口函數,如用于讀/寫的read/write函數和用于控制的ioctl等。打開一個文件就是調用這個文件file_operations中的open操作。不同類型的文件有不同的file_operations成員函數,如普通的磁盤數據文件,接口函數完成磁盤數據塊讀寫操作;而對于各種設備文件,則最終調用各自驅動程序中的I/O函數進行具體設備的操作。這樣,應用程序根本不必考慮操作的是設備還是普通文件,可一律當作文件處理,具有非常清晰統一的I/O接口。所以file_operations是文件層次的I/O接口。

二 開始寫了
采用了在代碼里加注釋的方法,同時把幾個文件上傳了一下,喜歡的朋友可以下載當作模板。每個文件以==隔開
一共需要寫寫3個文件,1個驅動頭文件,1個驅動文件,一個驅動測試用程序文件
分別是test.h,test.c和ledtest.c

簡單說說驅動都做什么,怎么做
1 系統加載驅動
2 應用程序里打開設備(文件)
3 應用程序對設備操作
4 應用程序關閉設備(文件)
5 系統關閉設備

應用程序如何對設備操作?
記得C語言里怎么寫文件嗎?這里很相象的。對于一般的字符設備(還有塊設備,網絡設備等等)主要有3個函數(還有很多,可以看)llseek??? read:??? write:??? ioctl:? 這里只用ioctl:控制函數,當然也可以使用讀寫函數操作IO 口,但ioctl:似乎更適合。
具體實現可以看ledtest.c文件了。

test.c中主要有幾個函數 分別負責初始化和清除,打開和關閉。以及ioctl對串口寄存器寫一些數據。
初始化和清除,打開和關閉函數里都各有一句主要句,已經分別作了注釋。只要記住就好了。

對寄存器操作就不單獨說了,需要看44B0數據手冊了。好了 剩下的看代碼吧。
==============================
==========test.h==================
==============================

/****************************************Copyright (c)**************************************************
**?????????????????????????????? FREE
**
**--------------File Info-------------------------------
** File Name: config.h
** Last modified Date:? 2006-9-9
** Last Version: 1.0
** Descriptions: User Configurable File
**
**----------------------------------------------------
** Created By: ZLG CHENMINGJI
** Created date:?? 2006-9-9
** Version: 1.0
** Descriptions: First version
**
**-------------------------------------------------
** Modified by:MAMAJINCO
** Modified date:2006-9-9
** Version:1.0
** Descriptions:在此忠心感謝ZLG的模版 我的高質量編程意識起源于此
**
*****************************************************/
//防止重復包含此文件而設置的宏
#ifndef __CONFIG_H
#define __CONFIG_H

//包含必要的頭文件
#i nclude <linux/config.h>
#i nclude <linux/module.h> //模塊必須包含的頭文件
#i nclude <linux/kernel.h>?????? /* printk()函數,用于向內核輸出信息 */
#i nclude <linux/fs.h>?????????? /* 很重要 其中包含了如file_opration等結構 此結構用于文件層接口 */
#i nclude <linux/errno.h>??????? /* 錯誤代碼*/
#i nclude <asm/uaccess.h>
#i nclude <linux/types.h>
#i nclude <linux/mm.h>
#i nclude <asm/arch/s3c44b0x.h>

/********************************/
/*???? 應用程序配置???????????? */
/********************************/
//以下根據需要改動
//定義主設備號 設備名稱

#define LED_MAJOR_NR 231 //231~239 240~255都可以

#define DEVICE_NAME "led"?????????????? /* name for messaging */

#define SET_LED_OFF 0
#define SET_LED_ON 1

#endif
/************************??????????????????????????? End Of File
*********************************************************/


=============END===============

最簡單的驅動---讓LED閃一閃-2
==============================
============test.c================
==============================

/*************Copyright (c)**************************
**?????????????????????????????? FREE
**
**--------------File Info-----------------------------------------
** File Name: test.c
** Last modified Date:? 2006-9-9
** Last Version: 1.0
** Descriptions: User Configurable File
**
**----------------------------------------------------
** Created By: ZLG CHENMINGJI
** Created date:?? 2006-9-9
** Version: 1.0
** Descriptions: First version
**
**--------------------------------------------------------
** Modified by:MAMAJINCO
** Modified date:2006-9-9
** Version:1.0
** Descriptions:在此忠心感謝ZLG的模版 我的高質量編程意識起源于此
**
***********************************************************/
#i nclude "test.h"//包含驅動頭文件


/************************************************************
????????????? function announce
******************************************************/
//以下是關鍵函數的聲明
static int led_open(struct inode *inode, struct file *filp);
//打開設備時用的 linux把設備當作文件管理 設備最好在用的時候再打開 盡量不要提前
static int led_release(struct inode *inode, struct file *filp);
static int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
??????????????? unsigned long param);
//控制函數 這里用于控制LED亮與滅
int? led_init(void);//注冊時用的 注意 模塊注冊的越早越好
void led_cleanup(void);//卸載時用的

/*************************************************************
**????????????????? "全局和靜態變量在這里定義"????????
**??????? global variables and static variables define here

/****************************************************************/

static struct file_operations LED_fops =??????? /* 前面基礎部分提到的重要結構體了*/
{
??? owner:????? THIS_MODULE,

#if 0/*注意:#if 0-#endif里的代碼是不編譯的,但這里為了驅動模板講解上的完整性仍然加上了*/
??? llseek:???? gpio_llseek,
??? read:?????? gpio_read,
??? write:????? gpio_write,
#endif
??? ioctl:????? led_ioctl,//控制函數
??? open:?????? led_open, //打開函數,打開文件時做初始化的
??? release:??? led_release,//釋放函數,關閉時調用
};

???????????????
/**************************************************************
** Function name: led_open
** Descriptions:? open device
** Input:inode:?? information of device
**?????? filp:??? pointer of file
** Output 0:????? OK
**??????? other:? not OK
** Created by:??? Chenmingji
** Created Date:? 2006-9-9
**-------------------------------------------------------------
** Modified by:mamajinco
** Modified Date: 2006-9-9
**--------------------------------------------------------------
**************************************************************/
??????? static int led_open(struct inode *inode, struct file *filp)
{
?/*初始化放在OPEN里*/
?(*(volatile unsigned *)S3C44B0X_PCONC) &= 0xffffffc0;
?(*(volatile unsigned *)S3C44B0X_PCONC) |= 0xffffffd5; /*GPIO C口0~2 設置為輸出*/

?(*(volatile unsigned *)S3C44B0X_PUPC) &= 0xffffffc0;/*GPIO C口0~2 設置為上拉*/

???? MOD_INC_USE_COUNT;
???? return 0;?????????
}
?
最簡單的驅動---讓LED閃一閃-3
*********************************************************
** Function name: led_release
** Descriptions:? release device
** Input:inode:?? information of device
**?????? filp:??? pointer of file
** Output 0:????? OK
**??????? other:? not OK
** Created by:??? Chenmingji
** Created Date:? 2006-9-9
**-----------------------------------------------------
** Modified by: mamajinco
** Modified Date: 2006-9-9
**--------------------------------------------------------
****************************************************/
??????? static int led_release(struct inode *inode, struct file *filp)
{
??? MOD_DEC_USE_COUNT;
??? return(0);
}
/****************************************************
** Function name: led_ioctl
** Descriptions:? IO control function
** Input:inode:?? information of device
**?????? filp:??? pointer of file
**?????? cmd:???? command
**?????? arg:???? additive parameter
** Output 0:????? OK
**??????? other:? not OK
** Created by:??? Chenmingji
** Created Date:? 2006-9-9
**-------------------------------------------------------
** Modified by: mamajinco
** Modified Date: 2006-9-9
**----------------------------------------------------------
***********************************************************/
??????? static int led_ioctl(struct inode *inode, struct file *filp,
?????????????????????? unsigned int cmd, unsigned long arg)
{
??? if( arg > 2 )//判斷IO是否屬于0-2
?return -1;

??? switch(cmd)
??? {
??????? case 0://把ARG傳來的IO口編號轉換成寄存器數據,把相應IO口置低
???????? (*(volatile unsigned *)S3C44B0X_PDATC) |= 0x1 << arg;

???????????? break;

??????? case 1://把ARG傳來的IO口編號轉換成寄存器數據,把相應IO口置高
? (*(volatile unsigned *)S3C44B0X_PDATC) &= 0x0 << arg;
???????????? break;

??????? default:
? return -1;
? break;
??? }
??? return 0;
}

/**************************************************
** Function name: led_init
** Descriptions:? init driver
** Input:none
** Output 0:????? OK
**??????? other:? not OK
** Created by:??? Chenmingji
** Created Date:? 2006-9-9
**------------------------------------------------
** Modified by: mamajinco
** Modified Date: 2006-9-9
**-----------------------------------------------------
*************************************************/
?int led_init(void)
{
??? int? result;

??? result = register_chrdev(231,"led",? &LED_fops);
/*關鍵語句 用于注冊
** 注意!這是傳統的注冊方法 在2.4以上的linux版本中 加入了devfs設備文件系統 使注冊更容易 但為了與大部分資料相**同 大家看的方便? 這里仍然使用老方法*/
??? if (result < 0) //用于異常檢測
??? {
??????? printk(KERN_ERR DEVICE_NAME ": Unable to get major %d\n", LED_MAJOR_NR ); //printk用于向內核輸出信息
??????? return(result);
??? }


??? printk(KERN_INFO DEVICE_NAME ": init OK\n");
?
?return(0);
}

最簡單的驅動---讓LED閃一閃-4
/*************************************************************
** Function name: led_cleanup
** Descriptions:? exit driver
** Input:none
** Output none
** Created by:??? Chenmingji
** Created Date:? 2006-9-9
**--------------------------------------------------------
** Modified by: mamajinco
** Modified Date: 2006-9-9
**-----------------------------------------------------
**************************************************/
??????? void led_cleanup(void)
{
??? unregister_chrdev(231, "led"); //與register_chrdev配對使用 用于清楚驅動
}

/***********************************************************
**??????????????????????????? End Of File
****************************************************/


===============END=============

=====================================
=============ledtest.c===============
===================================

/*********************Copyright (c)**************************
**?????????????????????????????? FREE
**
**--------------File Info----------------------------
** File Name: led.c
** Last modified Date:? 2006-9-9
** Last Version: 1.0
** Descriptions: User Configurable File
**
**-------------------------------------------------------
** Created By: ZLG CHENMINGJI
** Created date:?? 2006-9-9
** Version: 1.0
** Descriptions: First version
**
**--------------------------------------------------------
** Modified by:MAMAJINCO
** Modified date:2006-9-9
** Version:1.0
** Descriptions:在此忠心感謝ZLG的模版 我的高質量編程意識起源于此
**
********************************************************/

#i nclude <stdio.h>
#i nclude <stdlib.h>
#i nclude <unistd.h>
#i nclude <fcntl.h>
#i nclude <sys/types.h>
#i nclude <sys/stat.h>

void delay(int delay)//延時用函數
{
?int i;
?for(;delay>0;delay--)
?{
? for(i=0 ; i < 5000 ; i ++);
?
?}
}

int main()
{
?int fd1;
?int j;

?fd1= open("/dev/led" , O_RDWR);/*打開設備,就象打開文件一樣簡單*/

?if(fd1 == -1)/*異常處理*/
?{
? printf ( "file can not be open" );
? return -1;
?}
?
?for (j =0 ; j< 10 ; j ++)/*重復10次*/
?{
? ioctl(fd1 , 1 , 0);/*GPC0上LED亮*/
? delay(1000);
? ioctl(fd1 , 0 , 0);/*GPC0上LED滅*/
? ioctl(fd1 , 1 , 1);/*GPC1上LED亮*/
? delay(1000);
? ioctl(fd1 , 0 , 1);/*GPC1上LED滅*/
? ioctl(fd1 , 1 , 2);/*GPC2上LED亮*/
? delay(1000);
? ioctl(fd1 , 0 , 2);/*GPC2上LED滅*/
? delay(1000);
?}
?
?close (fd1);/*關閉設備(文件)*/
?return 0;
?
}


===============END===============

最簡單的驅動---讓LED閃一閃-5
三 驅動編譯進內核
編譯的中對于菜鳥來說需要需要注意幾點
1 被打錯字,包括上面的函數中也是!
就算各位扔磚頭我也得說,因為編譯進內核是很費時間的~~而且最重要的是對于菜鳥來說make的錯誤提示都是一道關,絕對不要自己給自己設置障礙!我們團隊里就常有兄弟姐妹出現這樣的錯誤,怎么看怎么對,尤其是從書上抄下來的命令和字符,l和1還有I你怎么分?最后一個是大寫的i :)
2 不要用中文文件名 包括ABC(復件)
要不然MAKE出錯
3 在各個現成的文件里修改的時候按照原有的格式修改 要不然菜鳥很難保證不犯低級錯誤
讓我想起來了IBM的規律總結測試題:6 13 7 14 8 下一個數字是什么?

好了 開始修改!
===============START==============
uClinux-dist/linux-2.4.x/drivers/char/Makefile
----------------------------------------------
obj-$(CONFIG_C5471_WDT) += wdt_c5471.o之后加
obj-$(CONFIG_TEST) += led.o
================END============

=================START===========
uClinux-dist/linux-2.4.x/drivers/char/Config.in
-----------------------------------------
if [ "$CONFIG_CPU_S3C44B0X" = "y" ]; then
?? bool 'Samsung S3C44B0X serial ports support' CONFIG_SERIAL_S3C44B0X之后加
?? bool 'Test LED Driver' CONFIG_TEST
================END=================
=================START=============
uClinux-dist/linux-2.4.x/drivers/char/mem.c
-----------------------------------------
開頭的地方扎堆加
#ifdef CONFIG_LEDTEST
extern void led_init(void);
#endif

int __init chr_dev_init(void)之后加
#ifdef CONFIG_TEST
?led_init();
#endif
================END==============
=================START============
uClinux-dist/vendors/Samsung/44B0/Makefile
-----------------------------------------
ttypc,c,3,12 ttypd,c,3,13 ttype,c,3,14 ttypf,c,3,15\之后加
\
led,c,231,0 \
================END==============


四 把程序編譯進內核
沒什么說的了,和過去寫的簡單的程序一樣加 但這里再重復一次

================START============
uClinux-dist/user/Makefile
-----------------------------------------
扎堆加個下面
dir_$(CONFIG_USER_LEDTEST)????????????????? += LEDtest
=================END===============
================START============
uClinux-dist/config/Configure.help
-----------------------------------------
扎堆加個下面
CONFIG_USER_LEDTEST
? Test the LED driver
=================END=============
================START================
uClinux-dist/config/Configure.in
-----------------------------------------
##############################
mainmenu_option next_comment
comment 'LED driver test PG'

bool 'LEDtest' CONFIG_USER_LEDTEST
endmenu

###############################
=================END=============

五 編譯 燒寫……省略200字 想看的看我寫的helloworld編譯筆記吧
六 下面的操作在板子上執行
1 cd /dev
2 ls
看見里面有個LED了吧?
3 cd /proc
4 cat devices
看見驅動列表吧?
led 231也應該在里面
5 LEDtest
在任何地方執行這個語句 就可以
之后看GPIO的C口電平吧:)

總結
好了 到今天為止簡單的東西都已經整理過了 也感謝大家最近的關注

剩余的部分LCD圖形操作 GPRS驅動 有機會再發吧 估計對于菜鳥不是很重要。

有人向我要GPS的驅動 我沒給:)其實很簡單的UART 但是涉及到本實驗室別人的勞動 就不發了。

至于minigui移植本人還一直沒時間做 因為準備把SD卡 SPI觸摸屏驅動搞定再做 但過了這段時間一定會做的 也是到時候再說吧。

再次聲明一下,這個BLOG是因為感謝那些幫助過我的朋友們而建立的,偶然發現有幾篇筆記已經被很多網站轉載了,大家當然可以隨意利用這里的資源,但只有一個要求,希望大家會了以后也把自己的東西共享一下。

其實寫了這么多 技術上的很少有創新 多是總結 在這里也感謝那些我提到與沒提到的人 因為這里所有的文章都來自于他們的原始積累。

寫這些簡單的出奇的東西 也無非就是想告訴那些比我還菜的鳥們:這個世界上有高手,但不多。可能你這輩子都見不到幾個。那么與其一直敬仰他們不如自己踏踏實實從小做起。在自己的小范圍內作到一個點的專家。然后點連成線,線變成知識面……

說實在的,很多人上來QQ就問我“我在做畢業設計 一點頭緒也沒有”“導師逼我做的……”“高手 幫我講講什么是XX”
我不喜歡這些……如果這些朋友不改變這種狀態的話,我勸大家還是不要做了。

做東西也好,做項目也罷,態度很重要。有人問我學ARM重要的是什么?我也總結了一下,不應該說學ARM重要是什么,而是做事重要的是什么:把肉都剔掉以后就只有骨頭---心系一處,全力以赴。可能這就是大道致簡吧。因為我決定做點成績出來,所以我對實驗室的事都很積極;因為我很積極,雖然開始都是些雜活,我同樣把它們完成的盡量好;因為我把它們完成的盡量好,領導發現了我;因為領導發現了我,我身上一些東西開始被注意;因為領導發現這些東西了,我被指定做一個小型的4人項目;因為我仍然決定做點成績,這個項目竟然完成了……頻吧?其實除了技術以外,我是個很開朗的人,從我的筆記就可以看出來。

好了,不多說了 每個人都有自己的哲學 是不用寫下來的 哲學與技術不一樣 技術寫下來可以幫助理解 哲學寫下來就打折了 哈哈
你看那些哲學高手都什么樣?老和尚輕易不說話 一說出來 當……當……

享受奮斗以后一邊擦汗一邊喝著冰鎮啤酒的感覺
mamajinco 發表于 2006-11-11 10:10:00
經過幾個月的苦修

撥開烏云見藍天了~~心情舒暢很多了~~

盡情的享受奮斗以后一邊擦汗一邊喝著冰鎮啤酒的感覺 哈哈

被鄙視了無數次 也鄙視別人無數次之后最大的感覺就是“人生是什么”

“幸福是什么”“滿足是什么”……都是狗屎 作為一個工程師來說 整天琢磨這些 也與這些黃澄澄盤旋向上的妙不可言的東西無異了吧 呵呵

最重要的是什么?或者說作為工程師來說 最重要的是什么?

任務……不停的設定更高的目標 然后達到它

以完成不可能完成的任務為榮

工程師的生活是什么 工程師的人生是什么 工程師的幸福是什么

就是看著自己的努力給家人帶來的幸福生活

就是不斷挑戰自己人生目標 在有限的人生里把精力只放在幾個點上 然后讓它們燃燒

就是和朋友嘴里吟頌著中國幾千年來的國罵 喝到半死的 睡上一天 第三天繼續前進的幸福

俗吧?就這么俗

撿個優惠時段和女朋友開個KTV大包 唱上1天 晚上回來的路上還停不了 一直哼哼

領著女朋友擠公交繞半個城市 就為了找自己原來喜歡的“大排面” 啃著大排骨對著傻笑

和5個發小一起慶祝我找到好工作 去去了無數次的四川火鍋 花上100多

陪老媽呆上一天 聽她嘮叨老爸年輕時對他不好 聽她一邊鼓勵我好好發展 有舍不得我去北京

陪老爸聊聊天 聽他說“其實我做欣賞你的是……”用胳膊肘憝一下健康的老爸 告訴他“搞什么 爺倆還嘮這嗑……”

打車跑到玩具批發市場 找了半天 找到金屬的變形金剛 回來再租本柯南 關上電話 像豬一樣委在床上一下午

去tompda淘二手的智能手機和PDA 突然發現手上都有3個了 還想要新的 被女朋友制止 只好把舊的打磨一下 看起來新一些 繼續用

給朋友發發短信 操來操去 最后互祝平安

看著女朋友跑到WATSON買便宜的小玩意 還不要我給她買喜歡了好久 才3XX的靴子 還安慰我說等我一年能拿到16W的時候再說

看著開著吉利的大哥送自己的孩子上學 想起自己家也是買過寶來 開了1年 油太貴了 又沒人開 賣了賠6W 但畢竟我家也有過車 還是個小名牌

看著考了博士 有找了研究所工作的女朋友整天還在等消息 還在為論文忙碌 想起來1年前的她還在為我認了個妹妹而吃醋

哈哈 人生不過如此 讓別人笑笑 偶爾笑笑別人~~

?

?
?
?
?
?
?
?
?

?

?

?

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的arm学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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

精品偷自拍另类在线观看 | 1000部夫妻午夜免费 | 亚洲一区二区三区无码久久 | 国产无遮挡又黄又爽又色 | 精品一区二区不卡无码av | 久久综合狠狠综合久久综合88 | 国产精品久久国产精品99 | 亚洲精品综合五月久久小说 | 色综合久久久无码网中文 | 国产亚洲欧美日韩亚洲中文色 | 国内丰满熟女出轨videos | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 最新版天堂资源中文官网 | 人妻少妇精品无码专区二区 | 精品久久久久久人妻无码中文字幕 | 久久久久99精品成人片 | 强伦人妻一区二区三区视频18 | 麻豆国产97在线 | 欧洲 | 国产超级va在线观看视频 | 国产免费无码一区二区视频 | 中文无码精品a∨在线观看不卡 | 日本xxxx色视频在线观看免费 | 亚洲阿v天堂在线 | 乱人伦人妻中文字幕无码 | 丰满肥臀大屁股熟妇激情视频 | 97精品人妻一区二区三区香蕉 | 久久人人爽人人人人片 | 精品夜夜澡人妻无码av蜜桃 | 日日橹狠狠爱欧美视频 | 中文字幕av伊人av无码av | 久久精品女人的天堂av | 无码国产色欲xxxxx视频 | 欧美午夜特黄aaaaaa片 | 国产后入清纯学生妹 | 日本爽爽爽爽爽爽在线观看免 | 国产农村妇女高潮大叫 | 精品久久综合1区2区3区激情 | 日本免费一区二区三区最新 | 无码成人精品区在线观看 | 成人亚洲精品久久久久 | 午夜丰满少妇性开放视频 | 蜜桃视频韩日免费播放 | 宝宝好涨水快流出来免费视频 | 亚洲 a v无 码免 费 成 人 a v | 成人欧美一区二区三区黑人 | 久久精品女人的天堂av | 国产一精品一av一免费 | 欧美熟妇另类久久久久久不卡 | 欧美自拍另类欧美综合图片区 | 国产无遮挡又黄又爽免费视频 | 国产免费无码一区二区视频 | 国产精品爱久久久久久久 | 性色欲情网站iwww九文堂 | 亚洲 a v无 码免 费 成 人 a v | 国产成人无码区免费内射一片色欲 | 国产极品美女高潮无套在线观看 | www国产亚洲精品久久网站 | 欧美阿v高清资源不卡在线播放 | 狂野欧美激情性xxxx | 国产成人无码av一区二区 | 亚洲国产av精品一区二区蜜芽 | 国产高潮视频在线观看 | 中文字幕人妻无码一区二区三区 | 国产亲子乱弄免费视频 | 国产欧美精品一区二区三区 | 亚洲熟熟妇xxxx | 亚洲熟悉妇女xxx妇女av | 99视频精品全部免费免费观看 | 水蜜桃亚洲一二三四在线 | 超碰97人人做人人爱少妇 | 玩弄中年熟妇正在播放 | 国产真人无遮挡作爱免费视频 | 久久精品中文字幕大胸 | 国产一区二区三区影院 | 波多野结衣乳巨码无在线观看 | 狠狠亚洲超碰狼人久久 | 国产精品丝袜黑色高跟鞋 | 鲁大师影院在线观看 | 青青草原综合久久大伊人精品 | 亚洲精品一区二区三区在线观看 | 成人动漫在线观看 | 日韩人妻少妇一区二区三区 | 精品国产aⅴ无码一区二区 | 婷婷五月综合缴情在线视频 | 久久人人爽人人爽人人片ⅴ | 天天拍夜夜添久久精品 | 欧美真人作爱免费视频 | 成 人影片 免费观看 | 东京无码熟妇人妻av在线网址 | 午夜成人1000部免费视频 | 亚洲一区二区三区偷拍女厕 | 鲁鲁鲁爽爽爽在线视频观看 | 欧美日韩久久久精品a片 | 亚洲精品一区二区三区在线 | 国产精品无套呻吟在线 | 国产美女精品一区二区三区 | 国产人妻大战黑人第1集 | 欧美人妻一区二区三区 | 老司机亚洲精品影院 | 强奷人妻日本中文字幕 | 麻豆果冻传媒2021精品传媒一区下载 | 国产成人久久精品流白浆 | 全黄性性激高免费视频 | 免费乱码人妻系列无码专区 | 黑人大群体交免费视频 | 中文字幕久久久久人妻 | 乌克兰少妇性做爰 | 成人欧美一区二区三区黑人 | 成人欧美一区二区三区黑人 | 男女猛烈xx00免费视频试看 | 无码吃奶揉捏奶头高潮视频 | 青青久在线视频免费观看 | 亚洲熟悉妇女xxx妇女av | 无码人妻久久一区二区三区不卡 | 高潮毛片无遮挡高清免费 | 性生交大片免费看女人按摩摩 | 色一情一乱一伦一视频免费看 | 强辱丰满人妻hd中文字幕 | 骚片av蜜桃精品一区 | 3d动漫精品啪啪一区二区中 | 亚洲自偷自拍另类第1页 | 性做久久久久久久久 | 日本熟妇浓毛 | 免费观看的无遮挡av | 国产成人精品视频ⅴa片软件竹菊 | 亚洲乱亚洲乱妇50p | 熟女体下毛毛黑森林 | 久久综合九色综合97网 | 人妻天天爽夜夜爽一区二区 | 国产激情精品一区二区三区 | 无套内谢老熟女 | 成人无码视频免费播放 | 国产婷婷色一区二区三区在线 | 日韩少妇内射免费播放 | 午夜精品一区二区三区的区别 | av香港经典三级级 在线 | 成人性做爰aaa片免费看 | 水蜜桃av无码 | 成人片黄网站色大片免费观看 | 成人无码影片精品久久久 | 熟妇激情内射com | 男女超爽视频免费播放 | 人妻aⅴ无码一区二区三区 | 欧美成人午夜精品久久久 | 成人亚洲精品久久久久 | 日韩人妻系列无码专区 | 又紧又大又爽精品一区二区 | 76少妇精品导航 | 中文字幕 亚洲精品 第1页 | 国产一区二区三区四区五区加勒比 | 中文精品久久久久人妻不卡 | 亚洲 高清 成人 动漫 | 久久精品中文字幕一区 | 欧美性生交活xxxxxdddd | 日本精品少妇一区二区三区 | 国产猛烈高潮尖叫视频免费 | 丰满人妻翻云覆雨呻吟视频 | 性欧美牲交在线视频 | 精品一区二区三区无码免费视频 | 久久久久国色av免费观看性色 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产无遮挡吃胸膜奶免费看 | 综合人妻久久一区二区精品 | 久久人人97超碰a片精品 | 成人无码精品一区二区三区 | 男女性色大片免费网站 | 国产成人一区二区三区在线观看 | 欧美日本精品一区二区三区 | 乱中年女人伦av三区 | 日韩人妻无码中文字幕视频 | 国产成人无码av一区二区 | 日韩精品a片一区二区三区妖精 | 强开小婷嫩苞又嫩又紧视频 | 国产成人一区二区三区在线观看 | 亚欧洲精品在线视频免费观看 | 国产精品无码一区二区桃花视频 | 久久久久人妻一区精品色欧美 | 熟女俱乐部五十路六十路av | 国产无套粉嫩白浆在线 | 99国产精品白浆在线观看免费 | 综合人妻久久一区二区精品 | 久久精品中文闷骚内射 | 久热国产vs视频在线观看 | 欧美精品无码一区二区三区 | 色婷婷综合激情综在线播放 | 婷婷五月综合缴情在线视频 | 亚洲 日韩 欧美 成人 在线观看 | 黑人粗大猛烈进出高潮视频 | 国产一区二区三区精品视频 | 成人精品一区二区三区中文字幕 | 精品偷自拍另类在线观看 | 蜜臀av无码人妻精品 | 麻豆精产国品 | 亚洲另类伦春色综合小说 | 2020最新国产自产精品 | 人人妻人人澡人人爽欧美一区九九 | 天下第一社区视频www日本 | 亚洲日韩中文字幕在线播放 | 夜先锋av资源网站 | 国内精品人妻无码久久久影院 | 麻豆果冻传媒2021精品传媒一区下载 | 中国大陆精品视频xxxx | 国产莉萝无码av在线播放 | 久久99精品久久久久久 | 久久久www成人免费毛片 | 一个人免费观看的www视频 | 国产成人精品优优av | 日日鲁鲁鲁夜夜爽爽狠狠 | 对白脏话肉麻粗话av | 国产精品久久久久9999小说 | 精品久久久久香蕉网 | 日本乱人伦片中文三区 | 欧美黑人性暴力猛交喷水 | 熟妇人妻无码xxx视频 | 国产超级va在线观看视频 | 熟女俱乐部五十路六十路av | 国产真实夫妇视频 | 天堂久久天堂av色综合 | 日韩精品一区二区av在线 | 丰满人妻精品国产99aⅴ | 精品aⅴ一区二区三区 | 亚洲精品国产品国语在线观看 | 国产猛烈高潮尖叫视频免费 | 扒开双腿疯狂进出爽爽爽视频 | 7777奇米四色成人眼影 | 国产一区二区不卡老阿姨 | 好爽又高潮了毛片免费下载 | 午夜福利不卡在线视频 | 国产精品自产拍在线观看 | 午夜免费福利小电影 | 在线成人www免费观看视频 | 亚洲熟女一区二区三区 | 人妻熟女一区 | 美女极度色诱视频国产 | 成熟女人特级毛片www免费 | 97人妻精品一区二区三区 | 久久99热只有频精品8 | 精品厕所偷拍各类美女tp嘘嘘 | 色一情一乱一伦 | 欧美性生交xxxxx久久久 | 欧美黑人巨大xxxxx | 人妻无码久久精品人妻 | 国产精品国产三级国产专播 | 国产精品99爱免费视频 | 国产人妻人伦精品 | aa片在线观看视频在线播放 | 天堂а√在线中文在线 | 在线a亚洲视频播放在线观看 | 亚洲国产欧美国产综合一区 | 欧美亚洲日韩国产人成在线播放 | 国产精品免费大片 | 伊人久久婷婷五月综合97色 | 丰满少妇熟乱xxxxx视频 | 领导边摸边吃奶边做爽在线观看 | 国产精品久久久久9999小说 | 77777熟女视频在线观看 а天堂中文在线官网 | 高潮毛片无遮挡高清免费 | 成人免费视频在线观看 | 男人的天堂av网站 | 麻豆精品国产精华精华液好用吗 | 国内少妇偷人精品视频 | 亚洲午夜无码久久 | 国产精品.xx视频.xxtv | 人妻中文无码久热丝袜 | 亚洲阿v天堂在线 | 国产特级毛片aaaaaa高潮流水 | 国产午夜手机精彩视频 | 日韩人妻无码一区二区三区久久99 | √8天堂资源地址中文在线 | 国内揄拍国内精品少妇国语 | 亚洲人成网站色7799 | 亚洲欧美综合区丁香五月小说 | 88国产精品欧美一区二区三区 | 99久久久国产精品无码免费 | 国产精品资源一区二区 | 久久天天躁狠狠躁夜夜免费观看 | 久久久亚洲欧洲日产国码αv | 免费无码一区二区三区蜜桃大 | 亚洲小说图区综合在线 | 一本一道久久综合久久 | 亚洲精品一区二区三区大桥未久 | 久久精品中文字幕一区 | 国产福利视频一区二区 | av在线亚洲欧洲日产一区二区 | 久久精品国产一区二区三区肥胖 | 综合激情五月综合激情五月激情1 | 18禁止看的免费污网站 | 国产亚洲精品久久久久久大师 | 大肉大捧一进一出视频出来呀 | 欧美老人巨大xxxx做受 | 2020久久香蕉国产线看观看 | 亚洲色欲久久久综合网东京热 | 精品国产一区av天美传媒 | 两性色午夜免费视频 | 久久精品国产一区二区三区肥胖 | 亚洲经典千人经典日产 | 国产成人无码区免费内射一片色欲 | 蜜臀aⅴ国产精品久久久国产老师 | 奇米影视7777久久精品人人爽 | 我要看www免费看插插视频 | 国产香蕉尹人视频在线 | 亚洲性无码av中文字幕 | 久久久亚洲欧洲日产国码αv | 国产精品久久久久久久影院 | 久精品国产欧美亚洲色aⅴ大片 | 欧美自拍另类欧美综合图片区 | 亚洲大尺度无码无码专区 | yw尤物av无码国产在线观看 | 国产成人精品优优av | а√天堂www在线天堂小说 | 久久午夜夜伦鲁鲁片无码免费 | 国内精品久久毛片一区二区 | 中文字幕日韩精品一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 性欧美videos高清精品 | 丝袜足控一区二区三区 | 亚洲成av人影院在线观看 | 巨爆乳无码视频在线观看 | 欧美35页视频在线观看 | 永久黄网站色视频免费直播 | 国产suv精品一区二区五 | 国产美女极度色诱视频www | 午夜男女很黄的视频 | 欧美人与动性行为视频 | 亚洲人成网站免费播放 | 老子影院午夜精品无码 | 亚洲s码欧洲m码国产av | 成人欧美一区二区三区黑人免费 | 久久国语露脸国产精品电影 | 久久精品国产精品国产精品污 | 亚洲午夜久久久影院 | 亚洲s码欧洲m码国产av | 亚洲理论电影在线观看 | 日本一区二区三区免费高清 | 97久久精品无码一区二区 | 国内老熟妇对白xxxxhd | 亚洲中文字幕无码一久久区 | 国产精品无码mv在线观看 | 国产人妻人伦精品1国产丝袜 | 无码人妻黑人中文字幕 | 欧美喷潮久久久xxxxx | 玩弄中年熟妇正在播放 | 亚洲色欲久久久综合网东京热 | 国产一区二区不卡老阿姨 | 永久免费观看美女裸体的网站 | 一本大道伊人av久久综合 | 给我免费的视频在线观看 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲自偷自偷在线制服 | 2019午夜福利不卡片在线 | 人妻无码久久精品人妻 | 国产人妻精品午夜福利免费 | 99久久久无码国产aaa精品 | 久久精品女人的天堂av | 日韩精品无码免费一区二区三区 | 免费网站看v片在线18禁无码 | 无码人妻久久一区二区三区不卡 | 日本一区二区三区免费播放 | 人人妻人人澡人人爽欧美精品 | 亚洲精品午夜国产va久久成人 | 日本熟妇人妻xxxxx人hd | 免费国产黄网站在线观看 | 色婷婷综合激情综在线播放 | 少妇被黑人到高潮喷出白浆 | 性啪啪chinese东北女人 | 少妇高潮一区二区三区99 | 国产内射爽爽大片视频社区在线 | 欧美精品在线观看 | 成年美女黄网站色大免费视频 | 98国产精品综合一区二区三区 | 内射巨臀欧美在线视频 | 午夜精品一区二区三区在线观看 | 精品国产一区二区三区四区在线看 | 亚洲国产日韩a在线播放 | 人人妻人人澡人人爽欧美精品 | 精品欧洲av无码一区二区三区 | 性生交大片免费看l | 大胆欧美熟妇xx | 国产亚洲美女精品久久久2020 | 欧美自拍另类欧美综合图片区 | 亚洲精品国产品国语在线观看 | 亚洲中文字幕无码中文字在线 | 国产亚洲精品久久久久久 | 国产网红无码精品视频 | 欧美变态另类xxxx | 宝宝好涨水快流出来免费视频 | 亚洲第一无码av无码专区 | 午夜无码区在线观看 | 宝宝好涨水快流出来免费视频 | 国产精品高潮呻吟av久久4虎 | 国产午夜福利亚洲第一 | 国内老熟妇对白xxxxhd | 久久久久成人精品免费播放动漫 | 日本xxxx色视频在线观看免费 | 久久精品99久久香蕉国产色戒 | 麻豆国产丝袜白领秘书在线观看 | 领导边摸边吃奶边做爽在线观看 | 人妻少妇精品久久 | 激情亚洲一区国产精品 | 亚洲精品久久久久中文第一幕 | 欧美xxxx黑人又粗又长 | 免费观看黄网站 | 婷婷综合久久中文字幕蜜桃三电影 | 久久视频在线观看精品 | 日韩欧美中文字幕公布 | 伊人久久大香线焦av综合影院 | 2020久久香蕉国产线看观看 | 男人的天堂av网站 | 丝袜 中出 制服 人妻 美腿 | 欧美日韩在线亚洲综合国产人 | 强奷人妻日本中文字幕 | 野狼第一精品社区 | 亚洲理论电影在线观看 | 成人亚洲精品久久久久软件 | 亚拍精品一区二区三区探花 | 成人精品视频一区二区三区尤物 | 18无码粉嫩小泬无套在线观看 | 国色天香社区在线视频 | 国产乱码精品一品二品 | 性欧美疯狂xxxxbbbb | 丰满人妻精品国产99aⅴ | 久久久精品国产sm最大网站 | 久久久av男人的天堂 | 久久午夜夜伦鲁鲁片无码免费 | 日本爽爽爽爽爽爽在线观看免 | 全球成人中文在线 | 欧美 日韩 亚洲 在线 | 亚洲国产高清在线观看视频 | 中文字幕人成乱码熟女app | 久久久久se色偷偷亚洲精品av | 偷窥村妇洗澡毛毛多 | 国产做国产爱免费视频 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国内老熟妇对白xxxxhd | 亚洲伊人久久精品影院 | 国产精品无码永久免费888 | 日本高清一区免费中文视频 | 国产无套粉嫩白浆在线 | 人人妻人人澡人人爽欧美一区 | 亚洲色欲色欲欲www在线 | 国产精品无套呻吟在线 | 无码帝国www无码专区色综合 | 国产精品资源一区二区 | 亚洲欧美综合区丁香五月小说 | 永久免费精品精品永久-夜色 | 日日天干夜夜狠狠爱 | 欧美老人巨大xxxx做受 | 亚洲精品成人福利网站 | 亚洲另类伦春色综合小说 | 色婷婷综合激情综在线播放 | 97精品人妻一区二区三区香蕉 | 人妻中文无码久热丝袜 | 亚洲高清偷拍一区二区三区 | 亚洲中文字幕乱码av波多ji | 乌克兰少妇性做爰 | 成人av无码一区二区三区 | 亚洲欧美国产精品专区久久 | 人人妻人人澡人人爽精品欧美 | 少妇无码一区二区二三区 | 狠狠色噜噜狠狠狠7777奇米 | 97夜夜澡人人双人人人喊 | 97久久国产亚洲精品超碰热 | 欧美成人午夜精品久久久 | 亚洲中文字幕无码一久久区 | 日本精品久久久久中文字幕 | 天堂在线观看www | 国模大胆一区二区三区 | a片在线免费观看 | 亚洲色偷偷男人的天堂 | 国产精品va在线观看无码 | 人妻少妇精品无码专区二区 | 国产乱人偷精品人妻a片 | 樱花草在线播放免费中文 | 欧美老妇交乱视频在线观看 | 人妻人人添人妻人人爱 | 国产人妻人伦精品 | 色五月五月丁香亚洲综合网 | 国产超级va在线观看视频 | 亚洲日韩一区二区三区 | 欧美性猛交xxxx富婆 | 欧美黑人性暴力猛交喷水 | 人人爽人人爽人人片av亚洲 | 九九久久精品国产免费看小说 | 成人免费视频一区二区 | 男女超爽视频免费播放 | 爽爽影院免费观看 | 中文字幕亚洲情99在线 | 麻豆国产人妻欲求不满 | 久久亚洲中文字幕无码 | 一区二区传媒有限公司 | 免费观看又污又黄的网站 | 97久久超碰中文字幕 | 人人妻人人澡人人爽精品欧美 | 伊人久久大香线蕉av一区二区 | 在线观看国产一区二区三区 | 四虎国产精品免费久久 | 国产色精品久久人妻 | 日产国产精品亚洲系列 | 午夜成人1000部免费视频 | 中文字幕av伊人av无码av | 久久久久se色偷偷亚洲精品av | 精品乱码久久久久久久 | 亚洲啪av永久无码精品放毛片 | 亚洲中文字幕无码中字 | 午夜免费福利小电影 | 亚洲国产欧美日韩精品一区二区三区 | 理论片87福利理论电影 | 日产国产精品亚洲系列 | 亚洲s码欧洲m码国产av | 精品久久久久久人妻无码中文字幕 | 亚洲成a人片在线观看日本 | 日产精品99久久久久久 | 美女黄网站人色视频免费国产 | 亚洲色大成网站www国产 | 国内精品久久久久久中文字幕 | 欧美高清在线精品一区 | 久久99精品久久久久久动态图 | 超碰97人人射妻 | www国产精品内射老师 | 日韩人妻少妇一区二区三区 | 亚洲无人区午夜福利码高清完整版 | 中文字幕无码免费久久9一区9 | 亚洲а∨天堂久久精品2021 | 日本va欧美va欧美va精品 | 日韩精品无码一区二区中文字幕 | 在线成人www免费观看视频 | 亚洲码国产精品高潮在线 | 精品久久久久久人妻无码中文字幕 | 中文字幕乱妇无码av在线 | 亚洲а∨天堂久久精品2021 | 国产精品理论片在线观看 | 亚洲s色大片在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 亚洲国产日韩a在线播放 | 特级做a爰片毛片免费69 | 日韩精品久久久肉伦网站 | 免费播放一区二区三区 | 国产午夜无码精品免费看 | 国产精品美女久久久网av | a片免费视频在线观看 | 99久久婷婷国产综合精品青草免费 | 成 人 网 站国产免费观看 | 中文字幕日韩精品一区二区三区 | 国产精品亚洲综合色区韩国 | 亚洲成a人片在线观看日本 | 水蜜桃色314在线观看 | 丝袜 中出 制服 人妻 美腿 | 国产精品久久久久7777 | 无码精品人妻一区二区三区av | 亚洲综合另类小说色区 | 少妇激情av一区二区 | 久久国产精品精品国产色婷婷 | 国产成人一区二区三区在线观看 | 色综合久久久久综合一本到桃花网 | 樱花草在线播放免费中文 | 国产精品久久精品三级 | 亚洲va欧美va天堂v国产综合 | 最近中文2019字幕第二页 | 无套内谢的新婚少妇国语播放 | 日本一卡2卡3卡四卡精品网站 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美人与禽zoz0性伦交 | 美女扒开屁股让男人桶 | 亚洲色在线无码国产精品不卡 | 在线观看欧美一区二区三区 | 免费乱码人妻系列无码专区 | 国产精品久久久久影院嫩草 | 国产区女主播在线观看 | 欧美自拍另类欧美综合图片区 | 乱中年女人伦av三区 | 国产成人精品无码播放 | 亚洲第一网站男人都懂 | 乱人伦中文视频在线观看 | 国产精品久久久久久亚洲毛片 | 捆绑白丝粉色jk震动捧喷白浆 | 免费视频欧美无人区码 | 久久亚洲国产成人精品性色 | 无码帝国www无码专区色综合 | 日本高清一区免费中文视频 | 成人欧美一区二区三区 | 四十如虎的丰满熟妇啪啪 | 双乳奶水饱满少妇呻吟 | 日日碰狠狠丁香久燥 | 国产无遮挡吃胸膜奶免费看 | 中文字幕av日韩精品一区二区 | 亚洲精品国产a久久久久久 | 午夜成人1000部免费视频 | 欧美35页视频在线观看 | 日本xxxx色视频在线观看免费 | 午夜福利电影 | 亚洲精品国偷拍自产在线麻豆 | 俺去俺来也在线www色官网 | 东京热无码av男人的天堂 | 熟女少妇人妻中文字幕 | 成 人影片 免费观看 | 国产黄在线观看免费观看不卡 | 红桃av一区二区三区在线无码av | 国产三级精品三级男人的天堂 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲天堂2017无码中文 | 亚洲小说图区综合在线 | 国产精品对白交换视频 | 精品亚洲韩国一区二区三区 | 精品一区二区三区无码免费视频 | 丝袜美腿亚洲一区二区 | 中文字幕av无码一区二区三区电影 | 久久久亚洲欧洲日产国码αv | 女人被爽到呻吟gif动态图视看 | 成年美女黄网站色大免费视频 | 久久婷婷五月综合色国产香蕉 | 亚洲精品无码人妻无码 | 亚洲区欧美区综合区自拍区 | 亚洲综合久久一区二区 | 人妻夜夜爽天天爽三区 | 国产精品久久久av久久久 | 精品国产一区二区三区四区在线看 | 99久久人妻精品免费一区 | 亚洲の无码国产の无码步美 | 女人高潮内射99精品 | 成人试看120秒体验区 | 亚洲国产av美女网站 | 一本久道久久综合婷婷五月 | 国产一区二区不卡老阿姨 | 7777奇米四色成人眼影 | 亚洲欧美色中文字幕在线 | 亚洲日韩av片在线观看 | 免费人成网站视频在线观看 | 国产在线精品一区二区高清不卡 | 又色又爽又黄的美女裸体网站 | 老司机亚洲精品影院无码 | 3d动漫精品啪啪一区二区中 | 丰满人妻一区二区三区免费视频 | 亚洲爆乳大丰满无码专区 | 色婷婷欧美在线播放内射 | 国产人妻久久精品二区三区老狼 | 荫蒂被男人添的好舒服爽免费视频 | 国产绳艺sm调教室论坛 | 亚洲国产精品久久久久久 | 天天躁夜夜躁狠狠是什么心态 | 影音先锋中文字幕无码 | 日韩少妇内射免费播放 | 亚洲七七久久桃花影院 | 成人精品一区二区三区中文字幕 | 成人性做爰aaa片免费看不忠 | 欧美老妇交乱视频在线观看 | 帮老师解开蕾丝奶罩吸乳网站 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久精品女人的天堂av | 欧美黑人乱大交 | 人人妻人人澡人人爽欧美精品 | 日韩av无码中文无码电影 | 久久精品无码一区二区三区 | 亚洲最大成人网站 | 国产精品第一国产精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 任你躁国产自任一区二区三区 | 色婷婷综合中文久久一本 | 99精品久久毛片a片 | 国产无av码在线观看 | 国产精品无码一区二区桃花视频 | 亚洲gv猛男gv无码男同 | 真人与拘做受免费视频 | 牲欲强的熟妇农村老妇女 | 国产又爽又猛又粗的视频a片 | 国产成人无码a区在线观看视频app | 亚洲熟女一区二区三区 | 成在人线av无码免费 | 熟女俱乐部五十路六十路av | 免费乱码人妻系列无码专区 | 99久久人妻精品免费一区 | 中文字幕乱码人妻二区三区 | 婷婷色婷婷开心五月四房播播 | 亚洲欧美色中文字幕在线 | 国产精品国产三级国产专播 | 无码国内精品人妻少妇 | 18禁黄网站男男禁片免费观看 | 久久国产劲爆∧v内射 | 久久午夜夜伦鲁鲁片无码免费 | 成人女人看片免费视频放人 | 亚洲成a人一区二区三区 | 东京热一精品无码av | 国产国语老龄妇女a片 | 中文字幕乱码人妻无码久久 | 日本精品高清一区二区 | 亚洲精品久久久久久久久久久 | 午夜精品一区二区三区在线观看 | 久久成人a毛片免费观看网站 | 国产超碰人人爽人人做人人添 | 一本无码人妻在中文字幕免费 | 蜜臀av无码人妻精品 | 中文字幕人妻无码一区二区三区 | 国产人妻大战黑人第1集 | 午夜性刺激在线视频免费 | 欧美自拍另类欧美综合图片区 | 麻豆md0077饥渴少妇 | 国精产品一区二区三区 | 荫蒂被男人添的好舒服爽免费视频 | 国产成人综合在线女婷五月99播放 | 好屌草这里只有精品 | 日日摸日日碰夜夜爽av | 蜜臀aⅴ国产精品久久久国产老师 | 97精品国产97久久久久久免费 | 97人妻精品一区二区三区 | 亚洲人亚洲人成电影网站色 | 亚洲 欧美 激情 小说 另类 | 午夜免费福利小电影 | 欧美亚洲国产一区二区三区 | 国产精华av午夜在线观看 | 国产熟妇高潮叫床视频播放 | 麻豆成人精品国产免费 | 噜噜噜亚洲色成人网站 | 欧美三级a做爰在线观看 | 帮老师解开蕾丝奶罩吸乳网站 | 亚洲国产精品一区二区美利坚 | 又色又爽又黄的美女裸体网站 | 亚洲伊人久久精品影院 | 东京无码熟妇人妻av在线网址 | 精品成人av一区二区三区 | 高清国产亚洲精品自在久久 | 国产人妻精品一区二区三区不卡 | 97资源共享在线视频 | 麻花豆传媒剧国产免费mv在线 | 国产人妖乱国产精品人妖 | 噜噜噜亚洲色成人网站 | 中文字幕乱码人妻二区三区 | 伦伦影院午夜理论片 | 女人被男人躁得好爽免费视频 | 人人澡人人妻人人爽人人蜜桃 | 国产精品毛多多水多 | 人妻aⅴ无码一区二区三区 | 好男人社区资源 | 蜜桃视频插满18在线观看 | 中文无码成人免费视频在线观看 | 麻豆国产丝袜白领秘书在线观看 | 无码一区二区三区在线观看 | 日韩欧美成人免费观看 | 1000部夫妻午夜免费 | 人人妻人人藻人人爽欧美一区 | 色妞www精品免费视频 | 国产在线无码精品电影网 | 全球成人中文在线 | 久久精品国产精品国产精品污 | 亚洲人成影院在线无码按摩店 | 天天综合网天天综合色 | 天天躁日日躁狠狠躁免费麻豆 | 少妇激情av一区二区 | 亚洲啪av永久无码精品放毛片 | 欧美老人巨大xxxx做受 | 国产精品.xx视频.xxtv | 精品久久久久久人妻无码中文字幕 | 亚洲色偷偷偷综合网 | 亚洲成av人在线观看网址 | 男女下面进入的视频免费午夜 | 十八禁视频网站在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 国内精品人妻无码久久久影院蜜桃 | 在线观看国产一区二区三区 | 在线观看免费人成视频 | 东京无码熟妇人妻av在线网址 | 日韩视频 中文字幕 视频一区 | 亚洲精品成人av在线 | 国内揄拍国内精品少妇国语 | 日本精品人妻无码免费大全 | 图片小说视频一区二区 | 亚洲色成人中文字幕网站 | 樱花草在线播放免费中文 | 伊人久久大香线蕉av一区二区 | 少妇人妻av毛片在线看 | 亚洲成av人在线观看网址 | 国产97在线 | 亚洲 | 亚洲中文无码av永久不收费 | 色婷婷欧美在线播放内射 | www成人国产高清内射 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲精品欧美二区三区中文字幕 | 撕开奶罩揉吮奶头视频 | 日本乱偷人妻中文字幕 | 5858s亚洲色大成网站www | 熟女少妇人妻中文字幕 | www国产精品内射老师 | 亚洲午夜福利在线观看 | 精品无码成人片一区二区98 | 日韩人妻无码一区二区三区久久99 | 久久人人爽人人人人片 | 97精品国产97久久久久久免费 | 国产亚洲精品久久久久久 | 一本久道久久综合婷婷五月 | 午夜无码区在线观看 | 无码帝国www无码专区色综合 | 在线精品亚洲一区二区 | 丁香啪啪综合成人亚洲 | 国产成人无码区免费内射一片色欲 | 国产人妻精品一区二区三区不卡 | 蜜臀av在线播放 久久综合激激的五月天 | 丰满少妇高潮惨叫视频 | 亚洲精品无码人妻无码 | 国产xxx69麻豆国语对白 | 精品人妻人人做人人爽夜夜爽 | 亚洲爆乳精品无码一区二区三区 | 人妻人人添人妻人人爱 | 亚洲成av人在线观看网址 | 在教室伦流澡到高潮hnp视频 | 久久国产精品偷任你爽任你 | 一本色道婷婷久久欧美 | 性欧美大战久久久久久久 | 学生妹亚洲一区二区 | 亚洲色无码一区二区三区 | 国内精品人妻无码久久久影院 | 日韩欧美中文字幕公布 | 国产成人久久精品流白浆 | 国产精品va在线播放 | 无码播放一区二区三区 | 久久精品中文字幕大胸 | 久久综合久久自在自线精品自 | 国内揄拍国内精品少妇国语 | 人妻夜夜爽天天爽三区 | 日日摸夜夜摸狠狠摸婷婷 | 久久99精品国产麻豆蜜芽 | 无码国产乱人伦偷精品视频 | 亚洲狠狠婷婷综合久久 | 国产午夜亚洲精品不卡 | 国产精品美女久久久久av爽李琼 | 成人影院yy111111在线观看 | 波多野结衣av一区二区全免费观看 | 亚洲一区二区三区播放 | 国内老熟妇对白xxxxhd | 成人试看120秒体验区 | 300部国产真实乱 | 奇米影视7777久久精品人人爽 | 亚洲欧洲日本综合aⅴ在线 | 我要看www免费看插插视频 | 无码av免费一区二区三区试看 | 永久免费观看美女裸体的网站 | 好男人www社区 | 一本久道久久综合狠狠爱 | 亚洲一区二区三区偷拍女厕 | 野狼第一精品社区 | 亚洲一区二区三区无码久久 | 国产麻豆精品精东影业av网站 | 亚洲天堂2017无码 | 日产国产精品亚洲系列 | 黑人玩弄人妻中文在线 | 国产午夜福利100集发布 | 狂野欧美性猛xxxx乱大交 | a片在线免费观看 | 欧美三级a做爰在线观看 | 久久久国产一区二区三区 | 狂野欧美性猛交免费视频 | 国产性生交xxxxx无码 | 国产成人精品一区二区在线小狼 | av小次郎收藏 | 一本色道久久综合狠狠躁 | 久久久精品人妻久久影视 | 亚洲中文字幕av在天堂 | 少妇愉情理伦片bd | 强伦人妻一区二区三区视频18 | 国产av一区二区三区最新精品 | 欧美丰满熟妇xxxx性ppx人交 | 鲁鲁鲁爽爽爽在线视频观看 | 5858s亚洲色大成网站www | 精品久久久久久亚洲精品 | 亚洲第一网站男人都懂 | 人妻aⅴ无码一区二区三区 | 精品夜夜澡人妻无码av蜜桃 | 成人无码精品一区二区三区 | 乱中年女人伦av三区 | 无套内谢的新婚少妇国语播放 | 久久国产精品二国产精品 | 露脸叫床粗话东北少妇 | 欧美 日韩 亚洲 在线 | 老头边吃奶边弄进去呻吟 | 午夜精品一区二区三区在线观看 | 九一九色国产 | 国产精品资源一区二区 | 婷婷色婷婷开心五月四房播播 | 又大又黄又粗又爽的免费视频 | 老熟妇仑乱视频一区二区 | 蜜桃视频插满18在线观看 | 国产精品无码一区二区三区不卡 | 牲欲强的熟妇农村老妇女 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲の无码国产の无码步美 | 免费人成网站视频在线观看 | 动漫av网站免费观看 | 国产成人亚洲综合无码 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 久久久中文久久久无码 | 国产性生大片免费观看性 | 秋霞成人午夜鲁丝一区二区三区 | 国产精品18久久久久久麻辣 | 国产高潮视频在线观看 | 麻豆果冻传媒2021精品传媒一区下载 | 色婷婷av一区二区三区之红樱桃 | 精品亚洲成av人在线观看 | 欧美阿v高清资源不卡在线播放 | 久久精品99久久香蕉国产色戒 | 亚洲日韩一区二区三区 | 欧美成人家庭影院 | 国产av人人夜夜澡人人爽麻豆 | 香蕉久久久久久av成人 | 欧美黑人性暴力猛交喷水 | 无人区乱码一区二区三区 | 装睡被陌生人摸出水好爽 | 亚洲一区二区三区四区 | 欧美激情综合亚洲一二区 | 欧美人与动性行为视频 | 久在线观看福利视频 | 丰腴饱满的极品熟妇 | 国产亚洲欧美日韩亚洲中文色 | 亲嘴扒胸摸屁股激烈网站 | 国产艳妇av在线观看果冻传媒 | 亚洲精品成人福利网站 | 国产午夜精品一区二区三区嫩草 | 久久午夜夜伦鲁鲁片无码免费 | 久久精品国产一区二区三区 | 丰满岳乱妇在线观看中字无码 | 999久久久国产精品消防器材 | 鲁鲁鲁爽爽爽在线视频观看 | 国产乱人偷精品人妻a片 | 国产成人精品必看 | 人妻少妇被猛烈进入中文字幕 | 亚洲区小说区激情区图片区 | 天堂在线观看www | 亚洲精品久久久久久一区二区 | 亚洲精品欧美二区三区中文字幕 | 老子影院午夜精品无码 | 午夜时刻免费入口 | 红桃av一区二区三区在线无码av | 欧美猛少妇色xxxxx | 欧美真人作爱免费视频 | 日韩av激情在线观看 | 伊在人天堂亚洲香蕉精品区 | 国产在线无码精品电影网 | 99视频精品全部免费免费观看 | 国产精品永久免费视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 成人动漫在线观看 | 欧美日韩人成综合在线播放 | 亚洲日本一区二区三区在线 | 国产欧美亚洲精品a | 久久午夜无码鲁丝片午夜精品 | 免费男性肉肉影院 | 欧美熟妇另类久久久久久多毛 | 久久综合给久久狠狠97色 | 亚洲熟悉妇女xxx妇女av | 中文字幕乱码亚洲无线三区 | 精品国产一区二区三区av 性色 | 国产片av国语在线观看 | 99久久无码一区人妻 | 国产无遮挡吃胸膜奶免费看 | 国产欧美亚洲精品a | 日产精品99久久久久久 | 亚洲人成网站在线播放942 | 天堂亚洲2017在线观看 | 国产亚洲精品久久久久久大师 | 麻豆果冻传媒2021精品传媒一区下载 | 亚洲中文字幕无码一久久区 | 国产卡一卡二卡三 | 欧美freesex黑人又粗又大 | 乱码午夜-极国产极内射 | 少妇久久久久久人妻无码 | 亚欧洲精品在线视频免费观看 | 一本大道久久东京热无码av | 秋霞特色aa大片 | 丰满肥臀大屁股熟妇激情视频 | 久激情内射婷内射蜜桃人妖 | 久久国产劲爆∧v内射 | 国产午夜无码视频在线观看 | 人妻插b视频一区二区三区 | 国产精品va在线播放 | 又大又黄又粗又爽的免费视频 | 久久国产精品精品国产色婷婷 | 国产欧美精品一区二区三区 | 极品尤物被啪到呻吟喷水 | 国产人妻精品一区二区三区不卡 | 欧洲vodafone精品性 | 樱花草在线播放免费中文 | 99在线 | 亚洲 | 澳门永久av免费网站 | 欧美 日韩 人妻 高清 中文 | 牛和人交xxxx欧美 | 丰满少妇人妻久久久久久 | 又大又黄又粗又爽的免费视频 | 日本精品少妇一区二区三区 | 亲嘴扒胸摸屁股激烈网站 | 欧美成人免费全部网站 | 一本久久a久久精品vr综合 | 国产激情艳情在线看视频 | 欧洲欧美人成视频在线 | 300部国产真实乱 | 一本色道久久综合狠狠躁 | 欧洲美熟女乱又伦 | 99麻豆久久久国产精品免费 | 欧美国产日产一区二区 | 久久精品人妻少妇一区二区三区 | 亚洲爆乳无码专区 | 曰韩无码二三区中文字幕 | 99久久精品日本一区二区免费 | 玩弄人妻少妇500系列视频 | 中文字幕乱妇无码av在线 | 精品国产福利一区二区 | 无码人中文字幕 | 成人欧美一区二区三区 | 亚洲人成影院在线无码按摩店 | 精品国产乱码久久久久乱码 | 成年女人永久免费看片 | 国产精品久久国产三级国 | 丰满肥臀大屁股熟妇激情视频 | 老熟妇仑乱视频一区二区 | 国产精品久久久久9999小说 | 蜜臀aⅴ国产精品久久久国产老师 | 日韩av无码一区二区三区不卡 | 国产免费久久久久久无码 | 人人爽人人爽人人片av亚洲 | 国产免费久久精品国产传媒 | 国产综合久久久久鬼色 | 欧美丰满熟妇xxxx | 久久午夜夜伦鲁鲁片无码免费 | 粗大的内捧猛烈进出视频 | 亚洲爆乳精品无码一区二区三区 | 亚洲色欲久久久综合网东京热 | 国产女主播喷水视频在线观看 | 性色av无码免费一区二区三区 | 亚洲成a人片在线观看日本 | 久久99久久99精品中文字幕 | 成年女人永久免费看片 | 婷婷五月综合激情中文字幕 | 国产乱人无码伦av在线a | 人人妻人人澡人人爽欧美一区 | 免费无码肉片在线观看 | 精品国产精品久久一区免费式 | 两性色午夜免费视频 | 丝袜足控一区二区三区 | 人妻无码久久精品人妻 | 欧美日韩在线亚洲综合国产人 | 国产精品无码一区二区三区不卡 | 黄网在线观看免费网站 | 樱花草在线社区www | 四十如虎的丰满熟妇啪啪 | а√资源新版在线天堂 | 精品一区二区不卡无码av | 人人超人人超碰超国产 | 亚洲色偷偷偷综合网 | 久久精品国产亚洲精品 | 一本一道久久综合久久 | 麻豆果冻传媒2021精品传媒一区下载 | 国产乱人无码伦av在线a | 一本无码人妻在中文字幕免费 | 亚洲成a人片在线观看无码 | 亚洲综合久久一区二区 | 双乳奶水饱满少妇呻吟 | 午夜不卡av免费 一本久久a久久精品vr综合 | 性欧美牲交在线视频 | 国产人妻大战黑人第1集 | 最新版天堂资源中文官网 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | ass日本丰满熟妇pics | 色五月丁香五月综合五月 | 色综合久久久久综合一本到桃花网 | 亚洲一区二区三区含羞草 | 亚洲欧美日韩成人高清在线一区 | 国产无遮挡吃胸膜奶免费看 | 日本va欧美va欧美va精品 | 久久综合激激的五月天 | 水蜜桃色314在线观看 | 成 人 免费观看网站 | 国产亚洲tv在线观看 | 午夜精品久久久久久久久 | 国产真实夫妇视频 | av香港经典三级级 在线 | 乌克兰少妇xxxx做受 | 成人无码精品1区2区3区免费看 | 清纯唯美经典一区二区 | 国产真人无遮挡作爱免费视频 | 久久精品国产99久久6动漫 | 成人免费视频在线观看 | 人妻中文无码久热丝袜 | 天堂久久天堂av色综合 | 国产精品亚洲а∨无码播放麻豆 | 久久久久久久人妻无码中文字幕爆 | 综合激情五月综合激情五月激情1 | 久久 国产 尿 小便 嘘嘘 | 狠狠色色综合网站 | 色窝窝无码一区二区三区色欲 | 亚洲经典千人经典日产 | 青青久在线视频免费观看 | 麻豆国产人妻欲求不满 | 自拍偷自拍亚洲精品10p | 国产成人综合在线女婷五月99播放 | 色窝窝无码一区二区三区色欲 | 黑人玩弄人妻中文在线 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产麻豆精品一区二区三区v视界 | 日欧一片内射va在线影院 | 亚洲人亚洲人成电影网站色 | 国产亚洲tv在线观看 | 日本丰满熟妇videos | 欧美丰满少妇xxxx性 | 初尝人妻少妇中文字幕 | 亚洲精品综合五月久久小说 | 日日干夜夜干 | 久激情内射婷内射蜜桃人妖 | 好屌草这里只有精品 | 乱中年女人伦av三区 | 成年女人永久免费看片 | 国产sm调教视频在线观看 | 波多野结衣高清一区二区三区 | 色婷婷综合激情综在线播放 | 俺去俺来也www色官网 | 强辱丰满人妻hd中文字幕 | 国产成人人人97超碰超爽8 | 青青久在线视频免费观看 | 亲嘴扒胸摸屁股激烈网站 | 婷婷丁香六月激情综合啪 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲gv猛男gv无码男同 | 亚洲欧美日韩成人高清在线一区 | 四十如虎的丰满熟妇啪啪 | 对白脏话肉麻粗话av | 国产午夜无码视频在线观看 | 国产精品久久久av久久久 | 日日鲁鲁鲁夜夜爽爽狠狠 | 中文字幕无码免费久久99 | 无码精品国产va在线观看dvd | 一本色道久久综合狠狠躁 | 日本精品久久久久中文字幕 | 国产成人精品一区二区在线小狼 | 国产人妻大战黑人第1集 | 亚洲欧美精品aaaaaa片 | 自拍偷自拍亚洲精品10p | 少妇被粗大的猛进出69影院 | 亚洲国产一区二区三区在线观看 | 日韩精品久久久肉伦网站 | 蜜桃无码一区二区三区 | 中文字幕人妻丝袜二区 | 亚洲七七久久桃花影院 | 久久人人爽人人爽人人片ⅴ | 老太婆性杂交欧美肥老太 | 麻豆国产97在线 | 欧洲 | 亚洲欧洲日本综合aⅴ在线 | 国产精品久久久久7777 | 亚洲热妇无码av在线播放 | 久久亚洲a片com人成 | 日本丰满护士爆乳xxxx | 欧美人妻一区二区三区 | 成人无码视频在线观看网站 | 国产高清av在线播放 | 国产精品亚洲专区无码不卡 | 日本一本二本三区免费 | 欧美黑人乱大交 | 亚洲欧美日韩国产精品一区二区 | 午夜精品久久久内射近拍高清 | 日日碰狠狠躁久久躁蜜桃 | 水蜜桃色314在线观看 | 国产精品无码永久免费888 | 俺去俺来也www色官网 | 免费无码的av片在线观看 | 亚洲精品www久久久 | 国产深夜福利视频在线 | 人妻与老人中文字幕 | 亚洲国产成人a精品不卡在线 | 久久精品国产一区二区三区 | 亚洲自偷自拍另类第1页 | 无码人妻黑人中文字幕 | 国产成人综合在线女婷五月99播放 | 精品 日韩 国产 欧美 视频 | 日日摸夜夜摸狠狠摸婷婷 | 人人妻人人藻人人爽欧美一区 | 99精品视频在线观看免费 | 国产免费观看黄av片 | 成人无码视频在线观看网站 | 少妇激情av一区二区 | 扒开双腿吃奶呻吟做受视频 | 国产亚洲欧美在线专区 | 色婷婷综合中文久久一本 | 欧美人与禽猛交狂配 | 天堂а√在线地址中文在线 | 国产精品亚洲а∨无码播放麻豆 | 国产精品-区区久久久狼 | 欧美精品无码一区二区三区 | 无码吃奶揉捏奶头高潮视频 | 乱人伦中文视频在线观看 | 亚洲精品中文字幕 | 成 人影片 免费观看 | 精品aⅴ一区二区三区 | 国产av一区二区精品久久凹凸 | 日产精品99久久久久久 | 国产人妻人伦精品1国产丝袜 | 四虎4hu永久免费 | 在线播放无码字幕亚洲 | 99久久精品午夜一区二区 | 激情亚洲一区国产精品 | 天海翼激烈高潮到腰振不止 | 欧洲熟妇色 欧美 | 欧美精品免费观看二区 | 亚洲男人av香蕉爽爽爽爽 | 无码一区二区三区在线 | 久久熟妇人妻午夜寂寞影院 | 在线 国产 欧美 亚洲 天堂 | 性欧美牲交xxxxx视频 | 午夜不卡av免费 一本久久a久久精品vr综合 | 日本又色又爽又黄的a片18禁 | 欧美国产日产一区二区 | 国产成人av免费观看 | 撕开奶罩揉吮奶头视频 | 2020最新国产自产精品 | 成 人 网 站国产免费观看 | 欧美猛少妇色xxxxx | 55夜色66夜色国产精品视频 | av香港经典三级级 在线 | 天天爽夜夜爽夜夜爽 | 牲交欧美兽交欧美 | 亚洲春色在线视频 | 亚洲国产日韩a在线播放 | 国产精品.xx视频.xxtv | 人妻少妇精品视频专区 | 国产亚洲精品久久久久久大师 | 精品乱子伦一区二区三区 | 沈阳熟女露脸对白视频 | 久久久国产一区二区三区 | 国产欧美精品一区二区三区 | 国产成人无码a区在线观看视频app | 99精品无人区乱码1区2区3区 | 亚洲国产欧美国产综合一区 | 精品国产av色一区二区深夜久久 | 天下第一社区视频www日本 | 乱人伦中文视频在线观看 | 亚洲综合无码久久精品综合 | 精品欧美一区二区三区久久久 | 中文字幕乱码亚洲无线三区 | 免费人成在线视频无码 | 精品国产一区二区三区四区在线看 | 秋霞成人午夜鲁丝一区二区三区 | 99久久久无码国产精品免费 | 亚洲大尺度无码无码专区 | 国产精品99爱免费视频 | 久久综合给久久狠狠97色 | 狂野欧美性猛xxxx乱大交 | 波多野结衣高清一区二区三区 | 亚洲成a人片在线观看日本 | 国内揄拍国内精品少妇国语 | 爆乳一区二区三区无码 | 久久精品国产一区二区三区肥胖 | 国产精品99久久精品爆乳 | 国产精品久久久久久久影院 | 亚洲成色在线综合网站 | 国产精品毛多多水多 | 奇米影视888欧美在线观看 | 日本肉体xxxx裸交 | 丰满肥臀大屁股熟妇激情视频 | 狠狠躁日日躁夜夜躁2020 | 乱码午夜-极国产极内射 | 国产精品欧美成人 | 亚洲精品国偷拍自产在线观看蜜桃 | 精品无人区无码乱码毛片国产 | 欧美成人高清在线播放 | 人妻与老人中文字幕 | 精品国产aⅴ无码一区二区 | 久久久久成人精品免费播放动漫 | 国产精品理论片在线观看 | 丰满肥臀大屁股熟妇激情视频 | 久久久精品国产sm最大网站 | 精品久久8x国产免费观看 | 亚洲欧美日韩成人高清在线一区 | 未满小14洗澡无码视频网站 | 中文字幕av无码一区二区三区电影 | 国产精品丝袜黑色高跟鞋 | 久久熟妇人妻午夜寂寞影院 | 免费无码av一区二区 | 国产卡一卡二卡三 | 久久久无码中文字幕久... | 久久午夜无码鲁丝片 | 少妇太爽了在线观看 | 国精产品一区二区三区 | 97久久精品无码一区二区 | 国产热a欧美热a在线视频 | 国产农村乱对白刺激视频 | 香蕉久久久久久av成人 | 7777奇米四色成人眼影 | 亚洲一区二区三区四区 | 性色av无码免费一区二区三区 | 色综合久久久无码中文字幕 | 天堂久久天堂av色综合 | 在线亚洲高清揄拍自拍一品区 | 国产欧美精品一区二区三区 | 国产精品无码久久av | 精品乱码久久久久久久 | 沈阳熟女露脸对白视频 | 大肉大捧一进一出视频出来呀 | 婷婷丁香五月天综合东京热 | 国产麻豆精品一区二区三区v视界 | 国产艳妇av在线观看果冻传媒 | 国产97人人超碰caoprom | 欧美 亚洲 国产 另类 | 精品乱子伦一区二区三区 | 国产精品无码久久av | 久久午夜无码鲁丝片午夜精品 | 久久国产精品_国产精品 | v一区无码内射国产 | 国产精品久久久久久久9999 | 东京无码熟妇人妻av在线网址 | 又粗又大又硬又长又爽 | 中文字幕无码日韩专区 | 大乳丰满人妻中文字幕日本 | 欧美阿v高清资源不卡在线播放 | 国产成人综合在线女婷五月99播放 | 熟女少妇人妻中文字幕 | 婷婷色婷婷开心五月四房播播 | 欧美日韩人成综合在线播放 | 中文字幕乱妇无码av在线 | 欧美人与动性行为视频 | 亚洲国产成人a精品不卡在线 | 少妇被黑人到高潮喷出白浆 | 亚洲国产精品久久久久久 | 久久久国产精品无码免费专区 | 免费国产成人高清在线观看网站 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 动漫av一区二区在线观看 | 国产极品美女高潮无套在线观看 | 人妻少妇精品视频专区 | 内射爽无广熟女亚洲 | 丰满肥臀大屁股熟妇激情视频 | 大肉大捧一进一出视频出来呀 | 天堂久久天堂av色综合 | 精品水蜜桃久久久久久久 | 国产在线aaa片一区二区99 | 内射老妇bbwx0c0ck | 色 综合 欧美 亚洲 国产 | 鲁一鲁av2019在线 | 久久99精品国产麻豆蜜芽 | 色婷婷av一区二区三区之红樱桃 | 少妇人妻偷人精品无码视频 | 亚洲精品久久久久久一区二区 | 精品国精品国产自在久国产87 | 宝宝好涨水快流出来免费视频 | 亚洲伊人久久精品影院 | 久久精品99久久香蕉国产色戒 | 在线精品亚洲一区二区 | 国产精品va在线播放 | 久久久国产精品无码免费专区 | 欧美日本精品一区二区三区 | 人妻互换免费中文字幕 | 亚洲 高清 成人 动漫 | 天天av天天av天天透 | 国产精品久久久久久久9999 | 国产精品高潮呻吟av久久4虎 | 男女下面进入的视频免费午夜 | 少妇无码av无码专区在线观看 | 99久久精品日本一区二区免费 | 亚洲啪av永久无码精品放毛片 | 最近中文2019字幕第二页 | 人妻尝试又大又粗久久 | 97色伦图片97综合影院 | 一个人看的www免费视频在线观看 | 国产人妻精品午夜福利免费 | аⅴ资源天堂资源库在线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 一区二区传媒有限公司 | 高清不卡一区二区三区 | 国产在线无码精品电影网 | 亚洲一区二区三区 | 久久精品国产一区二区三区 | 国产精品爱久久久久久久 | 美女黄网站人色视频免费国产 | 图片小说视频一区二区 | 99久久精品国产一区二区蜜芽 | 鲁鲁鲁爽爽爽在线视频观看 | 欧美亚洲日韩国产人成在线播放 | 激情国产av做激情国产爱 | 精品国产青草久久久久福利 | 亚洲乱码日产精品bd | 一本大道久久东京热无码av | 国产午夜精品一区二区三区嫩草 | 又黄又爽又色的视频 | 国产人妻久久精品二区三区老狼 | 无码人妻丰满熟妇区五十路百度 | 国产av一区二区三区最新精品 | 少妇人妻偷人精品无码视频 | 性欧美牲交xxxxx视频 | 国产成人精品视频ⅴa片软件竹菊 | 伊人久久婷婷五月综合97色 | 久久精品人人做人人综合 | 国产精品无码mv在线观看 | 麻豆精产国品 | www国产亚洲精品久久久日本 | 又大又硬又爽免费视频 | 白嫩日本少妇做爰 | 在线а√天堂中文官网 | 亚洲成av人在线观看网址 | 亚洲精品一区二区三区在线 | 亚洲精品美女久久久久久久 | 国产成人精品一区二区在线小狼 | 久久久久久久女国产乱让韩 | 乌克兰少妇性做爰 | 18禁黄网站男男禁片免费观看 | 青青青爽视频在线观看 | 99久久久无码国产aaa精品 | 国产疯狂伦交大片 | 夜精品a片一区二区三区无码白浆 | 国产成人av免费观看 | 亚洲国产午夜精品理论片 | 男女爱爱好爽视频免费看 | 日日夜夜撸啊撸 | 欧美35页视频在线观看 | 日日鲁鲁鲁夜夜爽爽狠狠 | 精品久久久久久人妻无码中文字幕 | 18禁止看的免费污网站 | 欧美国产日韩亚洲中文 | 色婷婷综合中文久久一本 | 国产肉丝袜在线观看 | 亚洲国产日韩a在线播放 | 亚洲日韩一区二区 | 国产热a欧美热a在线视频 | 国产精品亚洲а∨无码播放麻豆 | 奇米影视888欧美在线观看 | 日本护士毛茸茸高潮 | 国产色在线 | 国产 | 大屁股大乳丰满人妻 | 欧美阿v高清资源不卡在线播放 | 久久久久国色av免费观看性色 | 亚洲色偷偷男人的天堂 | 国产亚洲精品久久久久久大师 | 国産精品久久久久久久 | 国产精品内射视频免费 | 日日摸夜夜摸狠狠摸婷婷 | 国产两女互慰高潮视频在线观看 | 国产国语老龄妇女a片 | 久久综合九色综合97网 | 午夜丰满少妇性开放视频 | 天天燥日日燥 | 久久久av男人的天堂 | 欧美老熟妇乱xxxxx | 国产成人一区二区三区在线观看 | 熟妇女人妻丰满少妇中文字幕 | www国产亚洲精品久久网站 | 亚洲精品综合一区二区三区在线 | 国产亚洲精品久久久久久 | 少女韩国电视剧在线观看完整 | 鲁大师影院在线观看 | 亚洲热妇无码av在线播放 | 精品久久久久久人妻无码中文字幕 | 国产精品-区区久久久狼 | 丰满岳乱妇在线观看中字无码 | 久久综合网欧美色妞网 | 午夜精品一区二区三区在线观看 | 色欲av亚洲一区无码少妇 | 九九热爱视频精品 | 玩弄少妇高潮ⅹxxxyw | 性色欲情网站iwww九文堂 | 久久精品人人做人人综合试看 | 免费男性肉肉影院 | 中文无码精品a∨在线观看不卡 | 97久久精品无码一区二区 | 双乳奶水饱满少妇呻吟 | 偷窥村妇洗澡毛毛多 | 好男人www社区 | 夫妻免费无码v看片 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 在教室伦流澡到高潮hnp视频 | 精品国产青草久久久久福利 | 欧美自拍另类欧美综合图片区 | 波多野结衣aⅴ在线 | 日本一区二区三区免费播放 | 国产明星裸体无码xxxx视频 | 国产黄在线观看免费观看不卡 | 少妇被粗大的猛进出69影院 | 玩弄少妇高潮ⅹxxxyw | 福利一区二区三区视频在线观看 | 中文字幕人妻丝袜二区 | 女人色极品影院 | 伊人久久婷婷五月综合97色 | 国产精品怡红院永久免费 | 97色伦图片97综合影院 | 久久久av男人的天堂 | 福利一区二区三区视频在线观看 | 中文字幕无码人妻少妇免费 | 疯狂三人交性欧美 | 无码精品人妻一区二区三区av | 性生交大片免费看l | 六月丁香婷婷色狠狠久久 | √天堂资源地址中文在线 | 国产片av国语在线观看 | 亚洲理论电影在线观看 | 亚洲精品无码国产 | 国产精品毛片一区二区 | 无码精品国产va在线观看dvd | 国产超级va在线观看视频 | 国产偷抇久久精品a片69 | 欧美一区二区三区 | 人人爽人人爽人人片av亚洲 | 天海翼激烈高潮到腰振不止 | 欧美人与牲动交xxxx | 欧美黑人巨大xxxxx | 日韩人妻无码一区二区三区久久99 | 免费无码肉片在线观看 | 少妇无码一区二区二三区 | 亚洲热妇无码av在线播放 | 国产麻豆精品一区二区三区v视界 | 亚洲va欧美va天堂v国产综合 | 香港三级日本三级妇三级 | 男女超爽视频免费播放 | 一本加勒比波多野结衣 | 大肉大捧一进一出视频出来呀 | 男人和女人高潮免费网站 | 亚洲熟妇色xxxxx欧美老妇 | 欧美日韩一区二区三区自拍 | 欧美乱妇无乱码大黄a片 | 亚洲gv猛男gv无码男同 | 成人无码影片精品久久久 | 又粗又大又硬又长又爽 | 亚洲精品久久久久久一区二区 | 国语自产偷拍精品视频偷 | 无码乱肉视频免费大全合集 | 人人妻人人澡人人爽人人精品浪潮 | 性生交大片免费看女人按摩摩 | 中文字幕无线码免费人妻 | 3d动漫精品啪啪一区二区中 | 日韩无套无码精品 | 国产美女极度色诱视频www | 成人一在线视频日韩国产 | 国产人妻精品一区二区三区不卡 | 又大又硬又黄的免费视频 | 四虎影视成人永久免费观看视频 | 大肉大捧一进一出视频出来呀 | 99久久久国产精品无码免费 | 中文精品久久久久人妻不卡 | 一本久道久久综合婷婷五月 | 婷婷丁香五月天综合东京热 | 成人性做爰aaa片免费看 | 欧美性生交活xxxxxdddd | 国产麻豆精品精东影业av网站 | 超碰97人人射妻 | 亚洲欧洲中文日韩av乱码 | 丰满人妻被黑人猛烈进入 | 正在播放老肥熟妇露脸 | 无码任你躁久久久久久久 | 无码一区二区三区在线观看 | 日日天干夜夜狠狠爱 | 亚洲国产av精品一区二区蜜芽 | 午夜免费福利小电影 | 欧美自拍另类欧美综合图片区 | 色噜噜亚洲男人的天堂 | 18禁止看的免费污网站 | 精品国产一区二区三区av 性色 | 国产精品久久久久久亚洲影视内衣 | 国产sm调教视频在线观看 | 特黄特色大片免费播放器图片 | 国产欧美熟妇另类久久久 | 激情国产av做激情国产爱 | 妺妺窝人体色www婷婷 | 欧美肥老太牲交大战 | 日韩av激情在线观看 | 东京热无码av男人的天堂 | 日本va欧美va欧美va精品 | 美女张开腿让人桶 | 性色欲网站人妻丰满中文久久不卡 | 亚洲成熟女人毛毛耸耸多 | 国产办公室秘书无码精品99 | 性色av无码免费一区二区三区 | 国产精品人妻一区二区三区四 | 国产va免费精品观看 | 亚洲中文字幕va福利 | 日日麻批免费40分钟无码 | 国产亚洲美女精品久久久2020 | 日韩在线不卡免费视频一区 | 自拍偷自拍亚洲精品10p | 亚洲精品鲁一鲁一区二区三区 | 亚洲精品综合一区二区三区在线 | 又大又黄又粗又爽的免费视频 | 无码人妻少妇伦在线电影 | 久久99久久99精品中文字幕 | ass日本丰满熟妇pics | 亚洲国产午夜精品理论片 | 亚洲精品无码人妻无码 | 国产性生交xxxxx无码 | 国产卡一卡二卡三 | 精品成在人线av无码免费看 | aⅴ亚洲 日韩 色 图网站 播放 | 中文字幕人妻无码一夲道 | 无码吃奶揉捏奶头高潮视频 | 偷窥村妇洗澡毛毛多 | 樱花草在线社区www | 男女爱爱好爽视频免费看 | 波多野42部无码喷潮在线 | 无码人妻精品一区二区三区不卡 | 中文字幕av伊人av无码av | 亚洲综合在线一区二区三区 | 精品aⅴ一区二区三区 | 午夜熟女插插xx免费视频 | 香港三级日本三级妇三级 | 久久精品成人欧美大片 | 无码人妻黑人中文字幕 | 午夜熟女插插xx免费视频 | 国产精品第一区揄拍无码 | 欧美人与牲动交xxxx | 内射欧美老妇wbb | 狂野欧美性猛交免费视频 | 欧美zoozzooz性欧美 | 亚洲日本va午夜在线电影 | 亚洲综合久久一区二区 | 丝袜美腿亚洲一区二区 | 丰满妇女强制高潮18xxxx | av无码电影一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 97久久超碰中文字幕 | 人人澡人人妻人人爽人人蜜桃 | 国产色xx群视频射精 | 久久久久久久久888 | 成人免费视频在线观看 | 女人高潮内射99精品 | 扒开双腿吃奶呻吟做受视频 | 国产绳艺sm调教室论坛 | 99久久无码一区人妻 | 亚拍精品一区二区三区探花 | 欧美激情一区二区三区成人 | 亚洲狠狠色丁香婷婷综合 | 欧美大屁股xxxxhd黑色 | 精品无码国产自产拍在线观看蜜 | a片免费视频在线观看 | 国产无套内射久久久国产 | 日本护士xxxxhd少妇 | 无码毛片视频一区二区本码 | 性欧美牲交xxxxx视频 | 国产精品多人p群无码 | 亚洲区小说区激情区图片区 | 久久久久se色偷偷亚洲精品av | 国产香蕉尹人综合在线观看 | 免费视频欧美无人区码 | 国产精品亚洲综合色区韩国 | а√天堂www在线天堂小说 | 漂亮人妻洗澡被公强 日日躁 | 女人被男人躁得好爽免费视频 | 亚洲日韩精品欧美一区二区 | 少妇久久久久久人妻无码 | 乱人伦人妻中文字幕无码 | 国产免费无码一区二区视频 | 三级4级全黄60分钟 | 国产精品国产自线拍免费软件 | 性生交大片免费看女人按摩摩 | 国产偷自视频区视频 | 女人和拘做爰正片视频 | 色噜噜亚洲男人的天堂 | 99久久精品国产一区二区蜜芽 | 国産精品久久久久久久 | 97无码免费人妻超级碰碰夜夜 | 国产va免费精品观看 | 亚洲精品久久久久久久久久久 | 色诱久久久久综合网ywww | 精品国产一区av天美传媒 | 欧美放荡的少妇 | 天堂无码人妻精品一区二区三区 | 无码精品人妻一区二区三区av | 超碰97人人射妻 | 麻豆精品国产精华精华液好用吗 | 欧美丰满熟妇xxxx | 狠狠色噜噜狠狠狠狠7777米奇 | 99久久精品午夜一区二区 | 全黄性性激高免费视频 | 少妇邻居内射在线 | 波多野结衣高清一区二区三区 | 在线欧美精品一区二区三区 | 爆乳一区二区三区无码 | 一区二区三区高清视频一 | 又粗又大又硬又长又爽 | 嫩b人妻精品一区二区三区 | 午夜福利不卡在线视频 | 国产人妻大战黑人第1集 | 大地资源中文第3页 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲综合无码久久精品综合 | 狠狠综合久久久久综合网 | 国产精品久久国产精品99 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美乱妇无乱码大黄a片 | 日韩精品成人一区二区三区 | 人妻人人添人妻人人爱 |