久久视频精品,中文字幕亚洲欧美日韩在线不卡,久久福利电影http://www.bjzhda.cnzh-cn曙海教育集團論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團論壇基于MPC860/VxWorks的嵌入式系統開發http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2783&Page=1wangxinxin2010-12-19 15:59:39圖片點擊可在新窗口打開查看
WindRiver公司提供了很多基于不同硬件平臺的典型的板級支持包BSP。因此,開發基于VxWorks的實用板級支持包是盡量獲得一個與目標板硬件環境相近的參考板級支持包和相關代碼模板,再根據目標板硬件環境,完成板級支持包包含的驅動程序及設備初始化,從而完成板級支持包的開發[4]。
啟動Tornado II集成開發環境,使用工程向導創建一個可啟動工程(bootable VxWorks image)項目,選擇基于ads860的BSP。在這個工程項目里可以進行BSP的基本配置、VxWorks的基本配置、網卡配置等,結合實際電路和應用進行修改,創建用戶自己的BSP以支持特定硬件。前述bootrom程序也可由此生成。在此階段可以借助WDB調試代理和Tornado工具輔助開發,也可以選擇在線仿真器ICE輔助開發。
BSP 調試完成,編譯此工程項目為一個VxWorks內核鏡像文件*.img,在以后的應用程序調試過程中可通過Tornado的一個部件 ftp server下載。下載方法如下:
首先連接主機與目標板的網線和串口線,目標板上電后,在超級終端窗口3秒以內按回車鍵進入boot shell;否則,目標機系統會進入自動尋找并運行程序狀態。
此時啟動和配置ftp server,選擇Security菜單中的user/rights命令,添加一個用戶名如target,密碼target,設置主目錄為C:\;然后點擊Done。ftp server配置完成。
現在需要設置主機ip地址。將主機ip設為192.168.1.1,子網掩碼255.255.255.0。將調試好的VxWorks鏡像文件*.img拷貝到C:\。
最后,在主機的串口超級終端中輸入設置好的下載命令@,目標板開始從主機的ftp server下載*.img(vxworks的ram鏡像)。
下載完成,*.img文件自動運行,在超級終端窗口顯示vxworks鏡像在目標板啟動成功的信息,此時vxworks內核已經成功裝載到目標板,可以同主機的tornado(vxworks的集成開發環境)進行連接了。
3.3  在tornado中編寫和運行應用程序
當上述環境配置成功后就可以進行應用程序開發了。在tornado集成開發環境中可以開發并調試各種應用程序,添加程序并編譯成功后就可以下載到目標板上進行調試了。下面通過一個應用程序調試示例加以說明。
4   開發應用程序示例
4.1 開發并編譯程序
啟動Tornado II集成開發環境,使用工程向導創建一個可下載工程(downloadable application modules)項目project1,在創建過程中選擇工具鏈(toolchain)為PPC860gnu。在工程項目中編寫或添加應用程序源文件,如一個Hello.c文件。
#include "vxworks.h"
#include "drv/multi/ppc860Siu.h"
void root()
{
printf("hello!How are you?\n");  /*在終端輸出此信息*/
}
#define PD10    (0x0020)
#define PD09    (0x0040)
#define RUNLIGHT  PD10
#define LINKLIGHT PD09
void RunLight(void)
{
 int immrVal = vxImmrGet();
        *PDDIR(immrVal)|=RUNLIGHT;
 while(1)
    {
  *PDDAT(immrVal) ^=RUNLIGHT;
  taskDelay(sysClkRateGet()/2);/*delay 0.5 second*/
    }                    
}
void run()
{
 taskSpawn ("RunLight", 100,0 /*switchTaskOptions*/,0x1000,
      (FUNCPTR)RunLight, 0,0,0,0,0,0,0,0,0,0);
} /*通過以上函數創建并激活一個新任務,點亮系統指示燈*/
4.2 配置和運行target server
使用Tornado編譯器編譯成功后下載。下載之前首先要配置和運行target server,在菜單tool/target server/configure中,先點擊new新建一個配置如configuration1, 然后開始配置。
在target server proportion 項的“Back End”的選項中選擇wdbrpc;
在target server proportion 項的“Core File and Symbols”的選項中設置vxworks鏡像文件位置為C:\;
在target name/ip address輸入目標板的ip 地址192.168.1.254;
配置完成,點擊Launch運行;
下面可以下載和運行應用程序了。
4.3下載和運行程序
在工程上點擊右鍵,選擇download project1.out下載應用程序到目標板,然后可以在Tornado中的shell里運行應用程序了,如在shell中運行hello.c中的root函數(在shell中打印hello!How are you?)和run(目標板的run燈會閃亮)。
在每次下載調試應用程序或添加新的應用程序時都不需要把它們和vxworks內核編譯到一起,這樣節省了開發和調試時間。
5   總結
本文描述了基于嵌入式實時操作系統VxWorks的開發方法,憑借性能優良的VxWorks和高度集成的開發環境,VxWorks的應用已成為新的研究熱點。在開發過程中使用相近的BSP開發用戶自己的板級支持包,難度降低了并縮短了開發時間,使用ftp server下載VxWorks內核鏡像,使用Torndo 工具編譯、調試和下載應用程序。通過這樣的流程對應用程序的開發帶來了極大的方便,該方法已得到廣泛應用。
本文作者創新點:對基于VxWorks嵌入式操作系統在MPC8XX系列cpu上的開發過程進行了具體而實用的描述。有一定的應用價值。

]]>
嵌入式實時操作系統VxWorks入門(1)http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2782&Page=1wangxinxin2010-12-19 15:09:14  VxWorks的實時性體現在能于限定的時間內執行完所規定的功能,并能在限定的時間內對外部的異步事件作出響應。因此,實時性系統主要應用于過程控制、數據采集、通信、多媒體信息處理等對時間敏感的場合。本文將對這個操作系統進行一個入門級的、全面的介紹。為力求展示其全貌,全文共分五章:

  (1)搭建VxWorks嵌入式開發環境;

  (2)簡要介紹VxWorks的基本組成,內核的基本結構;

  (3)概述VxWorks板級支持包(BSP)的概念及VxWorks的啟動過程;

  (4)介紹VxWorks設備驅動的架構及編寫方法;

  (5)指明VxWorks應用開發的思路,任務調度及任務同步、中斷與任務的同步機制。

  以上各章中將貫穿著許多實例,由于本文定位于入門級教程,所以文中的實例都將十分簡單。下面我們進入第一章內容的講解。

  如圖1,嵌入式系統的調試方法一般為通過PC(宿主機)上的集成開發環境交叉編譯針對特定電路板(目標機)的程序,然后將程序通過目標板的JTAG、串口或網口等途徑下載到目標板上運行。因此,為了構造一個嵌入式系統的學習環境,擁有一塊包含CPU、存儲器及I/O電路(構造計算機系統)的目標電路板往往是必要的。雖然許多集成開發環境附帶模擬軟件,但僅限于指令集的模擬,均無法模擬物理的目標機硬件平臺,因而在其上只能進行應用程序的象征性模擬開發。但是,并非所有人都能擁有一塊物理的電路板。在這種情況下,我們如何構造一個模擬的開發環境,其學習效果就如同擁有完全真實的電路板一樣呢?本文試圖解答此問題,主體內容包括四個方面:

  (1) 利用VMware等軟件模擬真實的目標機;

  (2) 構建VMware虛擬PC上VxWorks BSP,建立Bootrom和OS映像;

  (3) 修改Tornado相關設置,連接宿主機與目標機,建立調試通道;

  (4) 寫一個簡單的應用程序并下載到目標系統運行。

  

圖片點擊可在新窗口打開查看

  圖1 嵌入式系統的調試

  本章工作的最終目標為:

  (1)VxWorks在VMware啟動成功并順利運行,如圖2;

  圖片點擊可在新窗口打開查看

圖2 在VMware中運行的VxWorks

(2)可在Tornado上針對目標板編譯程序并進行調試,如圖3。

  圖片點擊可在新窗口打開查看

圖3 與目標機建立調試通道的Tornado

  1. 模擬目標機

  PC也具有目標機的所有特點,實際上,我們可以把PC作為嵌入式系統的目標機,從而構造如圖4所示的開發模型:

  圖片點擊可在新窗口打開查看

  圖4 PC作為目標機

  很遺憾,這種方法實際上非常麻煩,同時開動兩臺PC進行調試將使你和你的室友飽受折磨,既然他如此地熱切于游戲和上網。因此,我們可以借助VMware來在本機上虛擬出另一PC。

  VMware的確是天才的作品!在同一PC上,利用VMware幾乎可以安裝所有的操作系統,而且操作系統之間的切換不需要重新啟動電腦。VM的意義是Virtual Machine,即虛擬出一個邏輯的電腦,它可以提供基于Intel CPU的虛擬PC系統環境,包括CPU、內存、BIOS、硬盤和其他外圍硬件設備。

  下面我們講解用VMware來建立一臺虛擬PC的步驟:

  (1)下載并安裝VMware;

  (2)使用VMware向導建立一個針對VxWorks的虛擬機;

  此步驟中注意在操作系統中選擇“other”,如圖5:

  

圖片點擊可在新窗口打開查看

  由于目標機最終通過軟盤啟動,因此要求你的電腦具有軟驅。很遺憾,當年日常使用的軟盤如今成了古董,很少再有電腦配備軟驅。因此,我們再來制造一個假冒偽劣產品,虛擬一個軟驅。又一個天才的工具軟件RamDiskNT為我們提供了這一便利,圖6演示了用RamDiskNT虛擬一個1.44M軟盤的方法。

]]>
linux在vxworks開發過程中充當著怎樣的角色http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2781&Page=1wangxinxin2010-12-19 15:00:31現在的嵌入式產品配套大資料大多是和嵌入式linux相關的,提供的vxworks相關資料的卻相對較少.vxworks以其極強的實時行,一直勢頭強勁,linux以其非商業的特點一直深受廣大嵌入式開發者的青睞!

在這里我們撇開其商業性與否不談,但從利于我們學習的角度出發,探討一下linuxvxworks開發學習過程中的作用,當然如果你非常精通linux對學習vxworks一定會有很大的幫助.當然你也可以完全撇開linux.但在這里,我們只是尋求一種學習vxworks的相對科學的途徑,怎樣在有限的時間內把vxworks的學習效率提到最高?怎樣合理的把嵌入式開發商提供的linux資源運用到我們的vxworks開發中?是否有必要抽出時間去學習一下linux?研究到什么程度?這些問題對于做底層開發的廣大嵌入式愛好者尤為突出.

對于這些問題,希望大家從自己的開發經歷談談自己看法,在這里只要你有過嵌入式開發的經驗,你就可以暢所欲言,我們的目的是取長補短,相互提高!

]]>
VxWorks應用開發基本步驟http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2780&Page=1wangxinxin2010-12-19 14:53:28bootrom 是指on-chip bootrom,在CPU芯片內部,內嵌有小的boot程序(bootloader),類似于PC機主板上的BIOS的存儲區域。和boot image不是一回事。VxWorks文檔中的bootrom區是指boot image存放的位置。
boot image的作用是把VxWorks image 加載到主板。boot image只初始化很少的硬件系統如串口,網口等。為加載VxWorks image做準備,當VxWorks系統下載完畢后,boot image的作用也就完成了。
VxWorks image含有完整的VxWorks OS。是真正運行于目標板上的操作系統。應用程序運行于VxWorks系統之上。
boot image 和VxWorks image生成在使用BSP文件上的區別在于:在啟動順序中Bootrom調用bootConfig.c,而VxWorks調用usrConfig.c.

在ROM中vxworks運行的方式(和bootrom編譯到一起還是單獨固化到ROM中),在ROM中的內存分配?
VxWorks加載到主板運行,分不同的情況,如果VxWorks是壓縮的,加載時解壓到RAM的RAM_HIGH_ADRS.
如果是ROM based VxWorks,VxWorks image的data段復制到RAM的LOCAL_LOW_ADRS, text部分留在ROM并在ROM中執行。
既不壓縮又不ROM based的VxWorks直接copy到RAM_LOW_ADRS運行。

若在config.h中修改系統設置,如增加網卡等,是否需要重新燒bootrom?如果增加其他oem產品呢?

如果主板中有Boot image存在則不需要重新燒,用FTP等download加載VxWorks即可。

VxWorks 系統編程中任務級與中斷級的通訊如何實現?

中斷是由硬件觸發,軟件的作用只是將中斷服務例程(ISP)與中斷事件連接起來.
1.使能中斷,函數intEnable().
2.用intConnect()登記中斷號,和相應的中斷例程ISR.
這樣一旦有中斷發生,系統自動跳轉到相應位置執行ISR.
 
Bootloader怎么得到,如果對開發板有些改動,還能使用開發板的bootloader嗎?bootloader起到什么作用?
Bootloader相當于PC機主板上的BIOS,是最底層的引導軟件,初始化主板的基本設置,為接收外部程序做硬件上的準備.
有些bootloader已經嵌在CPU內了,沒有bootloader的CPU可以在片外的eeprom內做bootloader,也可以不要bootloader,直接通過JTAG口灌入程序,開發板改動基本上不會影響bootloader.
 
VxWorks 應用程序編譯下載時常見問題及原因分析
 Tornado環境下編譯產生的錯誤:標準C函數或自己的函數,變量不認識(undefined symbol),編譯失敗。
Tornado支持c 和 c++ ,文件后綴為.cpp時編譯器會認為是c++文件,這樣有些定義類型為C的函數在編譯或下載時不被認可。
解決方法是 1.把如果在c++文件(.cpp)中調用c函數,應該把這些不被認可的c類型函數用語句extern "C"說明一下為c函數。
另外,如果將c文件的后綴小寫的.c誤寫為大寫的.C,也會出同樣的錯誤,編譯時不會編譯這個文件。
Tornado環境應用程序下載產生的錯誤:函數不認識(undefined symbol),下載失敗。
雖然編譯通過,可是下載時依然會有這樣的問題,仍然是函數或變量沒有定義。系統不認識,這是出錯的原因基本上時沒有定義的錯誤。查找包含函數或變量的頭文件是否加了進去。如果實在找不到定義的話,簡單的辦法是先把這他們去掉(當然是沒有其他地方用到的情況下)試一試,先down下去,能運行后,然后添加,再繼續查找。

在ARM下不用Boot image,直接燒入VxWorks image的過程
有些ARM CPU一般分兩種運行方式,一種是Boot方式,一種是normal方式。
在Boot方式下直接燒寫VxWorks image到Flash, 這種VxWorks image包含有boot的功能(類似VxWorks.rom形式),中間那段燒寫到flash的程序是必須的,第一次通過串口下載VxWorks image到Dram是一個簡單的過渡,有boot loader控制。
當燒寫完成后,切換CPU到normal模式,系統啟動,開始逐行讀Flash中的指令,是由VxWorks BSP控制,根據不同的VxWorks image定義,執行不同的操作,例如若VxWorks是壓縮的,則解壓復制到DRAM的高位地址,...。

VxWorks image 和Boot image中的兩次硬件初始化之間的區別
Boot image和VxWorks image都對硬件進行了初始化。兩次硬件初始化的是不同的。
BootRom映像主要作用是通過網口或串口下載VxWorks系統,所以它只是初始化很少的硬件系統如串口,網口等來滿足下載VxWorks的需要,一旦VxWorks下載完畢。這些初始化過的硬件的作用也就完成了。
VxWorks啟動后會從新對幾乎所有的硬件設備進行完全的初始化來滿足VxWorks操作系統運行的需要。

匯編語言在VxWorks系統編程的使用: 
匯編語言主要出現在BSP文件roInit.s,sysAlib.s等,這些匯編指令是系統初始化硬件用的,硬件系統Power up時硬件特別是內存沒有初始化,C函數庫沒有裝入內存,系統此時不支持C語言程序,只支持它自己的32位匯編指令,所以只能用匯編指令來初始化硬件,為后續的操作系統包括C語言支持做準備.在OS正常運行后,就可以用C了.
Tornado不支持匯編指令,
匯編在編譯連接BSP,生成bootrom或VxWorks映像,才被編譯.有兩種方法:
1.現在可以在Tornado環境下生成bootrom或建 Bootable 的 project 生成 VxWorks
2.傳統的方法,在命令行方式,用make編譯生成.
在Tornado下的downloadable的project,application中不能用匯編.
不過一般匯編很少用.
可以與其他bsp文件在tornado下作成bsp或用命令行make.
VxWorks 下寫驅動需注意的問題
1。MMU 對該硬件的地址映射正確 (改 BSP )
2。中斷向量表該中斷的定義位置,知道相應中斷的中斷標志位等信息(改 BSP )
3。查出中斷號及中斷級別,硬件中斷登記 (INTCONNECT ),及 ISR
4。系統任務協調,保證在該程序執行時,沒有其它任務占用 CPU
]]>
VxWorks應用開發基本步驟http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2779&Page=1wangxinxin2010-12-19 14:40:13假設BSP部分已經做好,下面說一下開發應用程序的基本步驟:

1.首先從Tornado中建立一個新的Project可以看出,有兩種映像可以選擇:Bootable和Downloadable,在開發初期通常是先建立一個不包含應用層模塊的bootable project,編譯出一個包含基本組件的VxWorks映像,將系統啟動起來;其實這一步編譯出的就是包含基本組建的一個VxWorks內核,并沒有我們的應用代碼。

 

2.在和上面的Bootable工程相同的Workspace中建立一個Downloadable project,在這個工程中編寫、編譯應用層的模塊,然后動態下載到目標機中去調試;

3.應用層模塊調試完畢可以發布之后,可以將應用層模塊和第一步中的Bootable的VxWorks映像編譯到一起;這時候可以向Boottable Project中加入應用層代碼文件,加入方式是Add from project,然后把包含應用層代碼的Downloadable project中的文件導入Bootable project,重新編譯Bootable Project得到的就是包含應用層的可啟動的VxWorks影像。

4.把最終的映象放到軟盤、硬盤或者Ftp服務器相應的目錄下,這需要根據BootRom中bootline的啟動方式來決定。

 

]]>
提高效率的方法思考(基于Vxworks和Tornado的工作經驗)歡迎大家討論指針http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2778&Page=1wangxinxin2010-12-19 14:35:38
敝人拋磚引玉版,出道時間短,只做過Tornado上的項目,想和大家討論一下如何提高工作效率的問題,看過人家寫過的一篇
文章,結合自己,寫了如下東西:

一.根據你從事的行業,選擇合適你的工具。
俗話說:工欲善其事,必先利其器。
  1.一個穩定的操作系統:我用的是番茄花園SP2,不打任何補丁,打了我的Tornado就有問題,這個因人而異,看從事的具體工作;
  2.一個自己熟悉好用的輸入法:我的的是搜狗,以前用過紫光,Google,最后換到搜狗,畢竟這個是網絡時代的利器;
  3.一個好的閱讀pdf軟件:最好還再下載一個Adobe Acrobat,能制作PDF。
  4.一個好的Word版本:推薦Office 2007,帶上Visio。
  5.一個好的翻譯軟件:推薦谷歌金山詞霸版。
  6.一個或多個下載工具:我是迅雷,FlashGet,電驢,CuteFTP都用,一個自己想找的軟件不一定在正常渠道就能免費得到,要用心。
  7.一個好的瀏覽器:現在用Google的瀏覽器,單任務,不像IE慢,不過容易死,因為他相對比較快,這個看個人喜好。
  
  總結一下:軟件也是看人用的,用得不好,好的軟件也不好用;不好的軟件再熟練也不能提高的效率。
  所以說選對了好軟件只是提高效率的第一步,自己領進門,修行還是靠個人。
  
二.時刻總結,反思自己的弱點,到底慢在什么地方,如何改進彌補。

  1.對自己的電腦工作環境做到心中有數,如果心中沒有數,至少要在每個盤下面的目錄上體現出來所有工作資料的存放思路和方位。
  不要因為查找一個文件而浪費時間。 好的辦法是把常用的文件夾的快捷方式放在桌面上。
  
  2.整理好你的開始菜單,盡量把不用的刪除.用好任務欄上的”快速啟動“欄.三次鼠標雙擊就能找到你要的文件,這個一個目標。

  3.當然硬件有關的好多軟件也是要裝的,現在只裝了Protel99,我所從事的公司都用這個,其他的好軟件我只是聽說,沒有機會用,汗顏。

  4.一般來說,一個好的編譯器是很重要的,但是這個相對來說跟自己所處在的行業有關,這個東西一般都是確定的,如何用好編譯器的優化等級,盡量打開所有編譯開關是需要的。在時間有空余的時候,研究一下你的編譯器,如何提高它的工作成效(注意不是效率,而是成效), 在編譯器上面我們考慮的不是編譯時間快慢,而是編譯器能找出多少錯誤,強烈推薦在Tornado中打開警告開關 -WALL,或者更多的編譯警告開關。
  這個還請大蝦指導,如何利用編譯器,在Vxworks的中文FAQ中有許多說明。
  也許還要看看GCC相關的資料。如能在Tornado中用上PC-Lint這樣的工具最好。

  5.一個好的帶編譯器的IDE往往不是一個好的編輯器,至少Tornado是這樣的。所以推薦一下Source Insight和UltraEdit,還有更好的請各位推薦。
  Source Insight的顏色區別和能快速查找子函數,能根據函數形成調用的結構框圖對于閱讀程序很有幫助,但是它對中文支持不好。
  所以我們選擇UltraEdit來編寫,以前一直用其他工具來對比程序,如Beyond ComPare,現在我們用UltraEdit來對比,還是不錯的,小推薦一下。
  在Tornado中外掛UltraEdit:Tools->Option->External Tools->Command:輸入
  C:\Program Files\UltraEdit-32\Uedit32.exe $filename/$lineno,可以讓你編譯出錯的同時快速查找定位出錯的位置,可以快速修改。

  6.當然還有好多好的調試方式,最好的是深刻理解你所編寫的程序,明確知道你的程序運行結果應該是什么,如果出錯,第一步如果還是懷疑硬件, 或者懷疑編譯器,或者懷疑與自己無關的東西都是《代碼大全》作者所說的”迷信階段“,要相信科學,我們的程序不是到處亂跳的跳蚤,如果它到處亂跳,那就說明我們自己腦子中有Bug。

  7.單步調試是一個很重要的工具,用好它。

  8.學會用printf打印錯誤。用好快捷鍵,一個你天天打交道的軟件理所應當熟悉他的快捷鍵,這樣你也會快很多。

  9.學會用鉤子函數,到了一定階段,你會發現出錯大多是指針錯誤(我只用過C,++都沒有用過,難免片面,見諒)。

  11.看看Shell命令,里面有好多好的命令,CheckStack,md,semShow,memShow,devs,iosFdshow,你都用好了么?

  12.你有兩個網卡么?沒有就打申請再買一個。串口夠用么?不要總把調試線拔來拔去,那不是給老板省錢,是給自己找罵。
  總是因為沒有插某根線而浪費10分鐘到半個小時時間來排查錯誤,那是浪費生命,這半個小時時間應該用來上CSDN或者看八卦新聞。
  
  

三.時刻學習,當然這個是最重要的,沒有積極向上的心態是不能讓我們做事情更有激情。
  聽人說過一句話,不是因為當前的工作不好你就懈怠,而是因為你懈怠而讓你工作不開心。
  不要讓環境左右你,如果那樣,你永遠也左右不了環境。
  
  從做硬件過度到嵌入式軟件或者是從上層軟件過度到嵌入式軟件都要學習的東西很多:
  《代碼大全2》,推薦指數:*****
  《C++》,這是一個趨勢,而不是書,推薦指數:*****
  學習軟件工程吧,UML的工具和語言,算法,重構,敏捷,都看看,學學。
  系統分析師?要不要考,這是個問題。至少可以看看,上面還有什么樣子的天空。
  還有好多,想起來再寫。
  Vxworks的書就不寫了,操作系統的概念才是核心,而到了最后還是行業應用,最重要的是市場。
  
  四.埋頭搞技術也不現實,抬頭看看前面的路,關心一下市場。
  
  別亂喝牛奶,人家是奶酸了加堿,堿多了加硫酸,還加雙氧水。
  努力掙錢,給孩子買外國奶粉。
  看看《南方周末》,即使丫漲價了,3塊錢。
  經常上上天涯,看看今年的百大人物評選。
  沒事的時候改一下QQ簽名。
  熱愛生命,遠離國足。
  如果有可能,學個樂器。
  保持鍛煉,經常運動。
]]>
基于ARM7核處理器VxWorks系統BSP設計http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=2777&Page=1wangxinxin2010-12-19 14:32:30ARM7TDMI核S3C4510B微處理器,并詳細介紹了利用該處理器所設計嵌入式系統以及VxWorks操作系統下BSP(Board Supported Package)的開發

    關鍵詞:ARM7TDMI S3C4510B VxWorks BSP  

1 介紹  

S3C4510B是三星公司推出的針對嵌入式應用的16/32 位嵌入式處理器,該微控制器專為以太網通信系統的集線器和路由器而設計,具有低成本和高性能的特點, S3C4510B中內置了ARM公司設計的16/32位ARM7TDMI處理器, 可以執行32位的ARM指令,也可執行16位的THUMB指令, 并集成了多種外圍部件,主要有:  

● 時鐘頻率50MHz  

內核/IO電壓3.3V  

● 8KB的Cache/SRAM  

● 一個10/100Mbps 以太網控制器,MII接口  

● 兩個HDLC通道,每個通道可支持10Mbps  

● 兩個UART通道  

● 兩個DMA通道  

● 兩個32位定時/計數器  

● 18個可編程I/O口  

● 中斷控制器,支持21個中斷源,包括4個外部中斷  

● 支持SDRAM,EDO DRAM,SRAM,Flash等  

● 具有擴展外部總線  

● JTAG接口,支持軟件開發 ,硬件調試  

S3C4510B支持目前常用的嵌入式操作系統,如VxWorks、pSoS、ucLinux等,本文將主要介紹VxWorks操作系統下的軟件開發。  

ARM7TDMI是ARM家族通用的一款32位微處理器,它主要為用戶提供了高性能、低價格解決方案。  

ARM7TDMI具有三級流水線的32位RISC處理器,處理器結構為馮·諾依曼Load/Store。該CPU具有兩種指令集,即ARM和Thumb指令集。ARM指令集是32位,它可以利用CPU最大性能;而Thumb指令集則是16位指令集。  

ARM7TDMI內核方塊圖如圖1所示。



















圖片點擊可在新窗口打開查看





2 系統硬件圖  

該系統主要以S3C4510B為核心,外圍集成了以太網卡、SDRAM、FLASH、UART以及HDLC等。圖2是以S3C4510B為核心的最小系統設計圖。



















圖片點擊可在新窗口打開查看



    SDRAM選用HY57V653220(8Mbyte)、兩片FLASH分別為AM29F040(存放bootrom)和T28F160BT(作為文件系統用)。  

3 VxWorks操作系統下BSP構建  

在完成板上基本硬件的測試后,下面我就開始對vxWorks操作系統下BSP進行開發,開發前需要做一些準備工作,如準備開發工具等。  

① 開發工具用的是Tornado2.2 for ARM;  

② 參考資料有BSP Kit、S3C4510B DataSheet;  

③ 參考Tornado2.2 for ARM下自帶的wrSBCArm7 BSP;  

④ 燒寫程序采用編程器。  

通常在開發BSP的時候,我們需要在Tornado原帶BSP目錄下找一個與我們所用的處理器相同或相近。與BSP相關的文件有:romInit.s、sysAlib.s、bootInit.c、bootConfig.c、sysLib.c、config.h、configNet.h、makefile以及與我們硬件相關的,如串口sysSerial.c等。由于篇幅所限,具體的文件作用在此就不說了。下面主要根據S3C4510B來闡述一下BSP開發步驟。  

(1)拷貝BSP  

將wrSBCArm7 BSP拷貝一份并命名為4510BSP,接下來的工作就是修改該目錄下的文件,從而得到自己的BSP。  

(2)修改MakeFile文件  

修改4510BSP目錄下的makefile文件,修改如下幾行:  

TARGET_DIR = 4510BSP # changed by caiyang  

VENDOR = CAI # changed by caiyang  

BOARD = MyArmBoard # changed by caiyang  

ROM_TEXT_ADRS = 01000000 # ROM entry address  

ROM_WARM_ADRS = 01000004 # ROM warm entry address  

ROM_SIZE = 00080000 # number of bytes of ROM space  

RAM_LOW_ADRS = 00006000 # RAM text/data address (bootrom)  

RAM_HIGH_ADRS = 00486000 # RAM text/data address (bootrom)  

MACH_EXTRA =  

注解:ROM_TEXT_ADRS:BOOT ROM的入口地址。對大多數板來說,這就是ROM地址區的首地址,然而也有的硬件配置使用ROM起始的一部分地址區作為復位向量,因此需要根據此設置偏移量作為它的地址。這個偏移量因CPU結構而定。  

ROM_WARM_ADRS:BOOT ROM熱啟動入口地址。它通常位于固定的ROM_TEXT_ADRS+4的地方。當需要熱啟動時,sysLib.c文件中sysToMonitor( )函數代碼明確的跳轉到ROM_WARM_ADRS地址處開始執行。  

ROM_SIZE:ROM實際大小。  

RAM_LOW_ADRS:裝載Vxworks的地址。  

RAM_HIGH_ADRS:將Boot Rom Image拷貝到RAM的目的地址。  

注意:RAM_LOW_ADRS 和 RAM_HIGH_ADRS 都是絕對地址,通常位于DRAM起始地址的偏移量處,該偏移量取決于CPU結構,這需要參考VxWorks內存分布。對于ARM的內存分布請看圖3,從圖3可以看出RAM_LOW_ADRS在DRAM+0x1000處。這些地址對于S3C4510B來說都應該是重映射后的地址。  

(3)修改config.h文件  

主要是修改ROM_BASE_ADRS、ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、RAM_HIGH_ADRS和undef掉不需要的部分。注意這些應該和makefile文件中設置的一致。  

(4)修改romInit.s文件  

CPU一上電就開始執行romInit( )函數,因此在romInit.s代碼段中它必須是第一個函數。對于熱啟動,處理器將會執行romInit( )加上4后的代碼(具體參考sysLib.c中的sysToMonitor( )函數)。更多的硬件初始化在sysLib.c中sysHwInit( )函數中,romInit( )的工作就是做較少的初始化并把控制權交給romStart( )(在bootInit.c文件)。  

在S3C4510B處理器中,romInit.s文件主要做了以下幾個工作:  

① 禁止CPU中斷并切換到SVC32模式;  

② 禁止中斷控制器;  

③ 初始化SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器,同時初始化了FLASH、SDRAM、DM9008等外圍設備;  

④ 將FLASH的內容拷貝到SDRAM中;  

⑤ 改變FLASH和SDRAM的基地址,將SDRAM基地址改為0;  

⑥ 初始化堆棧指針;  

⑦ 跳轉到C程序romStart( )函數中。  

在這里,只需要修改SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器來設置FLASH、SDRAM、DM9008的基地址和大小即可。這需要根據板上的配置來修改,修改的內容在wrSbcArm7.h文件中。  

BSP基本部分就已經修改完成,至于bootInit.c和bootConfig.c文件,我們一般不需要修改它,只是在調試過程中為了方便調試,可以將他們拷貝到BSP目錄下,然后修改makefile文件,在makefile文件中添加如下兩句。  

BOOTCONFIG = bootConfig.c  

BOOTINIT = bootInit.c  

(5)利用tsfs(target server file system)下載  

要利用tsfs下載VxWorks,首先需要配置以下內容:  

① 在config.h文件中添加如下內容  

/* Serial port configuration */  

#define INCLUDE_SERIAL  

#undef NUM_TTY  

#define NUM_TTY N_SIO_CHANNELS  

#undef CONSOLE_TTY  

#define CONSOLE_TTY 0  

#undef CONSOLE_BAUD_RATE  

#define CONSOLE_BAUD_RATE 38400  

/*** WDB ***/  

#ifdef SERIAL_DEBUG  

#define WDB_NO_BAUD_AUTO_CONFIG  

#undef WDB_COMM_TYPE  

#undef WDB_TTY_BAUD  

#undef WDB_TTY_CHANNEL  

#undef WDB_TTY_DEV_NAME  

#define WDB_COMM_TYPE WDB_COMM_SERIAL /* WDB in Serial mode */  

#define WDB_TTY_BAUD 38400 /* Baud rate for WDB Connection */  

#define WDB_TTY_CHANNEL 1 /* COM PORT #2 */  

#define WDB_TTY_DEV_NAME "/tyCo/1" /* default TYCODRV_5_2 device name */  

#endif /* SERIAL_DEBUG */  

/* tsfs added by caiyang */  

#define INCLUDE_TSFS_BOOT  

并修改引導行為  

#define DEFAULT_BOOT_LINE \par "tsfs(0,0)host:vxWorks f=8 h=169.254.72.67 e=169.254.72.68 u=caiyang pw=caiyang"  

注:串口1用來顯示引導信息,相當于PC機中的顯示器,串口2用來下載VxWorks和調試。同時串口2波特率不能太高,經測試115200好像不行。  

② 配置target server  

啟動Tornado開發環境,選擇Tool->target server菜單。在下拉菜單中選“target server file system”并選中Enable File System,然后目錄指向Vxworks所在的地方。同時注意要把Tornado Registry打開,這樣配置完后點擊Launch按鈕即可連接成功,此后就可以通過串口2下載VxWorks和調試。





















圖片點擊可在新窗口打開查看

  

一般情況下,我們首先調試好BSP,然后在調試網卡。所以在調試網卡前,我們需要用串口來下載VxWorks映像。  

至此,我們的BSP就開發完成。  

4 結論  

在沒有調試BSP的硬件工具如仿真器的時候,我們只能通過點燈或者串口輸出來定位程序執行的正確性。這大大增加了調試難度和進程。對于BSP開發,一般需要從一個模板來修改。BSP開發的正確性直接影響到VxWorks系統運行的穩定性。  (52RD.com)]]>
VxWorks WTX C API函數庫應用簡介http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1964&Page=1wangxinxin2010-12-1 14:04:59WTX概況
Tornado 公開了應用程序接口和協議。對 Tornado 工具而言 ,有兩個重要的協議 WTX (Wind River Tool eXchange)和 WDB (Wind DeBug) ,它們是聯系 Tornado 工具和目標機的媒介。
WTX協議負責目標服務器和駐留主機的開發工具之間的通信。該協議是可擴展的 ,允許添加新工具設計中需要的新的服務。
WDB 協議負責目標服務器和目標機代理器之間的通信。


WTX語言支持
WTX協議通常是通過TCL命令與C函數來進行訪問的。分別提供了TCL接口函數庫與C語言的函數庫。


WTX協議的通信機制
WTX協議提供了Tool 與Target Server之間的接口。他們之間的通信機制如下,一個Tool向Tareget Sever請求信息或執行動作,WTX將這些請求傳達給Target Server,而后Target Server 將作出適當的響應。



WTX 消息格式
所有的WTX消息都在installDir/host/include/wtxmsg.h中被詳細定義了,這些消息都有一個同樣的前綴“WTX_MSG_”。這些消息的定義中都包括一個WTX_CORE結構(如下所示),該結構中包括了這個消息的標識符與相應的錯誤代碼errCode。當消息被正確的調用則返回OK,errCode錯誤代碼為0,否則如果調用失敗則返回相應的errCode錯誤代碼(非零值)。可根據錯誤的返回值errCode到installDir/host/include/wtxerr.h中找到相應的錯誤信息。
typedef struct wtx_core               

/* WTX message core */

{
UINT32       objId;                 /* identifier */
WTX_ERROR_T  errCode;               /* service error code */
UINT32       protVersion;           /* WTX protocol version */

} WTX_CORE;



WTX
協議應用范圍
Sessions交互時域與日志的管理;
系統級與任務級的調試;
Tool與Target Sever的綁定
目標機內存的訪問
Tool與Target Server的斷開
管理目標模塊
管理符號表
管理上下文
支持虛擬輸入輸出
管理事件
支持Gopher


WTX
協議的C語言API
WTX C API是專為ANSI C而設計的,其將允許C應用程序可以享受Target Sever 的服務。任何的WTX應用都可以通過WTX C API來實現。
每一個WTX 的請求都被配備了相應的C語言子函數。例如,WTX_MEM_READ被配備了C函數wtxMemRead( ),所有的WTX C API 函數名都是從WTX的協議請求而來的。所欲的WTX C API都被保存在installDir/host/hostType/lib/libwtxapi中。

WTX C API調用框架

Tornado提供了wtx庫wtxapi.dll,其函數聲明在\host\include\wtx.h中,下面闡述了如何調用這些函數。
①包含庫文件說明:
#include “wtx.h”
②定義句柄結構:
HWTX
hwtx;
/* HWTX是句柄結構 */
③初始化WIX句柄:
/*initialize WTX session handle */
if(wtxInitialize(&hWtx)!=WTX_OK)

return (WTX_ERROR);
④連接到名字為“xulifeng”的目標機服務器:
/* attach to Target Sever named “xulifeng” * /
if(wtxToolAttach(hWtx,“xulifeng”,“wtxApp”)!=WTX_OK)

return(WTX_ERROR);
⑤ 注冊事件(缺省是全部的事件):
if(wtxRegisterForEvent(hwtx,".*") != WTX_OK)
{
wtxToolDetach(hWtx);
return(WTX_ERROR);
}

這里添加wtx應用程序部分
.
.
.
.

斷開連接
wtxToolDetach(hWtx);

結束任務
wtxTerminate(hWtx);
在wtx應用程序部分,用戶可以根據需要調用相應函數來完成自己想要實現的功能。如查看內存、查看任務、下裝程序、運行任務等等。
]]>
一種VxWorks內存管理方案http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1963&Page=1wangxinxin2010-12-1 13:51:45摘要:探討嵌入式開發對內存管理的基本要求、嵌入式開發內存管理的關鍵問題以及給出一種VxWorks內存管理方案,即把除VxWorks系統保留內存以外的內存分為三種類型進行管理:固定大小的緩沖池、動態可變的堆以及由各種固定大小的緩沖區組成的隊列。

   目前,針對有內存管理單元MMU(Memory Management Unit)的處理器設計的一些桌面操作系統,如Windows、Linux,使用了虛擬存儲器的概念。虛擬內存地址被送到MMU映射為物理地址,實際存儲器被分割為相同大小的頁面,采用分頁的方式載人進程。
   大多數嵌人式系統針對沒有MMU的處理器設計,不能使用處理器的虛擬內存管理技術,而采用實存儲器管理策略。因而對于內存的訪問是直接的,它對地址的訪問不需要經過MMU,而是直接送到地址線上輸出,所有程序中訪問的地址都是實際物理地址;而且,大多數嵌人式操作系統對內存空間沒有保護,各個進程實際上共享一個運行空間。一個進程在執行前,系統必須為它分配足夠的連續地址空間,然后全部載人主存儲器的連續空間。
    由此可見,嵌人式系統的開發人員不得不參與系統的內存管理。從編譯內核開始,開發人員必須告訴系統這塊開發板到底擁有多少內存;在開發應用程序時,必須考慮內存的分配情況并關注應用程序需要運行空間的大小。另外, 由于采用實存儲器管理策略,用戶程序同內核以及其他用戶程序在一個地址空間,程序開發時要保證不侵犯其它程序的地址空間,以使得程序不至于破壞系統的正常工作,或導致其他程序的運行異常;因而,嵌人式系統的開發人員對軟件中的一些內存操作要格外小心。

1 嵌入式系統中對內存分配的要求
    嵌人式系統開發對內存分配有很高的要求:
① 內存能快速申請和釋放,即快速性。嵌人式系統中對實時性的保證,要求內存分配過程要盡可能地快;
② 內存分配保持原子性,即可靠性。也就是內存分配的請求必須得到滿足,如果分配失敗可能會帶來災難性的后果;
③ 內存應該各盡其用,即高效性。內存分配要盡可能地少浪費。不可能為了保證滿足所有的內存分配請求而將內存配置得無限大。

2 VxWorks內存管理機制
    VxWorks采用用戶程序、內核處于同一個地址空間的內存管理策略,軟件開發人員在開發程序時必須保證不侵犯其他程序和內核的地址空間,以免破壞系統的正常工作或導致其他程序異常運行。內核負責為程序分配內存、動態分配內存和回收內存。VxWorks為用戶提供兩種內存區域:內存域region和內存分區partitionregion是可變長的內存區,可以從創建的region中在分配段segment,region的特點是容易產生碎片,但靈活、不浪費;partition是定長的內存區,用戶可以從創建的partition中分配內存塊或在某個內存分區中再創建一個內存分區,partition的特點是無碎片、效率高,但浪費。通常,VxWorks內核和應用程序對內存的操作是基于內存分區進行的。內存池是一塊連續的內存區域,包含一個或多個內存塊。內存分區包含分區自身的描述信息(一個結構體)和一個或多個內存池,描述信息保存在系統內存分區中,內存池是該分區實際擁有的內存空間。內存分區剛創建完畢時,只有一個內存池,以后用戶程序可往該分區中添加內存池。內存池之間的地址不一
定連續,VxWorks在啟動過程中會創建一個包含系統內存池的系統內存分區,如圖1所示。VxWorks的內存管理采用自由鏈管理內存空閑塊。用首先適配算法動態分配內存,內存釋放時,采用上下空閑區融合的方法,即把相鄰的空閑內存塊合并,沒有清理碎片的功能。
圖片點擊可在新窗口打開查看

3 對VxWorks內存管理的改進
    改進的緩沖區管理模塊的作用在于加強VxWorks實時操作系統對內存的管理,并為上層應用程序提供所需內存申請和釋放工作。因此本改進模塊位于VxWorks實時操作系統模塊和應用程序模塊之間。
    CPU實際物理內存在bootRoom啟動時劃分為兩部分:VxWorks內核操作系統內存和保留給用戶管理的內存。為了便于管理,對為用戶保留內存作進一步劃分,使用memPartCreate函數創建兩個內存分區:一個分區用來生成預先申請好固定大小緩沖池;另一分區以堆方式向上層提供的緩沖池。這樣就把物理內存劃分成3個部分:
(1)Paal:VxWorks系統內存,在物理低端;
(2)Part2:預先申請好的固定大小的緩沖池,每種固定長度的內存緩沖區形成一個隊列;
(3)Pan3:以堆方式提供給上層應用程序的緩沖池;
內存劃分如圖2所示。
圖片點擊可在新窗口打開查看
3.1 不同大小固定長度緩沖區管理
    為了避免內存碎片,我們采用預先分配內存塊的方式實現對堆內存分區進行管理:分區內的所有內存隊列,每個隊列管理一定數量大小相同且已經申請好的內存塊,這些內存塊永久占用。然后對每個內存隊列管理數據結構進行維護。上層應用程序調用模塊接口函數從緩沖池中
申請和釋放。每塊緩沖區的用戶區填充默認內容。

3.2 堆方式內存的管理
    對于堆內存的使用,我們對VxWorks的兩個內核函數memPartAlloc()和memPartFree()進行了封裝,并在調試版本中加入信息,如圖3所示。
圖中:BLOCK- HDR表示內存塊頭,OAHEAD表示塊附加信息頭,pbuf指向實際的堆空間,size為堆的大小。
圖片點擊可在新窗口打開查看
3.3 快速內存分配管理
    對于協議等存在大量、快速地申請/釋放內存的操作而言,在系統運行一段時間后內存都變成了碎片,再申請大塊內存時容易失敗。提供一種快速的內存申請/釋放的方式,并且最大程度地減少系統的內存碎片。提供64/128/……/524 288大小的內存使用快速內存分配管理機制,則在一個大的內存塊內部進行內存使用,申請/釋放時不涉及到系統對內存的拆鏈/建鏈過程,比較快速,并且對釋放的內存進行合并,保證系統有盡可能多的大塊內存。如圖4所示。
圖片點擊可在新窗口打開查看
4 小結
    許多嵌入式應用開發在實時操作系統提供的malloc()和free()函數的基礎上編寫自己的內存管理方案。編寫這樣的內存管理方案,一方面可以減少對malloc()和free()函數的依賴,統一內存應用接口,從而避免此之帶來的內存碎片、時間不確定等缺點,另一方面可以增強程序的查錯能力,減少內存使用錯誤。對于在嵌入式系統中廣泛存在的數據庫類型的內存需求,把由用戶管理的內存分為固定大小的緩沖區、以堆方式分配的緩沖區和不同固定大小內存隊列的分配方式,體現了內存管理的優越性

]]>
基于μC/OS的嵌入式系統應用開發研究http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1962&Page=1wangxinxin2010-12-1 13:49:25關鍵詞:嵌入式系統  μc/os  微處理器

Abstract: The paper bring forward the conception of Embedded System ,Analyse the core kere of μc/os ,moreover  detailedly introduce grafting the μC/OS‘s operating system on the ARM‘s architectural structure of S3C44B0‘s microprocessor and empolder  on application and driver program 。

Key words:  Embedded System   μc/os   MicroProcessor

一、嵌入式系統概述

嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物,目前嵌入式系統已經滲透到日常生活的各個方面,其在工業、服務業、消費電子等領域的應用范圍都不斷擴大,嵌入式計算機系統的正式定義為:以應用為中心,以計算機技術為基礎,軟件硬件可裁減,符合應用系統對功能、可靠性、成本、體積、功耗的嚴格要求的專用計算機系統。嵌入式系統的主要特征有:系統內核小;專用性強;系統精簡;嵌入式軟件要求高實時性的操作系統軟件;軟件要求高質量和高可靠性;嵌入式系統開發需要專門的開發工具和環境。

 嵌入式系統由硬件和軟件兩大部分組成,在本開發應用中,選擇ARM7TDMI內核結構的samsung公司的s3c44b0作為微處理器芯片,該芯片具有主頻高、運算速度快,超低功耗、價格低廉、結構簡單等特點,在該內核基礎上擴展了一系列完整的通用外圍器件,主要有:片內8KB高速緩存、帶有1個專用DMA通道的LCD控制器、2個通用DMA通道、1個多主機I2C總線控制器、5個PWM定時器及1個內部定時器、71個通用I/O口、8個外部中斷源、8個10位ADC等資源,主頻為66MHZ,系統支持大小端模式,共256MB的地址空間,支持8/16/32位數據總線編程。

開發平臺外配與用戶交互接口有RS-232串口電路、外擴flash、sdram,USB控制電路、以太網電路、鍵盤,JTAG接口電路部分。

實時嵌入式操作系統的種類繁多,大體上可以分為兩種:商用型和免費型,前者系統功能穩定、可靠,并有完善的技術支持和售后服務,建立應用開發較為容易,但價格昂貴,代表性的有美國WindRiver公司的VxWorks操作系統、Microsoft公司的WinCE操作系統;免費型可以節約成本,且源碼公開,便于開發,代表性的有嵌入式Linux系統、μC/OS系統。

 

二、嵌入式μC/OS的體系結構介紹

由于μC/OS結構簡單,編程工具絕大部分是C語言編程,可以在大多數界面友好的編譯器中編譯生成目標代碼,如Borland C、Keil等工具,且其內核最小可以到幾十K,可以在多種體系結構的微處理器上移植,用戶的工作較小,源代碼開放,便于學習。μC/OS-II的幾大組成部分有

核心部分(OSCore.c) 是操作系統的處理核心,包括操作系統初始化、操作系統運行、中斷進出的前導、時鐘節拍、任務調度、事件處理等多部分。

  任務處理部分(OSTask.c)完成任務的操作;包括任務的建立、刪除、掛起、恢復等等。

  時鐘部分(OSTime.c)主要完成任務延時等操作。
  任務同步和通信部分 為事件處理部分,包括信號量、郵箱、郵箱隊列、事件標志等部分;  μC/OS-II的軟件體系結構如圖1所示。從圖1中可以看到,如果要使用μC/OS-II, 必須為其編寫OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三個文件。

三、μC/OS在ARM微處理器上的移植

μC/OS-II的全部源代碼量大約是6000-7000行,一共有15個文件。將 μC/OS-II 移植到ARM處理器上,需要完成的工作也非常簡單,只需要修改三個和ARM體系結構相關的文件,代碼量大約是500行。以下分別介紹這三個文件的移植工作

OS_CPU.H 文件  數據類型定義,這部分的修改是與所用的編譯器相關的,不同的編譯器會使用不同的字節長度來表示同一數據類型,這里采用的編譯器為集成可視化開發環境ARM SDT 2.5,相關的數據類型的定義

 

#define BYTE   INT8S     /* Define data types for  backward compatibility */              

#define UBYTE   INT8U     /*  .to uC/OS V1.xx.  Not actually needed for .  */

#define WORD   INT16S   /*    ... uC/OS-II.          */             

#define UWORD   INT16U

#define LONG   INT32S

#define ULONG   INT32U

堆棧單位因為處理器現場的寄存器在任務切換時都將會保存在當前運行任務的堆棧中,所以OS_STK 數據類型應該是和處理器的寄存器長度一致的。

typedef unsigned int   OS_STK;   /*   Each stack entry is 16-bit wide    */

堆棧增長方向該設置由編譯器選項決定,在本開發中設定堆棧由高地址向低地址增長。

#define OS_STK_GROWTH   1      //define the stack to grow from high to low

2、OS_CPU_C.C 文件

任務堆棧初始化  這里涉及到任務初始化時的一個堆棧設計,也就是在堆棧增長方向上如何定義每個需要保存的寄存器位置,在ARM體系結構下,任務堆棧空間由高至低依次將保存著pc、lr、r12、r11、r10、… r1、r0、CPSR、SPSR。

void  *OSTaskStkInit (void (*task)(void *pd), void *pdata, void *ptos, INT16U opt)

{

   unsigned int *stk ;

   opt   = opt;          /*  ‘opt‘ is not used, prevent warning   */

   stk   = (unsigned int *)ptos;   /*    Load stack pointer        */                

   *--stk = (unsigned int) task;     / *    lr           */

   ……;            /*    r12—r0   */

   *--stk = ARM_MODE_SYS;        /*   system mode   */

   *--stk = ARM_MODE_SYS;        /*   system mode   */

   return ((void *)stk);

}

當前任務堆棧初始化完成后,OSTaskStkInit 返回新的堆棧指針stk,在 OSTaskCreate()執行時將會調用 OSTaskStkInit 的初始化過程,然后通過OSTCBInit()函數調用將返回的sp指針保存到該任務的TCB塊中。

OSStartHighRdy()  該函數是在主程序OSStart( )多任務啟動后執行,負責從最高優先級任務的TCB控制塊中獲得該任務的堆棧指針sp,通過sp依次將cpu現場恢復,這時系統就將控制權交給用戶創建的該任務進程,僅執行一次,此后多任務優先級調度由下面函數執行

]]>
SOLID正式發布solidDB for VxWorkshttp://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1961&Page=1wangxinxin2010-12-1 13:39:27數據庫解決方案供應商Solid? Information Technology日前正式發布solidDB for VxWorks,并藉此機會進一步加強其與 Wind River的戰略合作伙伴關系。solidDB關系型數據庫已經被全球超過300萬關鍵任務系統所采用,而Wind River 的 VxWorks 平臺是全球應用最為廣泛的實時操作系統和設備軟件應用平臺,采用該平臺的開發人員長期依賴于solidDB,以實現其在性能、可用性和可擴展性方面最嚴苛的要求。剛剛發布的solidDB for VxWorks 在各方面都做了更進一步的優化,以滿足 VxWorks 用戶的獨特要求。

  Solid? Information Technology的旗艦產品solidDB是知名的關系型數據庫,并因可嵌入到超快速、永不間斷數據訪問的應用程序中而廣受業界肯定。solidDB也是當今唯一將全事務處理的內存數據庫與功能強大的磁盤數據庫集成到一個小型低成本產品中的數據管理平臺,其內存引擎與磁盤引擎可同時運行,并可共享同一標準編程接口。特別指出的是,這些特性還可應用于高級功能,例如復制及高可用性,從而極大地降低了開發新應用的復雜性,縮減了時間和成本。

  VxWorks環境要求在極短的響應時間內執行應用程序,并將所需的內存及處理資源降至最低程度,而solidDB for VxWorks 專門針對其與VxWorks環境的無縫集成進行了特別優化。

  Wind River 產品管理總監 Warren Kurisu 說:“伴隨著設備最終用戶技術水平的提高,他們也對設備軟件中的新功能和新服務提出了更多的需求,例如 e911、一鍵通(Push-To-Talk)和VoIP。solidDB for VxWorks 的優越性能、高可用性及嵌入式特性使得需要為跨越多個行業從事應用開發的軟件人員能夠更好地滿足上述需求。”

  Monash Information Services 總裁 Curt Monash 博士說:“正如傳統應用程序所印證的那樣,當實時應用程序更加豐富時,一定會需要強大可靠的數據管理功能。Solid 的產品長期致力于可嵌入的實時數據庫系統,并已在這個市場占據了領先的地位。”

  Solid Information Technology 副總裁 Paola Lubet 說:“在幫助開發人員超越應用程序性能要求方面,Solid具有無與倫比的成功經驗,而且可以縮短產品上市時間,有效降低項目成本。因此,對于任何使用業界領先的 VxWorks 實時操作系統的開發人員而言,solidDB for VxWorks 無疑是他們最理想的解決方案。這項產品發布不僅強調了 Solid 為現有 VxWorks 客戶提供持續支持的承諾,同時也擴大了Solid 在 VxWorks 市場的整體份額。”


]]>
嵌入式系統原理及應用開發技術http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1960&Page=1wangxinxin2010-12-1 11:39:15點擊瀏覽該文件 北航社新書介紹元   本書以32位新型微控制器的應用開發為主線,介紹了嵌入式系統的基本概念和軟/硬件體系結構,描述了應用支撐平臺及其構件的原理與功能,并以PDA的設計為例,系統地介紹了嵌入式應用系統的開發過程、工具環境和開發技術,還提供了豐富的設備驅動程序編寫示例。 本書取材新穎、內容翔實、技術實用、系統性強。它不僅可作為高等學校嵌入式應用技術課程的教材,還可供從事嵌入式產品開發的廣大工程技術人員自學與參考,對采用EPSON S1C33系列MCU的產品設計更具有直接的指導作用。 內 容 簡 介   本書以32位新型微控制器的應用開發為主線,介紹了嵌入式系統的基本概念和軟/硬件體系結構,描述了應用支撐平臺及其構件的原理與功能,并以PDA的設計為例,系統地介紹了嵌入式應用系統的開發過程、工具環境和開發技術,還提供了豐富的設備驅動程序編寫示例。   本書取材新穎、內容翔實、技術實用、系統性強。它不僅可作為高等學校嵌入式應用技術課程的教材,還可供從事嵌入式產品開發的廣大工程技術人員自學與參考,對采用EPSON S1C33系列MCU的產品設計更具有直接的指導作用。 前  言   伴隨著21世紀的曙光,人類迎來了一個充滿希望的新時代。而作為20世紀人類社會最偉大的發明之一,計算機已邁入了另一個充滿機遇的階段--后PC時代。不知不覺中,形式多樣的數字化智能產品已經開始繼PC機之后成為信息處理的一大主力,并且正在逐步形成一個充滿商機的巨大產業。 后PC時代的到來,使得人們開始越來越多地接觸到一個新的概念--嵌入式產品,如手機、PDA、DVD、機頂盒、GPS和PLC等。   嵌入式軟件是智能產品的核心。如果說PC機的發展帶動了整個桌面軟件的發展,那么,數字化產品的廣泛普及必將為嵌入式軟件產業的蓬勃發展提供了無窮的推動力。   我國擁有世界上最大的家用電子產品消費市場和制造業,隨著消費品位的提高,人們對家電的靈活性和互動性提出了更高的要求,即智能化和網絡化在家電中必不可少;社會開放的擴大和人際交往的頻繁,使得PDA等移動設備成為今后個人數據通信和事務處理的最佳選擇之一;此外,現代化的醫療、測控儀器和機電產品等也需要有嵌入式系統的支持。以上這些需求都將極大地刺激了嵌入式系統的發展和產業化進程。   雖然目前智能產品還廣泛使用4位和8位的嵌入式處理器,如8051、DSP,但隨著應用的升級和微電子技術的發展,32位微處理器的大量使用已成為必然趨勢。   目前,我國嵌入式應用技術的教學基本上停留在8位單片機的水平,既沒有開設32位嵌入式系統開發的課程,也缺乏介紹32位嵌入式系統開發技術的教材,制約了后PC時期我國IT產業的發展。   為了改變嵌入式技術教育滯后的局面,特以32位先進微控制器應用設計為基礎,編寫了這本嵌入式系統應用開發技術教程。   本書各章節內容安排如下:   第一章概要介紹了嵌入式系統和實時系統的基本概念、特點、軟硬件基本體系結構和應用領域,使讀者對嵌入式系統有一個基本的了解;第二章以軟件生命期為引導,介紹可用于嵌入式應用開發的一些基本方法;第三章介紹了嵌入式系統的硬件構成,并以EPSON S1C33系列的32位MCU為例,較為詳細地介紹了各組成部分的功能、特點和電路原理;第四章是基于嵌入式系統運行平臺的結構,介紹了嵌入式操作系統、應用編程中間件和設備驅動程序等構件;第五章介紹了嵌入式應用軟件的調試方法,并重點講述EPSON的開發環境、目標監控程序MON33、在線調試器ICD33;在第六章的應用示例中,以PDA的系統開發為線索,具體介紹嵌入式應用開發各環節的支持技術。   本書主要用于高等學校嵌入式應用技術教學,還可作為從事嵌入式產品開發的廣大工程技術人員的技術參考,特別是對采用EPSON S1C33系列〖KG*2〗MCU的產品設計具有直接的指導作用。   在本書編寫的過程中,作者閱讀和消化了國內外大量的參考資料,融入了電子科技大學嵌入式實時系統研究室多年的寶貴經驗與技術積累,并整合了EPSON S1C33系列的應用設計參考資料,從而使本書內容具有較強的先進性和實用價值。   值得指出的是,嵌入式實時計算專家、博士生導師熊光澤教授對本書的編寫做出了重要貢獻。他不僅是我進入嵌入式領域的引路人,提供了編寫本書的機會,而且對本書的初稿進行了認真地審閱,并提出了寶貴的意見,在此表示衷心感謝!   還要感謝嵌入式實時系統研究室的其他老師。正是他們積累的嵌入式應用開發的經驗對豐富本書的內容起了重要作用。   同時感謝EPSON公司為本書的寫作提供了大量的S1C33系列MCU資料并允許在本書中引用,還要感謝該公司的蘇斌等先生,他們認真審閱了本書中有關S1C33的內容。    也要感謝研究室的雷紅衛、楊霞等研究生,他們都為本書做出了一定的貢獻。   特別感謝我的家人:父母、妻子和兒子。他們雖然沒有提供技術上的幫助,但在精神上的支持和生活上的照顧,對我順利完成本書編寫工作起到了必不可少的作用。    最后,衷心感謝所有為本書的編寫和出版提供了幫助的人們!   由于本書成書倉促,錯漏難免,歡迎有關專家賜教和讀者指正。                                          作者                                         2002年2月 目  錄 第一章 嵌入式系統概論 1.1 基本概念 1.2 嵌入式系統的特點 1.3 嵌入式系統的設計要求 1.4 硬件基本結構 1.5 軟件結構體系 第二章 嵌入式應用開發方法 2.1 軟件生存周期 2.2 嵌入式系統開發模式 2.3 嵌入式硬件開發 2.3.1 電子設計自動化 2.3.2 硬件描述語言HDL 2.3.3 知識產權核 2.3.4 軟、硬件協同開發 2.4 嵌入式軟件開發 2.5 面向對象開發方法 2.5.1 面向對象的概念 2.5.2 面向對象分析 2.5.3 面向對象設計 2.5.4 面向對象編程 2.5.5 面向對象測試 2.6 構件式開發方法 2.6.1 構件技術的起源 2.6.2 構件及構件模型 2.6.3 構件開發方法 2.6.4 軟件復用 第三章 嵌入式硬件平臺 3.1 嵌入式處理器 3.1.1 概 述 3.1.2 S1C33處理器 3.1.3 S1C33處理器的特性 3.1.4 S1C33處理器的核心塊 3.1.5 S1C33處理器的操作模式 3.1.6 總線控制單元 3.1.7 S1C33的寄存器 3.1.8 數據類型 3.1.9 S1C33的地址空間 3.1.10 引導地址 3.1.11 S1C33指令系統 3.1.12 中斷處理程序 3.2 片內周邊電路 3.2.1 可編程時鐘產生器 3.2.2 8位可編程定時器 3.2.3 16位可編程定時器 3.2.4 時鐘定時器 3.2.5 串 口 3.2.6 I/O端口 3.2.7 AD轉換器 3.2.8 直接存儲器存取 3.3 基本外圍電路 3.3.1 供 電 3.3.2 復位電路 3.3.3 存儲器連接電路 3.3.4 端 口 3.3.5 調試連接 3.4 其它支持 3.4.1 S1C33的語音處理接口 3.4.2 LCD支持 3.4.3 紅外接口 3.4.4 USB接口 第四章 嵌入式應用軟件的運行平臺 4.1 嵌入式軟件的特點 4.2 嵌入式操作系統 4.2.1 概 述 4.2.2 分 類 4.2.3 發展動向 4.2.4 體系結構 4.3 ROS33實時操作系統 4.3.1 概 述 4.3.2 任務管理 4.3.3 任務獨立部分 4.3.4 一個應用程序創建示例 4.4 S1C33應用編程接口 4.4.1 編程中間件GUI 4.4.2 語音處理 4.4.3 圖像處理 4.5 板級支持包 4.5.1 液晶顯示器 4.5.2 手寫筆 4.5.3 觸摸屏 4.5.4 通用串行總線 4.5.5 設備驅動接口 第五章 嵌入式軟件開發平臺 5.1 嵌入式應用軟件的開發過程 5.1.1 應用軟件的生成階段 5.1.2 應用軟件的調試階段 5.1.3 應用軟件的固化運行階段 5.2 嵌入式開發工具概況 5.2.1 開發方法簡介 5.2.2 交叉開發工具 5.2.3 仿真開發工具 5.3 S1C33編程工具包 5.3.1 EPSON C33 TOOLS CHAIN 5.3.2 S1C33 C編譯器gcc33 5.3.3 C語言語法 5.3.4 匯編語言語法 5.3.5 調試器db33 5.4 調試監控器 5.4.1 資源要求 5.4.2 啟 動 5.4.3 創建應用程序 5.4.4 通信控制程序 5.4.5 目標程序 5.4.6 調 試 5.5 在線調試器 5.5.1 DIP開關 5.5.2 監控終端 5.5.3 信號燈 5.5.4 信號線 5.5.5 供電支 5.5.6 通信接口 5.5.7 啟動/關閉 5.5.8 目標系統連接測試 第六章 應用示例的開發過程 6.1 PDA概述 6.1.1 PDA硬件配置 6.1.2 PDA軟件配置 6.1.3 PDA發展趨勢 6.1.4 幾款較新的PDA 6.2 PDA的硬件設計 6.2.1 硬件配置 6.2.2 原理圖設計 6.2.3 邏輯電路圖設計 6.2.4 PCB圖與制板 6.3 PDA的軟件配置與設計 6.3.1 軟件配置 6.3.2 系統軟件開發 6.3.3 應用軟件開發 附 錄 db33 的調試命令 附1 存儲器操作 附2 寄存器操作 附3 執行程序 附4 CPU復位 附5 中 斷 附6 設置斷點 附7 顯示程序 附8 Flash 操作 附9 跟 蹤 參考文獻
]]>
實時操作系統VxWorks下電子海圖系統打印功能的實現http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1959&Page=1wangxinxin2010-12-1 11:34:461 前 言

  電子海圖系統是一種把需要向航海人員顯示和解釋的各種各樣信息融成一體的實時導航系統,是地理信息系統在艦船組合導航系統中的重要應用,被認為是繼雷達/ARPA之后在艦船導航方面又一項偉大的技術革命。與簡單地用顏色顯示的紙海圖相比,電子海圖系統包括更多的使用簡單、操作容易的地理和文字信息。作為一種自動判定儀器,它能夠連續測定船舶相對于陸地、圖示物標、導航標志和不可見礙航物的位置,對海上航行、安全和商業都有重要意義。

  VxWorks是一種嵌入式的實時操作系統。將應用較為廣泛的電子海圖系統移植到VxWorks操作系統下的主要原因有兩個:一是VxWorks系統的實時性,能夠很好的滿足導航系統實時性的要求;二是基于信息安全方面的考慮,海圖系統要求一種保密性好、沒有漏洞的操作系統,使用VxWorks操作系統,程序開發者可以進行最底層的程序開發,能夠完全控制系統的資源,確保海圖信息的安全。

2 電子海圖系統打印功能的總體設計思路

  在VxWorks操作系統中,實現電子海圖信息打印功能設計的總體思路是:首先將打印內容,包括圖像和報表,轉換成恰當格式的圖像文件,如PostScript文件,而后對于沒有內置PostScript語言解釋器的打印機,需要將PostScript語言解釋成打印機可以識別的語言,最后把圖像文件輸送到打印機。

  本文介紹基于內置有PostScript語言解釋器的HP LaserJet 1200打印機,在VxWorks操作系統下,完成電子海圖信息打印功能的實現過程。

3 打印驅動

  打印機驅動程序中的各個函數的實現:

  (1)基本的I/O函數的實現
  根據打印機并口的特點,驅動程序中要實現的基本的I/O函數應該是lptOpen(…)、lptRead(…)、lptWrite(…)和lptIoctl(…)。這4個基本函數的聲明分別是:

  LOCAL int lptOpen(LPT_DEV*pDev,char*name,int mode);  LOCAL int lptRead(LPT_DEV*pDev,char*pBuf,int size);
  LOCAL int lptWrite(LPT_DEV*pDev,char*pBuf,int size);
  LOCAL STATUS lptIoctl(LPT_DEV*pDev,int function,int arg);  其中LPT_DEV結構的定義為:
  typedef struct lptDev
  {
  DEV_HDR devHdr;
  BOOL created;/*TRUE if this device has been created*/
  BOOL autofeed;/* TRUE if enable autofeed */
  BOOL inservice;/* TRUE if interrupt in service */
  USHORT data; /* data register */
  USHORT stat; /* status register */
  USHORT ctrl; /* control register */
  int intCnt;/* interrupt count */
  int retryCnt; /* retry count */
  int busyWait; /* loop count for BUSY wait */
  int strobeWait;/* loop count for STROBE wait */
  int timeout; /* timeout second for syncSem */
  int intLevel; /* interrupt level */
  SEMAPHORE muteSem;/* mutex semaphore */
  SEMAPHORE syncSem;/* sync semaphore */
} LPT_DEV

  DEV_HDR是所有設備的頭結構,是由VxWorks系統定義的,定義為:

  typedef struct/* DEV_HDR device header for all device structures*/
{
  DL_NODE node; /* device linked list node */
  short drvNum; /* driver number for this device */
  char * name; /* device name */
} DEV_HDR

  (2)設備的硬件初始化函數xxDrv(…)的實現

  該函數的聲明為:
  STATUS lptDrv(int channels, LPT_RESOURCE *pResource)

  其中,參數channels 為打印并口的通道號;參數pResource是指向結構LPT_RESOURCE的指針,結構LPT_RESOURCE的定義為:

  typedef struct lptResource /* LPT_RESOURCE */
{
  int ioBase;/* IO base address */
  int intVector;/* interrupt vector */
  int intLevel; /* interrupt level */
  BOOL autofeed;/* TRUE if enable autofeed */
  int busyWait; /* loop count for BUSY wait */
  int strobeWait;/* loop count for STROBE wait */
  int retryCnt; /* retry count */
  int timeout; /* timeout second for syncSem */
}LPT_RESOURCE;

  該函數lptDrv(int channels, LPT_RESOURCE *pResource)完成了打印機并口的初始化,其中調用函數intConnect(…)和iosDrvInstall(…)的具體形式為:

  (void)intConnect((VOIDFUNCPTR*)INUM_TO_IVEC(pResource->intVector),
  (VOIDFUNCPTR)lptIntr, (int)pDev);
  lptDrvNum = iosDrvInstall (lptOpen, (FUNCPTR) NULL, lptOpen,
  (FUNCPTR) NULL, lptRead, lptWrite, lptIoctl);

  (3)設備的創建函數xxDevCreate(…)的實現

  該函數的聲明為:
  STATUS lptDevCreate (char *name, int channel)

  該函數將設備的創建標志置為TRUE,然后調用函數iosDevAdd (&lptDev[annel],devHdr.name, lptDrvNum) 將創建的設備加入I/O系統中。

  對于打印驅動程序,重點在于函數lptWrite(…)的編寫,這個函數的實現可采用兩種方式。一種是中斷方式,即將控制寄存器中的允許中斷位置為1,這樣,打印機每打印輸出一個字符后,立即向主機發出中斷請求信號,要求發送下一個字符;主機方面只要在中斷服務程序中實現數據傳輸即可,而不必循環查詢打印機的“忙”信號。另一種是查詢方式,用這種方式時,主機不停地測試打印機的“忙”信號,當檢測到打印機不忙時,便向其發送打印數據,若打印忙,則主機必須等待,直到打印機不忙。

  根據編寫打印機驅動程序的兩種方式,選用查詢方式,其流程如圖1。

圖片點擊可在新窗口打開查看

4 PostScript文件的生成

  在VxWorks操作系統的開發環境Tornado下,軟件包ZINC中的ZafPrinter類及ZafDisplay類提供的函數可完成PostScript文件的生成。ZafPrinter類繼承ZafDisplay 類而來,因此,在ZafPrinter 中除了繼承來的圖形顯示函數之外,還定義了與打印機接口相關的函數,如BeginJob(),EndJob(),BeginPage(),EndPage()等。

  在用ZINC自帶的程序生成PostScript文件時,需注意以下幾點:

  (1)將自定義的顏色值加入顏色表中,在i_print.cpp文件(在目錄…\Tornado\target\src\zinc\generic下)中,原來的顏色表定義為:

  static unsigned long psColorTable[16]=
  {
  0x00000000L, // 0-ZAF_CLR_BLACK
  0x00000080L, // 1-ZAF_CLR_BLUE
  0x00008000L, // 2-ZAF_CLR_GREEN
  0x00008080L, // 3-ZAF_CLR_CYAN
  0x00800000L, // 4-ZAF_CLR_RED
  0x00800080L, // 5-ZAF_CLR_MAGENTA
  0x00808000L, // 6-ZAF_CLR_BROWN
  0x00C0C0C0L, // 7-ZAF_CLR_LIGHTGRAY
  0x00808080L, // 8-ZAF_CLR_DARKGRAY
  0x000000FFL, // 9-ZAF_CLR_LIGHTBLUE
  0x0000FF00L, // 10-ZAF_CLR_LIGHTGREEN
  0x0000FFFFL, // 11-ZAF_CLR_LIGHTCYAN
  0x00FF0000L, // 12-ZAF_CLR_LIGHTRED
  0x00FF00FFL, // 13-ZAF_CLR_LIGHTMAGENTA
  0x00FFFF00L, // 14-ZAF_CLR_YELLOW
  0x00FFFFFFL, // 15-ZAF_CLR_WHITE
  };

  保留原有的16種顏色,再增加48種海圖中的顏色:

  0x00000000, 0x00000080, 0x0000b400, 0x0080ffff,
  0x00d20000, 0x00ff00ff, 0x00dc8000, 0x00c0c0c0,
  0x00ffc7ab, 0x000000ff, 0x0000ff00, 0x00c8ffff,
  0x00ff0000, 0x00ff96ff, 0x00ffffc0, 0x00ffffff,
  0x00ff02fd, 0x00ff02fd, 0x00ff02fd, 0x00ff02fd,
  0x00ff02fd, 0x00ff02fd, 0x00ff02fd, 0x00ff02fd,
  0x00ff02fd, 0x00ff02fd, 0x00ff02fd, 0x00ff02fd,
  0x00ff02fd, 0x00ff02fd, 0x00ff02fd, 0x00ff02fd,
  0x00000000, 0x000000ff, 0x0033aa00, 0x0060c0c0,
  0x00b03030, 0x00c040c0, 0x00804040, 0x00a0a0a0,
  0x00404040, 0x008080ff, 0x0080ff80, 0x0016edfe,
  0x00e02020, 0x00e010e0, 0x00ffff80, 0x00ffffff,

  這樣顏色表中共有64種可用顏色。

  同時將
  for(index = 0; index < 16; index++)
    colorTable[index]= psColorTable[index];

  改為:
  for(index = 0; index < 64; index++)
  colorTable[index]= psColorTable[index];

  (2)為使生成的PostScript文件盡可能的小,對原來海圖的畫圖程序做了一點改動。在原程序中,多邊形的繪制是通過畫兩點線完成的,這樣,生成PostScript文件比較大,可將其改為直接調用畫多邊形的函數Polygon()。經過這樣的改動,生成的PostScript文件減小了很多,原來的一頁圖生成的PostScript文件為3.65M,改動后不足1M。

5 PostScript 文件在VxWorks操作系統下的打印輸出

  要使用打印驅動程序,首先要調用函數lptDevCreate(char*name,intchannel)為LPT端口創建設備,其中端口號由參數channel指定,創建的設備的名稱為name。只能為一個端口號創建一個設備。
  創建設備成功之后,主機就可以向打印機發送PostScript文件了,其程序流程如圖2。

圖片點擊可在新窗口打開查看

6 漢字打印輸出的實現

  在VxWorks操作系統下,實現電子海圖中漢字的顯示和打印輸出功能的基本思路是:利用Windows操作系統中的TrueType字庫,根據需要顯示漢字的Unicode編碼,在TrueType字庫中找到該漢字的相應信息,按照TrueType字庫中存儲的信息,將漢字顯示或打印輸出。

  TrueType字庫由很多表組成,它是用一些閉合的輪廓線來描述每個字符的。若能夠訪問TrueType字庫獲得相應漢字的描述信息,就能將漢字畫出來。對于TrueType字庫的訪問,網上有開放的資源可以實現,這就是FreeType2,它為應用程序訪問字庫文件提供了統一的接口,支持的格式包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。要使用FreeType, 就要在相應的操作系統下對源代碼進行編譯,生成一個庫文件,然后在應用程序中調用相應的API庫函數。

  通過FreeType提供的庫函數,應用程序可以訪問TrueType字庫,根據所得到的TrueType漢字信息,就能實現TrueType字體的顯示或打印輸出。但是TrueType字庫的訪問是通過Unicode編碼進行的,也就是說,只有獲得了字符的Unicode編碼,才能在TrueType字庫中得到該字符的描述信息。在電子海圖程序中,字符的Unicode編碼的獲得是通過查表實現的。所謂的查表,是指將國際漢字字符集中所有字符的Unicode編碼,存在一個數組unsigned long gb2312_uni_data[87][94],根據字符的區位碼就可以得到相應的Unicode編碼。例如區號為qh,位號為wh的字符的Unicode編碼就是數組元素gb2312_uni_data[qh-1][wh-1]的值。

  保存所有字符的Unicode編碼的數組gb2312_uni_data[87][94]是在Windows操作系統下轉換得到的。具體的做法是將國際漢字字符集中的所有字符按照一定的格式保存成文本文件,然后從文件中讀出每個字符,調用函數MultiByteToWideChar(…)將其轉換成Unicode編碼,并將其保存。

  根據TrueType字庫中字符的信息,顯示或打印輸出字符有兩種途徑:一種是調用FreeType的API函數得到相應字符的輪廓線,然后將其填充;另一種是調用FreeType的API函數直接得到字符的位圖,再調用相應操作系統中的打點函數實現位圖的顯示。由于第二種方法實現起來比較簡單,并且海圖系統中的漢字不是很多,所以在海圖程序中使用的是第二種方法。

  在獲得相應漢字的字形位圖信息的基礎上,實現漢字打印輸出功能的關鍵是如何使用PostScript語言描述相應漢字字形的位圖信息。在程序的設計中,通過畫1個像素長度的直線來實現點的輸出,然后用一系列的點輸出位圖信息。其中,點的輸出用PostScript語言表示為:

  x y moveto
  x+1 y lineto

  根據漢字橫多豎少的特點,可以對以上產生的PostScript文件進行優化,如果N點在一條橫線上,就直接畫N長度的直線,用PostScript語言表示為:

  x y moveto
  x+N y line to

  這樣,就將原來的N條PostScript語句轉化為1條語句,從而減少了PostScript文件的長度。

7 結束語

  VxWorks實時操作系統的特點決定了在此操作系統中開發驅動程序的重要性。根據需要配置相應的設備,并實現硬件的驅動,是VxWorks系統中進行軟件設計與開發的前提。本文介紹的電子海圖系統打印功能的總體設計思想及實現方法,已在哈爾濱工程大學研制的某型電子海圖系統的二次開發中得到應用。

]]>
實時仿真與嵌入式系統http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1958&Page=1wangxinxin2010-12-1 11:33:30    對于程序開發和許多交互式應用來說,UNIX和Windows可以算是優秀的操作系統。然而,它們都不適于實時應用。Tornado是美國WindRiver公司為用戶提供的嵌入式開發平臺,VxWorks是Tornado的運行期組件,也是嵌入式行業應用最為廣泛的實時操作系統。VxWorks的實時性做的非常好,其系統本身的開銷很小,任務調度、任務間通信和中斷處理等系統公用程序精煉而高效,他們造成的延遲很短。VxWorks提供的多任務機制對任務的控制采用了優先級搶占調度和輪轉調度機制,也充分保證了可靠的實時性,使同樣的硬件配置能夠滿足更強的實時性要求,為應用的開發留下更大的余地。

    RTW(Real-Time Workshop)是Matlab圖形建模和仿真環境Simulink的一個重要的補充功能模塊,它是一個基于Simulink的代碼自動生出環境,它能直接從Simulink的模型中產生優化的、可移植的和個性化的代碼,并根據目標配置自動生成多種環境下的程序。

    RTW提供了幾個快速原型化的目標,其中包括提供了從Simulink模型到VxWorks應用代碼的自動轉換接口Tornado Real-Time Target,可以讓用戶的模型在VxWorks上執行。

    2、Tornado(VxWorks)實時目標運行時結構

    開發VxWorks實時應用系統的典型配置,如圖1所示:

圖片點擊可在新窗口打開查看
圖1 VxWorks實時應用開發的經典配置

    實時代碼在主機上,用Tornado提供的交叉編譯器編譯。通過RTW的Tornado實時目標生成目標文件(vxmodel.lo),可通過Tornado集成開發環境的WindSh下載到VxWorks目標機。實時程序在VxWorks目標機上執行,通過IO設備和外部硬件交換數據,并保持和主機之間的相互通信。

    實時程序運行在VxWorks目標機上,而Simulink運行在主機上。Simulink需要VxWorks目標機上運行的任務來處理通信過程。Tornado(VxWorks)Real-Time Tartget生成如下VxWorks任務:一個用于和Simulink通信,其他用于完成模型功能[2]。

    3、Tornado(VxWorks)實時目標的實現過程

    3.1 實驗環境

    我的實驗環境如下表:

表1 實驗環境
圖片點擊可在新窗口打開查看

    3.2 實時目標的具體實現步驟

    為了通過Real-Time Workshop實現和運行一個基于VxWorks的實時程序,用戶可按如下的步驟進行:

    (1) 在Matlab/Simulink下建立一個模型,這里以一個經典的PID模型為例:

圖片點擊可在新窗口打開查看
圖2 實驗所采用的經典PID模型

    模型采用外部工作模式(External Mode),并設置Simulink Parameters對話框中的參數:

圖片點擊可在新窗口打開查看
圖3 仿真參數Solver設置

圖片點擊可在新窗口打開查看
圖4 仿真參數Real-Time Workshop設置

圖片點擊可在新窗口打開查看
圖5 仿真參數code generation options設置

(2) 配置模板聯編連文件tornado.tmf,該文件位于%matlabroot%/rtw/c/tornado目錄下,要對這個文件作如下修改:

    #------------ Macros read by make_rtw -------------
    MAKECMD = C:Tornado2.2hostx86-win32 inmake
    HOST = PC
    #-------------Tool Locations-----------------------------
    WIND_BASE= C:Tornado2.2
    WIND_REGISTRY=$(COMPUTERNAME)
    WIND_HOST_TYPE=x86-win32
    #------------Vxworks Configuration------------------
    VX_TARGET_TYPE = pentium
    CPU_TYPE = PENTIUM2
    #-------------Macros for Downloading to Target-----
    TARGET=target
    TGTSVR_HOST=host
    VX_CORE_LOC    = $(WIND_BASE)/target/config/ pcPentium3/vxWorks

    (3) 程序的生成、編譯、連接

    設置完參數,保存后,開始創建程序,單擊上圖中的Build按鈕,開始編譯程序,成功后可在當前的目錄中產生了一個vxmodel_tornado_rtw的文件夾和一個目標文件vxmodel.lo。

    (4) 手動下載和運行可執行文件

    現在可以將實時程序下載到目標機中,具體的方法是在Tornado集成開發環境中啟動WindSh,在WindSh窗口執行如下命令:

    ld<vxmodel.lo

    請注意要保證lo文件在WindSh的工作路徑下。VxWorks實時程序定義了一個函數rt_main(),用來創建和執行模型代碼、完成與Simulink的通信(如果選擇了外部模式方式)。rt_main函數在文件rt_main.c中定義,這個文件位于目錄%matlabroot% twc ornado中。

    在WindSh窗口中調用rt_main函數,開始運行程序:sp(rt_main,vxmodel,"-tf 100 -w ","*",0,30,17725)

    參數的含義分別是:

    rt_main()是實時程序定義的函數,用來產生任務執行代碼和與Simulink進行通信;?
    -tf用于指定仿真時間,此處設為100秒;?
    -w表示在外部模式時,運行前等待來自Simulink消息的觸發;?
    “*”為安裝所有的信號;?
    0表示使用各自的模塊名;?
    30表示使用默認作為tBaseRate優先級;?
    17725為TCP默認端口號(可以設置在256~65535之間)。?

    運行后我們可以看到目標機上的屏幕上顯示:
    waiting for start message from host

    (5) 建立連接

    在External Target Interface對話框中的MEX-file arguments指定目標機的IP、冗長度和TCP端口號,如圖6所示,就可以建立連接了。

圖片點擊可在新窗口打開查看
圖6 External Target Interface對話框設置

    打開External Mode Control Panel,如圖7所示。點擊Connect按鈕,執行Start real-time code,可以看到Scope上的圖形輸出。此時,可以改變模型的參數(如增益的數值),參數下載后Scope的曲線將隨之改變。仿真時間結束以后,可以看到產生了一個external.mat文件,由目標機會傳到主機,放在Tornado的安裝根目錄下。

圖片點擊可在新窗口打開查看
圖7 External Mode Control Panel對話框

    4、結論

    針對Matlab的仿真特性和VxWorks操作系統的實時特點,本文介紹了RTW面向Tornado(VxWorks)實時目標的運行結構,并且較為詳細的闡述了Tornado(VxWorks)實時目標的具體實現流程,實現了Simulink在Tornado(VxWorks)實時目標下的仿真。

    在結合相關文檔的同時,筆者加入了親身實驗的經驗,增補了一些必要的內容,完善了實驗的具體步驟,降低了為讀者今后實驗的調試難度

]]>
Tornado/Vxworks 概述http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1957&Page=1wangxinxin2010-12-1 11:31:57 1.  概述

    VxWorks 是美國 Wind River System 公司( 以下簡稱風河 公司 ,即 WRS 公司)推出的一個實時操作系統。WRS 公司 組建于1981年,是一個專門從事實時操作系統開發與生產的軟件公司,該公司在實時操作系統領域被世界公認為是最具有領導作用的公司。

 

VxWorks 是一個運行在目標機上的高性能、可裁減的嵌入式實時操作系統。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛星通訊、軍事演習、彈道制導、飛機導航等。在美國的 F-16、FA-18 戰斗機、B-2 隱形轟炸機和愛國者導彈上,甚至連1997年4月在火星表面登陸的火星探測器上也使用到了VxWorks。

 

1984年 WRS 公司推出它的第一個版本--VxWorks 1.0.1,在 1999年推出了它的最新版本VxWorks 5.4。從1995年以后, WRS 公司推出了一套實時操作系統開發環境-- Tornado。

 

1.1       Tornado2.0 組件

   Tornado是嵌入式實時領域里最新一代的開發調試環境。Tornado給嵌入式系統開發人員提供了一個不受目標機資源限制的超級開發和調試環境。Tornado包含三個高度集成的部分:

. 運行在宿主機和目標機上的強有力的交叉開發工具和實用程序;

. 運行在目標機上的高性能、可裁剪的實時操作系統VxWorks;

. 連接宿主機和目標機的多 種通訊方式,如:以太網,串口線,ICE或ROM仿真器等。

 

對于不同的目標機,Tornado給開發者提供一個一致的圖形接口和人機界面。當使用Tornado的開發人員轉向新的目標機時,不必再花費時間學習或適應新的工具;對深嵌入式應用開發者來說更重要的是,Tornado所有的工具都是駐留在開發平臺上的。在嵌入式系統 工具發展歷史上,Tornado是第一個實現了當目標機資源有限時開發工具仍可使用而且功能齊全的開發環境。另外,所有工具都通過一個中央服務器(Target Server)處理與目標機的通訊。所以無論連結方式是Ethernet,還是串口線、ICE仿真器、ROM仿真器或客戶設計的調試通道,所有工具均可使用。

 

 

1.1.1  實時系統

 


特點:

l         實時,能滿足嚴格的時間要求;

l         多任務內核:

實時調度(基于優先級或搶占式的);

任務間通訊;

互斥;

l         其他標準設備作為庫的形式支持內核;

l         系統可重新配置,根據需要裁減組件,空間小;

l         所有任務駐留在同一地址空間(任務間通訊快而容易,上下文切換快,但一個任務崩潰會影響別的任務);

l         所有任務運行在超級(supervisor)模式(沒有哪個系統調用具有壓倒一切的優勢,所有的設備都作為普通子程序調用);

l         在主機上編寫代碼和編譯;在目標機上進行調試和執行;

 

1.1.2  tornado 開發工具

l         CrossWind:

源程序(C 或 C++ 以及匯編程序等)的調試工具。 CrossWind結合了圖形方式和命令行方式的最大特點。 最普通的調試方式,例如斷點設置和程序執行控制,可 以通過便捷的點擊方式實現。同樣,程序顯示框和數 據偵察窗也提供了一個直接的可視窗口來觀察應用程 序中最關鍵的一部分。如果需要更復雜的調試,CrossWind 也提供了命令行的方式來調用它提供的各種命令。

 

l         Browser:

可對系統對象(任務、消息隊列、信號量等)和存儲 器使用情況進行觀察的瀏覽器。可以方便地監視用戶的 目標系統。Browser匯總了應用進程,內存消耗和一個目 標內存的映射。通過 Browser,用戶可以觀察信號量、 消息隊列、內存分配、看門狗計時器、堆棧使用情況、 目標 CPU使用率、對象模塊結構和符號表以及每個任務的詳細信息。

 

l         WindSh:

提供從宿主機到目標機之間的一個命令 shell。WindSh 是一種非常受歡迎的開發工具,它具有很強的交互性和可操作性,允許用戶調用內存中的應用程序模塊或是 VxWorks模塊中的任何例程。它不但具有一般命令語言的功能,而且也具有 C 語言的設計特點,能夠解釋幾乎任何 C 語言表達式, 執行大多數 C 語言算子,解析符號表數據。對初用者來說,WindSh學習起來比較簡單,使用比較方便,對熟練用戶而言,則有較為高級的手段可以應用。

 

l         WindView:

非常出色的系統可視診斷和分析工具。可非常容易地觀察各任務,中斷程序之間的相互作用。它是在嵌入式系統應用開發期間的可視工具。

 

l         VxSim:

快速原型仿真器。可在硬件設備未完成之前,在宿主機上對應用程序進行仿真分析。

 

l         Project Facility:

工程管理工具,配制應用程序或vxworks本身。

]]>
基于Vxworks實時操作系統的串口通信程序設計與實現計算機應用論文http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1956&Page=1wangxinxin2010-12-1 11:30:251前言

目前市場上比較著名的實時操作系統有:VxWorks、PSOS、Nucleus、QNX、VRTX、Windows  CE、Palm  0S、Lynx0S等。  其中,VxWorks是一個具有微內核、可裁剪的高性能強實時操作系統,在實時操作系統市場上處于領先地位。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛星通訊、彈道制導、飛機導航等。在美國的 F-16戰斗機、B-2 隱形轟炸機和愛國者導彈上,甚至火星探測器上都使用了VxWorks實時操作系統。在嵌入式實時操作系統中使用串口通信,不僅可擴展嵌入式設備通信能力,而且可擴大其應用范圍。

2 VxWorks簡介

    VxWorks是由wRS(wind River Systems,Inc.)公司開發的一套具有微內核、高性能、可伸縮的實時操作系統,支持廣泛的網絡通信協議,并能夠根據用戶的需求進行組合,其開放式的結構和對工業標準的支持使開發者只需做最少的工作即可設計出有效的適合于不同用戶要求的系統。除了性能出眾的操作系統之外,wRS公司還提供了優秀的實時操作系統開發工具Tornado。Tornado由三個高度集成的部分組成:Tornado工具,一整套強有力的交叉開發工具;VxWorks運行系統,是運行在目標機上的高性能、可裁剪的實時操作系統;連接目標機和宿主機的通信選項,加以太網、串行線路、在線仿真等。Tornado能夠支持Windows、Unix等流行的工作平臺和PowerPC、X86、ARM等幾乎所有的目標處理器,所提供的工具可用于所有目標機,并具有兩種調試模式(系統模式和任務模式)。除了基本的功能和開發工具外,Tornado還具有先進的系列網絡產品,極大地擴展了Tornado的網絡特性,并增強了嵌人式微處理器的網絡特性。[1] 

3 串口通信基本原理

串口在嵌入式系統當中是一類重要的數據通信接口,其本質功能是作為CPU和串行設備間的編碼轉換器。當數據從CPU經過串行端口發送出去時,字節數據轉換為串行的位;在接收數據時,串行的位被轉換為字節數據。應用程序要使用串口進行通信,必須在使用之前向操作系統提出資源申請要求(打開串口),通信完成后必須釋放資源(關閉串口)。

串口通信的優點是開發簡單,在傳輸數據量不大、要求速度不高而傳輸距離較大的通信場合得到廣泛應用。

在VxWorks中,將I/O系統設計成為任何類型的設備提供一個簡單、統一、獨立于設備的接口,任何對于串口的操作都可以視為對一個文件的操作,而不必了解串口設備或程序驅動實現的細節。在串口通信軟件的設計中,當串口初始化完成后,在使用之前利用open()打開相應串口,然后進行配置。

VxWorks提供終端和偽終端設備驅動。Tty驅動針對實終端;pty針對仿真終端的程序。Tty設備有兩種操作模式:raw模式和line模式。在raw模式下,每個剛從設備輸入的字符對讀者都是有效的;在line模式下所有輸入字符被存儲,直到NEWLINE字符輸入。設備選項字使用帶FIOSETOPTIONS 功能的ioctl()程序來設置。[2]

配置完成后,依據串口打開時的讀寫標志,調用函數write()、read()對串口進行只讀操作、只寫操作或同時進行讀寫操作。

為提高數據接收的實時性,可采用中斷方式,利用VxWorks提供的select函數的事件觸發機制,將讀串口的任務阻塞使其一直等待數據,當有數據來到的時候該任務會立刻自動響應,提高系統的實時性。

4 環境配置

在本實時應用系統中采用486機作為目標機,串口通信時目標機VxWorks系統啟動盤的制作步驟:

(1) 修改通用配置文件\\Tornado\target\config\pc486\config.h。在config.h文件中加入以下宏定義:

#define INCLUDE_WDB

#define INCLUDE_WDB_TTY_TEST

#undef WDB_COMM_TYPE

#define WDB_COMM_TYPE WDB_COMM_SERIAL /*定義通信方式為串口聯結*/

#define WDB_TTY_CHANNEL 1 /*通道號*/

#define WDB_TTY_BAUD 9600 /*串口速率,可設置至38400*/

#define WDB_TTY_DEV_NAME "tyCo/1"

#define CONSOLE_TTY 0

#define DEFAULT_BOOT_LINE "fd=0,0(0,0)hostname:/fd0/vxWorks \ h=主機

ip e=目標機ip u=主機上的登錄用戶名"

(2) 在Tornado集成環境中執行菜單命令Project > Make PC486 > Common Targets > clean刪除以前生成的文件,執行菜單命令Project > Make PC486 > Boot Rom Targets > bootrom_uncmp編譯鏈接生成bootrom_uncmp ;再選擇VxWorks Target,編譯生成vxworks;

(3) 拷貝\\Tornado\target\config\pc486\bootrom_uncmp至\\Tornado\host\bin下

(4) 重命名文件bootrom_uncmp為bootrom;

(5) 準備一張已格式化的空盤插入軟驅;

(6) 在目錄\\Tornado\host\bin下執行命令 mkboot a: bootrom;

(7)拷貝\\Tornado\target\config\pc486\VxWorks至軟盤;

(8) 將系統制作盤插入目標機軟驅,加電啟動目標機即載入VxWorkst系統。[3]

5程序示例

5.1 在程序中加入下列頭文件

#include <vxWorks.h>

#include "strLib.h"

#include <string.h>

#include <sioLib.h>

#include <ioLib.h>

#include <stdio.h>

#include <ioctl.h>

#include <selectLib.h>

#include "types/vxTypesOld.h"

5.2 打開串口

int open_com1(void) //打開串口1函數

{    int sfd;//串口設備文件描述符

sfd =open(”/tyCo/0”,0_RDWR,0);//打開串口并返回串口設備文件描述符

if(sfd ==ERROR)  //如果不能打開串口1則打印出錯信息

printf("You can’t open port com1 !")

 

5.3 配置串口

int config_com1(void)                               //串口1配置函數

{ ioctl(sfd,FIOSETOPTIONS,OPT_LINE);  //設置串口工作模式為行模式:LINE_MODE

ioctl(sfd,FIOBAUDRATE,9600);        //設置串口波特率為9600bps

ioctl(sfd,FIOFLUSH,0);                                 //清空輸入輸出緩沖

ioctl(sfd,SIO_HW_OPTS_SET,CS8|STOPB|PARENB|PARODD);

//設置 8 位數據位,2位停止位,帶校驗位,奇校驗

}

5.4 串口接收數據

int accept _com1(void) //從串口1接收數據函數

{  while(1)

   {  char * accept _buf;

FD_ZERO(&fds_data);//位碼置零 

FD_SET(sfd,&fds_data);//初始化位碼

width=sfd +1; 

//任務阻塞等待讀串口準備完畢;

if(select(width,&fds_data,NULL,NULL,NULL)==ERROR)

  return(ERROR);

read(sfd, accept _buf,sizeof(accept _buf));  //從串口讀字符

printf("accept message is : %s \n\n", accept _buf);   //輸出接收到的信息

 }

}

5.5 串口發送數據

int send_com1(void) //向串口1發送數據函數

   {              char *send_buf =" Data had accept!";  //待發送數據

              //任務阻塞等待寫串口準備完畢

if(select(width,NULL,&data_fds,NULL,NULL==ERROR)

   return(ERROR) ;

if(FD_ISSET(sfd,&fds_data))  //檢查串口準備好就向串口寫數據

write(sfd,send_buf,sizeof(send_buf)) ;

}

5.6 關閉串口

close(sfd);

6結束語

RS-232串口通信雖速率不高,但RS-422標準串行口通信則采用了雙線傳輸,大大增加了抗共模干擾的能力,最大數據傳輸速度可以達到10Mb/s,這對于遠程數據交換具有極大的優勢。

本文描述了在實時操作系統VxWorks中利用串口實現數據通信的方法,并給出了示例程序,目前已經在我們開發的風洞測控系統中獲得了應用。該方法可將其串口通信可適用于工業控制等多方面,具有廣泛的適應性。在嵌入式實時操作系統中使用串口通信,不僅可擴展嵌入式設備通信能力,而且可擴大其的應用范圍。

]]>
基于DSP芯片和VxWorks操作系統的RTOS視頻網絡檢測系統http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1955&Page=1wangxinxin2010-12-1 11:29:02在視頻卡設計中,電源模塊的設計也非常關鍵,它直接影響著視頻卡的最后實現和穩定運行。

本監控系統采用TI公司的TPS3307-33D來作為電源檢測IC。該器件的Reset有效電源復位電壓值定義為VDD=1.1V。TPS3307-33D可同時監視兩種獨立電壓,還可控制另外一種電壓,這種電壓可以獨立調整并在內部與復位邏輯電路相連。

3 通信平臺的嵌入式系統設計

本設計的軟件系統包括底層軟件和系統軟件兩部分,其中底層軟件主要是DSP圖像處理算法以及啟動等運行程序,這些程序可在CCS環境下由C語言編寫并進行匯編優化,CCS是TI公司發布的DSP軟件運行環境;

在系統軟件方面,基于PCI總線的圖像處理系統所面臨的難點頗多,其中難度最大的是PCI驅動問題。

3.1 系統軟件的設計

系統軟件可以選用以VxWorks為操作系統的嵌入式設計方法。

VxWorks操作系統的集成環境叫Tornado。Tor-nado集成環境是一個高效明晰的圖形化實時應用開發平臺,它包括一套完整的、面向嵌入式系統的開發和調測工具。VxWorks的優點如下:

(1)具有較好的可裁減性;

(2)支持應用程序的動態鏈接和動態下載;

(3)具有較好的兼容性;

(4)具有很高的可靠性和穩定性;

(5)具有很好的實時性;

VxWorks的多任務機制對任務的控制采用優先級搶占和輪轉調度機制,從而充分保證了實時性,并可用同樣的硬件配置滿足更強的實時性要求,以便為應用開發留下更大的余地。

PCI設備有三種物理存儲空間:配置空間、存儲器空間和I/O空間。其中配置空間是長度為256字節的一段連續空間,空間定義如圖4所示,在配置空間中, 只讀空間包括設備標識、供應商代碼、修改版本、分類代碼以及頭標類型。其中供應商代碼用來標識設備供應商的代碼;設備標識用來標識某一特殊的設備;修改版 本標識設備的版本號;分類代碼用來標識設備的種類;而頭標類型用來標識頭類型以及是否為多功能設備。除供應商代碼之外,其他字段的值可由供應商分配。

基地址寄存器最重要的功能是分配PCI設備的系統地址空間。在基地址寄存器中,bit0(最低位)可用來標識到底是存儲器空間還是I/O地址空間。基地址 寄存器映射到存儲器空間時,bit0為“0”,而當其映射到I/O地址空間時,bit0為“1”。

在驅動PCI設備時,首先是PCI設備的查找。嵌入式操作系統一般都提供有相應的API函數查找。而在VxWorks操作系統中,通過函數 pciFindDevicePCI_VENDOR_IDPCI_DEVICEindex &pciBus &pciDevice,&pciFunc_可以找到供應商代碼為PCI_VENDOR_ID、設備標識為PCI_DEVICE的第n(index+1)個 設備,并且返回總線號、設備號以及功能號,然后分別保存于&pciBus、&pciDevice、&pci-Func中。

其次是PCI設備的配置。通過操作系統提供的API函數可以訪問PCI設備的配置空間,從而完成PCI設備基址寄存器的配置、中斷配置、以及ROM基地址 寄存器的配置,最終得到PCI存儲器空間和I/O地址空間的映射以及設備中斷號等。在VxWorks操作系統中,訪問PCI設備配置空間的API函數有: pciConfigOutLong和pciConfigInLong等,它們可分別完成對PCI設備配置空間的讀寫操作。

然后是根據PCI設備的配置參數來編寫不同設備的初始化程序、中斷服務程序以及對PCI設備存儲空間的訪問程序。

3.2 遠程控制與通信鏈路

由于基于串行口的PPP協通信方式現已被各種ISP所接受。而且VxWorks系統也支持PPP協議,因此,在VxWorks下通過Modem建立與ISP的物理連接,然后再完成設備的PPP數據鏈路設置,就可以通過Internet實現遠程控制。

]]>
VxWorks下實時多任務程序的實現http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1954&Page=1wangxinxin2010-12-1 11:25:07

 

2  VxWorks操作系統簡介

  Vxworks就是一個由WRS公司推出的嵌入式實時操作系統,具有多任務、可裁減、可靠性好、實時性高等特點, 是業界公認的性能出色的一種實時操作系統。VxWorks實時操作系統由400多個相對獨立的、短小精煉的目標模塊組成,用戶可根據需要選擇適當模塊來裁剪和配置系統,這有效地保證了系統的安全性和可靠性。系統的鏈接器可按應用的需要自動鏈接一些目標模塊。這樣,通過目標模塊之間的按需組合,可得到許多滿足功能需求的應用。VxWorks操作系統的基本構成模塊主要包括以下部分:高效的實時內核Wind、兼容實時系統標準POSIX、I/O系統、本機文件系統、文件I/O系統、網絡特性、虛擬內存(可選單元VxVMI)、共享內存(可選單元VxMP)、駐留目標工具、Wind基類、工具庫、性能優化、目標代理、板級支持包、VxWorks仿真器(VxSim)。

VxWorks中與構建實時多任務系統有關的內容如下:

1)wind內核任務調度策略

Wind內核采用基于優先級的搶占式調度法作為它的缺省策略,同時它也提供了輪轉調度法。

     基于優先級的搶占式調度,具有很多優點。這種調度方法為每個任務指定不同的優先級。沒有處于阻塞或懸置態的最高優先級任務將一直運行下去。當更高優先級的任務由就緒態進入運行時,系統內核立即保存當前任務的上下文,切換到更高優先級的任務。而輪轉調度法分配給處于就緒態的每個同優先級的任務一個相同的執行時間片。

2)信號量

VxWorks信號量是提供任務間通信、同步和互斥的最優選擇,也是提供任務間同步和互斥的主要手段。VxWorks 提供3 種信號量來解決不同的問題。

a.  二進制信號量:二進制信號量(Binary)能夠滿足任務間的互斥和同步,需要的系統開銷最小。當一個任務調用semTake()請求一個信號量時,如果此時信號量可用,信號量會被清零,并且任務立即繼續執行;如果信號量不可用,任務會被阻塞來等待信號量。

b.  互斥:互斥信號量(Mutex)用來實現對共享資源的保護,當兩個以上的任務共享同一塊內存緩沖區或同一個I/O設備之類的資源時,可能會發生競爭狀態。互斥信號量可以通過對共享資源上鎖,實現高效的互斥訪問。

c.  計數器信號量:計數器信號量(Count)是實現任務同步和互斥的另一種手段。計數器信號量除了像二進制信號量那樣工作外,還保持對信號量釋放次數的跟蹤。

3) 中斷服務程序

  VxWorks的所有中斷服務程序使用同一中斷堆棧,它在系統啟動時就已根據具體的配置參數進行了分配和初始化,因此必須保證它的大小,以使它能滿足最壞的多中斷情況。為了快速響應中斷,中斷服務程序ISR運行在特定的空間,不同于其它任何任務,中斷處理沒有任務的上下文切換。中斷也有缺陷:ISR不運行在常規的任務上下文,它沒有任務控制塊。對于ISR的基本約束就是它們不能激活那些可能使調用程序阻塞的函數。

 

實時多任務程序設計

  在一個實時系統中,中斷處理是至關重要的,系統通過中斷機制響應外部事件,并對外部事件作出處理,系統對中斷的響應速度和中斷服務程序的處理速度直接反映了實時系統的性能。VxWorks提供函數intconnect(),它允許將指定的C函數與任何中斷相聯系。這個指定的C函數就是這個中斷的中斷服務程序, 中斷服務程序必須盡快結束,以免阻塞低優先級的中斷,它不同于普通的任務模塊,必須滿足特殊的要求就是不許阻塞。為了既保證中斷服務程序盡快結束而且又避免ISR在調用函數時受到約束,這時可以使用信號量來將中斷與任務相聯系,用任務來完成IRS的功能,建立實時多任務系統。

     具體的做法為,先利用函數taskSpamn()來創建多個任務,建立多任務環境,與中斷相聯系的任務處于高優先級,利用semTake(semID)使該任務等待信號量而處于阻塞狀態,只有當相應的中斷到來時,中斷服務程序執行semGive(semID)給出信號量,任務得到相應的信號量而執行。任務間通信利用互斥信號量實現內存共享。

下面以一個數據采集的程序實例來說明這種實時多任務程序的設計方法。

     對于一個需要定周期采樣并且還要等待外部數據準備好后,讀入數據并與采樣數據融合的系統,我們進行了如下設計,系統劃分為三個任務,按優先級高低排列的任務為:

a.     采樣與數字濾波(tsample);

b.     讀入數據與數據處理(tdataprocess);

c.     系統監控(tmonitor)。

  其中,tsample和tdataprocess通過信號量分別與定時中斷和外部數據準備好中斷相聯系,它們之間的通信利用互斥信號量實現內存共享。當沒有中斷到來時,任務得不到信號量而處于阻塞狀態,執行tmonitor;當中斷到來時,中斷服務程序產生信號量,相應的高優先級任務得到信號量而搶先執行,當高優先級的任務執行完后再執行低優先級任務。程序如下:

1)主程序創建三個任務和兩個中斷連接。

STATUS main (void)

{…

tidsample=taskSpawn("tsample",200,0,STACK_SIZE,(FUNCPTR)sample,0,0,0,0,0,0,0,0,0,0); tiddataprocess=taskSpawn("tDataprocess",210,0,STACK_SIZE,(FUNCPTR)dataprocess,0,0,0,0,0,0,0,0,0,0);

…}

2) 中斷服務程序只產生相應的信號量。

void intSample(void){semGive(sampleSemID);}

void intDataprocess(void){semGive(dataprocessSemID);}

3)高優先級任務等待信號量而處于阻塞狀態,要取得相應的中斷服務程序發出的信號量才能運行。

void sample (void)

{semTake(sampleSemID,WAIT_FOREVER);

…}

void dataprocess (void)

{semTake(DataprocessSemID,WAIT_FOREVER);

…}

該程序在WxSim下運行,在軟件邏輯分析儀WindView下顯示的運行結果如圖1—4。     

 

      

              圖 3                                       圖 4

  其中,圖3顯示的運行過程是,任務tmonitor執行à中斷intrupptà中斷服務程序給出信號量semGive(sampleSemID)à中斷tintà中斷服務程序給出信號量semGive(dataprocessSemID)à任務tsample得到信號量semTake(sampleSemID)à任務tsample執行完后退出à任務dateprocess得到信號量semTake(dataprocessSemID)à任務tdataprocess執行完后退出à任務tmonitor繼續執行。

   圖4顯示的運行過程是:任務tmonitor執行à中斷tintà中斷服務程序給出信號量semGive(dataprocessSemID)à任務dataprocess得到信號量semTake(dataprocessSemID)à任務tdataprocess執行à中斷intrupptà中斷服務程序給出信號量semGive(sampleSemID)à任務tsample得到信號量 semTake(sampleSemID)à任務tsample執行完后退出à任務tdataprocess繼續執行,執行完后退出à 任務tmonitor繼續執行。

  由運行結果可以看出,與中斷對應的任務在得到信號量后沒有立即執行,當中斷服務程序返回中斷點后,有幾微秒的延遲(Pentium ,100M),這是由于任務切換上下文造成的,這一延遲量對于系統的實時性影響不大,是可以接受的,程序的運行結果達到了預期要求。

 

結束語

  本文作者創新點:在VxWorks實時操作系統中,使用信號量將中斷與任務相聯系,中斷服務程序只產生信號量,保證了中斷服務程序盡快結束,以免阻塞低優先級的中斷;用任務來完成中斷服務程序所需要完成的功能,避免了VxWorks對中斷服務程序的約束。在軟件邏輯分析儀WindView下看到的程序運行結果表明,該方法建立實時多任務系統是可行的

]]>
基于Rhapsody和VxWorks的自動取款機系統http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1953&Page=1wangxinxin2010-12-1 11:21:02摘要:介紹如何運用UML設計簡單的自動取款機系統模型并在操作系統VxWorks上實現它:首先,介紹如何運用基于UML的嵌入式實時應用軟件開發環境Rhapsody設計和實現自動取款機系統的模型,以使它能獨立于實際的硬件和使用的操作系統;然后詳細介紹上述模型如何在實時多任務操作系統VxWorks上實現。

    關鍵詞:Rhapsody VxWorks 自動取款機

引 言

  隨著嵌入式應用的不斷增長,嵌入式系統需求的復雜性、不確定性不斷提高,系統規模也逐步擴大;而產品的研發周期又在很快地縮短,給嵌入式應用軟件的開發帶來了新的挑戰。同時,嵌入式軟件的開發者必須面對由于芯片性能的增長、嵌入式操作系統平臺等技術方面不斷變化所帶來的各種壓力。嵌入式軟件開發環境的發展,使一直“深埋”于系統的嵌入式應用軟件變得開放而易于開發,從而促進了嵌入式技術的廣泛應用。

1 基于UML的嵌入式軟件開發環境結構

??圖1所示為一種支持基于UML(Unified Modeling Language,統一建模語言)的迭代式開發方法的開發環境的結構,虛框部分為基于UML的軟件開發環境。

??系統分析和設計用UML來描述,對系統建模;實現過程利用代碼自動生成技術來實現;測試過程將依賴于生成的代碼,通過在代碼中拆裝一些用于支持模型調試的調試信息來實現;而代碼的編譯、鏈接則采用目標系統的操作系統開發環境來完成,代碼的運行與源程序級的調試仍然采用一般的嵌入式軟件調試環境。

??Rhapsody是一個基于UML的面向嵌入式實時應用開發的集成、可視化環境。軟件開發者可以在這個環境里進行分析、設計、實現及驗證。Rhapsody支持基于模型的調試;提供專門為實時嵌入式應用設計的可執行的框架,可以產生基于VxWorks、POS、OSE等多種操作系統的C語言、C++語言、Java語言的源程序。本文所給出的自動取款機系統的模型正是基于Rhapsody設計的。

2 自動取款機系統模型的設計

    2.1 需求分析

??我們設計的自動取款機系統要滿足如下要求:

??在自動取款機系統中,當顧客在自動取款機操作面板上插入信用卡并輸入密碼和現金支取數額(每次最多只能取一千元)后,由自動取款機讀取卡上的內容,并把相應信息傳送到銀行。銀行把自動取款機送來的信息與銀行帳號上的信息進行比較,如果兩者一致,則銀行傳送確認信息到自動取款機,由自動取款機輸出現金,然后顧客取出卡和現金;如果兩者不一致,則要求顧客再次輸入密碼和現金支取數額,然后重復上述操作;若密碼輸入三次不正確,自動取款機就會吞掉信用卡,顧客就不能取出信用卡和現金。

??該自動取款機系統包括1個鍵盤(10個數字鍵、ENTER鍵和CANCEL鍵)、1個LCD液晶顯示屏、1個插卡孔和1個現金出口;通過雙絞線與銀行中的電腦進行串行通信。該自動取款機系統不包括銀行中的電腦,只是通過軟件與銀行中的上位機進行串行通信。

    2.2 可視化建模

??建模是面向對象分析和設計的核心,也是分析和設計過程中最基本和最關鍵的活動之一。UML不僅適用于以面向對象技術描述的任何類型的系統,而且適用于系統開發的不同階段。根據開發過程中不同階段的具體要求,利用UML不同類型的圖來描述系統的各種靜態結構模型和動態行為模型。下面介紹如何利用基于UML的面向嵌入式實時應用開發的集成可視化環境Rhapsody創建自動取款機系統的模型。

圖3 取出現金的黑匣子場景

    第一步:根據要求建立用例圖。

??圖2所示為用例圖。圖中給出了自動取款機系統的主要用途,并表明由誰使用自動取款機系統。有一個主要成員——顧客。一個用例圖應該具有這樣的系統功能:對操作者而言,它返回可觀察的結果但并不顯示系統的內在結構。

??自動取款機系統的主要用途是“取出現金”用例。顧客參與其中的兩個實例是“輸入密碼”和“取出現金”。這兩個實例都包含了另一個用例“讀取卡上內容并驗證”。對每一個用例而言,我們都可以增加文本描述。假如需要的話,這些用例能夠被細化成另一張更多用例的圖。這些用例并沒有顯示任何內在的結構,僅是一個功能性的視圖。

    第二步:設計黑匣子場景。

??建立了一個用例圖后,下一步便是細化用例,即設計一些黑匣子場景。這些黑匣子場景的主要作用是表明模型和對象之間的相互關系。把整個系統看作一個整體,對 “取出現金” 用例,我們細化為圖3所示的場景。(由于每次最多只能取一千元,所以最多只需要按鍵4次。)

??圖3所示的場景能被MSD(消息序列表)捕獲,用來描述在顧客和自動取款機系統之間的通信行為。當創建這樣的圖表時,關于系統的更多細節被隱藏了;同時,這些場景幫助我們更好地理解使用者如何使用報警系統以及需要做哪些事情。總而言之,每一用例都有很多的場景需要捕獲,每一個場景都是用例的一個有效的實例。

    第三步:設計子系統圖。

??下一步是如何把模型分割成子系統。在UML中,一個子系統作為一個封裝顯示,即主要是一個類的集合。圖4的子系統圖表明自動取款機系統已經被分解成兩個基本的部分:自動柜員機封裝(AtmerPkg)和硬件封裝(HardharePkg)。同時也表明:自動柜員機封裝是完全獨立于實際的硬件和硬件封裝的,并且實現了Ihardware接口能夠用于連接自動柜員機封裝。接口類Ihardware描述了對自動柜員機封裝的所有必需的操作,實現了應用與硬件環境的隔離。

??一旦在自動柜員機封裝和硬件封裝之間定義了接口類,每一個子系統就能同步和獨立地細化為更多的子系統。每一個子系統都知道它和其它子系統之間的接口。例如,我們可以開始分析自動柜員機子系統圖,而不需要知道關于硬件的更多情況。

    第四步:設計對象模型圖。

??對自動柜員機封裝而言,我們設想有一個AtmerController類,其中包含Keypad類、Card類、LCD類和Cash類,這些類表示如圖5所示。

??圖5表明:AtmerController類作為一個聚合類,包含了其它類的實例。我們也能看出,我們能選擇顯示“Keypad”類的不同的操作和屬性。在上面的例子中,假如一個實例被AtmerControlle類創建,那么它將創建Keypad類的一個實例theKeypad、LCD類的一個實例theLCD、Cash類的一個實例theCash以及Card類的一個實例theCard。假如AtmerController類的實例被刪除,這些包含的實例也同時被刪除。

??Ihardware類也有一些純虛函數,所以為了測試AtmerController類,必須忽略這些操作。圖6表示:ATM包含了AtmerController類的一個實例和從Ihardware類繼承并忽略了其操作的Hw類的一個實例。

    第五步:生成白匣子場景。

??生成了一個新類AtmerController后,就可以開始為每一個黑匣子場景生成白匣子場景。消息序列表將用于獲取以上不同場景的類的實例之間的通信行為。例如,圖7消息序列描述了顧客輸入支取現金數額并取出現金的場景。

??消息通常對應于對象模型中操作和操作的返回值。消息值對應于類的屬性或是類操作的返回值。消息可以是同步的,也可以是異步的。從圖中可以看出,這些類都有動態行為:它們正在處理定時事件;調用其它類的操作;接受事件。對UML來說,這些動態行為都可以用一個狀態圖來表示。

    第六步:創建狀態圖。

??以顧客輸入密碼過程為例,創建狀態圖,如圖8所示。通常,當一個問題很復雜時,它往往被分解成一些簡單的問題,這也正是對顧客輸入密碼過程要做的事情。圖8所示的狀態圖描述了顧客輸入密碼過程中的行為。

圖7 顧客輸入支取數據并取出現金的白匣子場景

    2.3 屬性、操作和事件

??屬性來源于需求文檔中定義的數據,應該簡單,不考慮設計和實現的細節。每個類都可能有定義在其上的事件和操作。事件對應于明確的瞬時發生的影響類的動態行為。操作對應于類的服務和功能。Rhapsody中有3種事件。

① 信號事件:對應于實例間的異步通信。

② 時間事件:這種事件在進入一個狀態并且經過一個指定的時間后觸發。

③ 觸發操作:觸發操作是同步的操作,通過能夠迅速得到響應的事件得到執行。觸發操作沒有實現代碼,卻可以作為類的狀態圖轉移的觸發器。當調用觸發操作時,同時產生響應的事件。

2.4 生成代碼

??一般嵌入式應用中有60%~90%的代碼用于內務處理(如狀態圖的實現、任務間的通信等),這些代碼在設計新的系統時一般都可以重用。這種重用一般是通過實時框架來實現的。Rhapsody就提供了這樣一個實時框架,它提供了一套嵌入式和實時應用專門選擇和優化的設計模板。嵌入式應用程序一般都運行在嵌入式操作系統的平臺上,而實時框架就是一個在操作系統之上應用程序之下的中間件。應用程序的編寫或自動產生都基于有統一接口的實時框架,這樣就使應用軟件的開發與具體的平臺無關,解決了嵌入式應用軟件的移植問題。

??一旦畫出其余的圖表并創建好不同類的實例后,就能進行代碼的生成和模型的測試工作。在Rhapsody中,需要進行一些配置,以告訴Rhapsody從哪些類生成代碼及使用什么樣的環境。首先,使用Microsoft環境(Windows操作環境和Visual C++編譯器)。然后,代碼在Rhapsody中生成和編譯,以產生可執行程序。

    2.5 使UML模型有效

??Rhapsody能使用自動生成的代碼,所以,當實際的代碼運行時,它能返回一些信息給調試工具,以便Rhapsody進行模型的測試。通過模型級調試、驗證,可以盡早發現系統的設計錯誤或缺陷,從而較早地確定或降低項目的風險。

    2.6 測試模型

??一旦自動柜員機封裝被手工產生的事件測試通過并觀察發生的情況后,就可以利用如微軟的Visual C++產生一個GUI。用于創建GUI的類從Ihardware類繼承而來,選中set選項,當按鈕被按下時,調用ON操作。GUI也能促使模型在模型級再次被調試。

3 在VxWorks上運行

??模型是系統整體的抽象。軟件開發的最終形式必須生成程序代碼,模型畢竟是一些漂亮的藍圖。雖然它對軟件的設計有很大的作用,但用戶的最終目的是希望得到可執行的程序。對于嵌入式實時系統,代碼與系統要求(時間約束、資源的限制等)是緊密聯系的,用最終形式的源程序驗證系統的模型更準確。

??Rhapsody可利用軟件自動生成技術的成果,根據模型可以自動生成具有產品質量的代碼。這種代碼既可以作為系統模型驗證的代碼,也是系統最后提交的代碼。所以產生的代碼是基于某個具體平臺的代碼,通過編譯即可運行在該平臺上。本文采用的是美國 Wind River System 公司推出的一個實時操作系統VxWorks。它是一個運行在目標機上的高性能、可裁剪的嵌入式實時操作系統。

??一旦自動取款機系統被設計、實現和測試后,它就能在實時多任務操作系統VxWorks上實現。1個鍵盤、1個LCD液晶顯示屏、1個插卡孔、1根與銀行的上位機相連的雙絞線和1個輸出現金口經由I/O板連接到1個目標板上。

??從Ihardware類繼承而來并選中set選項而創建新類HwIrq。這些操作的實例可以被寫進Rhapsody中。為了寫到I/O板中,使用VxWorks系統的操作sysOutByte。

??HwIrq類已經被設置成一個活動類,所以它能在自己的線程運行,線程的參數被配置如下:線程名為tRhpHw,堆棧長度為4096字節,優先級為180。

??HwIrq.cpp的部分程序見本刊網絡補充版(http://www.dpj.com.cn)。

4 結 論

??本文運用基于UML的嵌入式實時應用軟件開發環境Rhapsody來設計和實現自動取款機系統的模型。與傳統的嵌入式軟件開發方法相比,具有明顯的優勢。它大大縮短了產品的開發周期,解決了嵌入式應用軟件的移植問題,使軟件的開發工作主要集中在高層的建模和模型的測試及驗證上,從而使軟件開發工作的焦點從編碼轉到了設計上。

]]>
基于MPC860/VxWorks的嵌入式系統開發http://www.022-oo.cn/bbs/dispbbs.asp?BoardID=38&ID=1952&Page=1wangxinxin2010-12-1 11:17:27Research on the Developing of Embedded
Abstract: The article introduces the characters of embedded processor MPC860 and embedded real-time operation system VxWorks and describes the process of embedded system development based on MPC860/ VxWorks which uses BDM to write bootrom file, uses FIP to download VxWorks image and uses Tornado integrated developing circumstance to download and debug applying program.
Key Words: MPC860,  VxWorks,  Tornado,  embedded system
摘 要:本文介紹了嵌入式處理器MPC860與嵌入式實時操作系統VxWorks的特點,描述了基于MPC860/ VxWorks嵌入式系統開發的流程:使用BDM調試器燒寫bootrom文件,使用FTP下載vxworks內核鏡像,使用Tornado集成開發環境下載與調試應用程序。
關鍵字: MPC860;VxWorks;Tornado;嵌入式系統

1 引言
摩托羅拉公司生產的MPC系列CPU基于PowerPCTM結構,它由三個模塊組成:即PowerPCTM內核、系統接口單元(SIU)及通信處理模塊(CPM)[1]。三個模塊均采用32 位內部總線。主處理器是PowerPCTM內核,能夠實現內存管理,具有指令和數據Cache。系統接口單元中,存儲器控制單元可支持多種高性能的存儲器,包括SDRAM和Flash。CPM是一個RSIC處理器,具有串行通信控制器、波特率發生器等,支持多種協議的命令集,可以配置成多種通信處理模式。
VxWorks是一種實時性非常強的嵌入式操作系統,具有高性能的內核、良好的持續發展能力、以及友好的功能強大的開發環境,使該系統越來越被用戶認可。
目前,基于MPC860/VxWorks系統的應用越來越廣泛,因此,本文對基于MPC860/VxWorks系統的開發的一般流程進行了研究。
2 開發平臺
2.1 開發方式介紹
進行嵌入式系統開發有多種方式,常用的方式有兩種:
(1)先進行硬件設計開發,然后通過仿真器在目標板上調試程序,如單片機常用的開發方法;或者在主機上編寫完用戶程序,將其直接編譯入內核,整體下載入目標板,通過主機上的交叉調試器對目標機上的程序進行調試,如嵌入式實時多任務系統開發。
(2)軟硬件同時開發,通常一些嵌入式操作系統都有一個集成開發環境,包括目標機仿真器,可以在開發硬件的同時,在仿真器上開發調試應用程序,最后進行聯合調試。
第二種方式開發時間短,但不夠直觀,容易出錯,即使仿真成功,但在下載到目標板后,通常還需要調試排錯。在有硬件環境的情況下,通常采用第一種方式,尤其是開發需要對硬件進行直接操作的底層驅動程序。
這里我們設計一款基于MPC860的嵌入式硬件環境,它同時具有幾種通信接口:BDM接口、串口和網口。系統開發采用第一種開發方式,軟件開發流程主要包括:引導程序的燒寫、下載vxworks鏡像和應用程序下載調試等幾個主要方面。
2.2  Tornado集成開發環境
Tornado是嵌入式實時領域里最新一代的開發調試環境,提供了高效明晰的圖形化的實時應用開發平臺,它包括一套完整的面向嵌入式系統的開發和調測工具[2]。在Tornado II中,包括高性能的實時操作系統VxWorks、原代碼編輯器、C/C++編譯器、高性能的調試器、圖形化的瀏覽器,集成的模擬器等工具和組件。
    最主要的特點是:Tornado支持動態鏈接和加載,允許開發者增量式地加載目標模塊到目標系統。動態鏈接和加載目標模塊的能力作為Tornado結構的核心,使開發者避免了在宿主機上鏈接應用到內核,然后再下載整個可執行體到一個靜態環境的這樣通常采用的步驟。這樣,就大大地縮短了每個編輯—測試—調試的周期。
Tornado II工具提供一個高度可視化和自動化的開發環境,加快了基于VxWorks的應用開發。
3   開發方案
3.1 系統引導程序編程與bootrom燒寫
(1)系統引導程序編程
目標系統啟動工作首先要進行系統初始化,對不同的CPU,系統初始化的基本步驟是類似的,主要步驟如下:
啟動;
禁止中斷;
放boot type(引導類型)到堆棧;
清空指令和數據緩存。
VxWorks 系統的 PowerPC BSP系統開機后,處理器是從romInit()函數開始執行,這是romInit.s 中的第一段程序。在romInit()函數中必須完成以上功能,這些功能程序通常使用匯編語言來寫。在romInit()程序中開始執行C程序之前必須盡可能少的加載設備。引導程序結束時,得到C程序romStart()在ROM中的地址,保證romInit執行結束后,系統跳轉執行romStart(),將文本和數據段從ROM復制到RAM中。
在系統初始化程序段中,可加入串口初始化程序和驅動程序,使系統引導結束后可支持使用串口傳輸命令和信息。加入下載命令程序段,以便于下載VxWorks內核鏡像文件。
(2)bootrom燒寫
bootrom燒寫方式有多種,可以使用編程器編程,但對于在線系統調試,為方便修改,現在使用較多的是JTAG 調試器和BDM調試器。我們的系統采用的是MPC系列的CPU MPC860,它提供有BDM接口。因此可以很方便的使用BDM 調試工具編程。
MPC BDM調試工具通過宿主機的打印口與MPC BDM接口電纜相連,然后加到目標板的BDM接口上。連接BDM和目標板的電源,(此時也可以將串口線和網線連接到主機上)。在燒寫程序之前,將以上編寫的程序編譯成二進制目標代碼拷貝到c:\sds74\cmd\init下。
打開SDS74調試軟件,首先要下載燒寫boot的文件,然后執行run/go命令,大約需要幾分鐘,boot燒寫完成。
將boot燒好后,拔掉bdm和目標板的電源以及bdm電纜,然后再插上目標板的電源,boot將運行,正常時會在主機的串口超級終端顯示如下信息:BOOT>,此時可以說boot燒寫成功。
3.2下載和運行VxWorks內核鏡像
在可引導的MPC860嵌入式平臺上,使用串口和網絡傳輸數據,進行BSP和應用程序調試。相對于使用串口傳輸數據,使用網絡傳輸具有速度快,因此使用串口進行發送命令和返回信息,使用網口傳輸數據[6](如圖1)。

             主機                                            目標機


WindRiver公司提供了很多基于不同硬件平臺的典型的板級支持包BSP。因此,開發基于VxWorks的實用板級支持包是盡量獲得一個與目標板硬件環境相近的參考板級支持包和相關代碼模板,再根據目標板硬件環境,完成板級支持包包含的驅動程序及設備初始化,從而完成板級支持包的開發[4]。
啟動Tornado II集成開發環境,使用工程向導創建一個可啟動工程(bootable VxWorks image)項目,選擇基于ads860的BSP。在這個工程項目里可以進行BSP的基本配置、VxWorks的基本配置、網卡配置等,結合實際電路和應用進行修改,創建用戶自己的BSP以支持特定硬件。前述bootrom程序也可由此生成。在此階段可以借助WDB調試代理和Tornado工具輔助開發,也可以選擇在線仿真器ICE輔助開發。
BSP 調試完成,編譯此工程項目為一個VxWorks內核鏡像文件*.img,在以后的應用程序調試過程中可通過Tornado的一個部件 ftp server下載。下載方法如下:
首先連接主機與目標板的網線和串口線,目標板上電后,在超級終端窗口3秒以內按回車鍵進入boot shell;否則,目標機系統會進入自動尋找并運行程序狀態。
此時啟動和配置ftp server,選擇Security菜單中的user/rights命令,添加一個用戶名如target,密碼target,設置主目錄為C:\;然后點擊Done。ftp server配置完成。
現在需要設置主機ip地址。將主機ip設為192.168.1.1,子網掩碼255.255.255.0。將調試好的VxWorks鏡像文件*.img拷貝到C:\。
最后,在主機的串口超級終端中輸入設置好的下載命令@,目標板開始從主機的ftp server下載*.img(vxworks的ram鏡像)。
下載完成,*.img文件自動運行,在超級終端窗口顯示vxworks鏡像在目標板啟動成功的信息,此時vxworks內核已經成功裝載到目標板,可以同主機的tornado(vxworks的集成開發環境)進行連接了。
3.3  在tornado中編寫和運行應用程序
當上述環境配置成功后就可以進行應用程序開發了。在tornado集成開發環境中可以開發并調試各種應用程序,添加程序并編譯成功后就可以下載到目標板上進行調試了。下面通過一個應用程序調試示例加以說明。
4   開發應用程序示例
4.1 開發并編譯程序
啟動Tornado II集成開發環境,使用工程向導創建一個可下載工程(downloadable application modules)項目project1,在創建過程中選擇工具鏈(toolchain)為PPC860gnu。在工程項目中編寫或添加應用程序源文件,如一個Hello.c文件。
#include "vxworks.h"
#include "drv/multi/ppc860Siu.h"
void root()
{
printf("hello!How are you?\n");  /*在終端輸出此信息*/
}
#define PD10    (0x0020)
#define PD09    (0x0040)
#define RUNLIGHT  PD10
#define LINKLIGHT PD09
void RunLight(void)
{
 int immrVal = vxImmrGet();
        *PDDIR(immrVal)|=RUNLIGHT;
 while(1)
    {
  *PDDAT(immrVal) ^=RUNLIGHT;
  taskDelay(sysClkRateGet()/2);/*delay 0.5 second*/
    }                    
}
void run()
{
 taskSpawn ("RunLight", 100,0 /*switchTaskOptions*/,0x1000,
      (FUNCPTR)RunLight, 0,0,0,0,0,0,0,0,0,0);
} /*通過以上函數創建并激活一個新任務,點亮系統指示燈*/
4.2 配置和運行target server
使用Tornado編譯器編譯成功后下載。下載之前首先要配置和運行target server,在菜單tool/target server/configure中,先點擊new新建一個配置如configuration1, 然后開始配置。
在target server proportion 項的“Back End”的選項中選擇wdbrpc;
在target server proportion 項的“Core File and Symbols”的選項中設置vxworks鏡像文件位置為C:\;
在target name/ip address輸入目標板的ip 地址192.168.1.254;
配置完成,點擊Launch運行;
下面可以下載和運行應用程序了。
4.3下載和運行程序
在工程上點擊右鍵,選擇download project1.out下載應用程序到目標板,然后可以在Tornado中的shell里運行應用程序了,如在shell中運行hello.c中的root函數(在shell中打印hello!How are you?)和run(目標板的run燈會閃亮)。
在每次下載調試應用程序或添加新的應用程序時都不需要把它們和vxworks內核編譯到一起,這樣節省了開發和調試時間。
5   總結
本文描述了基于嵌入式實時操作系統VxWorks的開發方法,憑借性能優良的VxWorks和高度集成的開發環境,VxWorks的應用已成為新的研究熱點。在開發過程中使用相近的BSP開發用戶自己的板級支持包,難度降低了并縮短了開發時間,使用ftp server下載VxWorks內核鏡像,使用Torndo 工具編譯、調試和下載應用程序。通過這樣的流程對應用程序的開發帶來了極大的方便,該方法已得到廣泛應用。
本文作者創新點:對基于VxWorks嵌入式操作系統在MPC8XX系列cpu上的開發過程進行了具體而實用的描述。有一定的應用價值。

]]>
主站蜘蛛池模板: 天天综合91 | 91黄免费 | 午夜亚洲aⅴ无码高潮片苍井空 | 性欧美在线视频观看 | 色在线 | 国产 | 欧美日韩综合在线观看 | 天堂av一区二区 | 欧美www| 大伊香蕉精品视频在线直播 | 无码人妻久久久一区二区三区 | 国产黄视频在线观看 | 色综合久久久久久 | 日本精品少妇一区二区三区 | 午夜精品在线播放 | 国产乱淫av公 | 99久久精品无码专区 | 久久久777| 国产欧美视频综合二区 | 国产日产精品一区二区三区四区的观看方式 | 午夜视频免费在线观看 | 日本视频免费高清一本18 | 国产又黄又粗又爽 | 国产成人77亚洲精品www | 久久久久人妻一区精品下载 | 精品欧美一区二区精品久久小说 | av在线播放日韩亚洲欧 | 国产三级国产精品国产国在线观看 | 日韩欧美精品一区 | 超碰人人人人人人人 | a片在线免费观看 | 国产三级日本三级在线播放 | 精品亚洲视频在线观看 | 一本色道av久久精品+ | aⅴ色国产 欧美 | 91av视频| 日韩亚洲欧美中文高清 | 亚洲五月色丁香婷婷婷 | 国产九九九视频 | 无码人妻精品一区二区三区东京热 | 俄罗斯乱妇一区二区三区 | 男人午夜网站 | 日本又黄又硬又爽的大片 | 欧美成人看片一区二区三区尤物 | 青青草国产成人久久电影 | 好硬好湿好爽再深一点动态图视频 | 少妇粉嫩小泬喷水视频 | 131mm少妇做爰视频 | 一区精品在线 | 一区二区三区av | 国产精品18久久久久白浆软件 | 日韩欧美高清一区 | 免费人成视频网站在线18 | 国产第一草草影院 | www免费网站在线观看 | 国产精品国产三级国产aⅴ 小明av | 久久综合成人精品亚洲另类欧美 | 国产农村妇女野外牲交视频 | 欧美极品video粗暴 | 婷婷丁香激情 | 免费观看一级淫片 | 嫩草影院av | 女人被狂躁c到高潮喷水电影 | 日韩 欧美 综合 | 欧美丰满熟妇bbbbbb | 52综合精品国产二区无码 | 国产成人年无码av片在线观看 | 欧美国产精品一区二区 | 亚洲s久久久久一区二区 | 亚洲成a人v欧美综合天堂麻豆 | 国产原创中文av | 忘忧草社区在线播放日本韩国 | 女人被黑人狂躁c到高潮小说 | www亚洲最大aⅴ成人天堂 | 久久精品亚洲乱码伦伦中文 | 青青操青青 | 毛片基地免费 | 亚洲第九十九页 | 日本三级毛片 | 美国av一区二区三区 | 国产成人剧情av麻豆果冻 | 亚洲日韩国产中文其他 | 真人做作爱视频 | 九九九国产 | 亚洲国产成人精品女人久久久 | 亚洲国产精彩中文乱码av | 久久久这里只有免费精品 | 国产精品一二三四 | 伊人久久久 | 婷婷丁香在线 | 91视频在线 | 午夜精品久久ed2kmp4 | 日韩动漫av| 日本一区二区在线播放 | 欧美一级激情 | 久久激情综合网 | 在线日韩成人 | 日本vs亚洲vs韩国一区三区 | 久草免费在线 | 国产精品www色诱视频 | 精品一区二区无码av | 久久日韩国产精品免费 | 亚洲乱码国产乱码精品精 | 无毒的av网站 | 久久婷婷人人澡人人喊人人爽 | 伊人久久综合狼伊人久久 | 秋霞av亚洲一区二区三 | 高潮又爽又无遮挡又免费 | 日韩中文字幕v亚洲中文字幕 | 九色在线视频 | 日韩综合中文字幕 | 久久综合国产精品 | 亚洲精品一区二区三区精华液 | 久草在线免费福利资源 | 国产精品内射后入合集 | 久久免费网 | 久久婷婷五月综合色中文字幕 | 国产丝袜美女一区二区三区 | 深爱激情五月婷婷 | 77777熟女视频在线观看 | 国产成人免费高潮激情视频 | 亚洲欧美色综合区11p | 国产三级午夜理伦三级 | 色偷偷激情日本亚洲一区二区 | 宅宅午夜无码一区二区三区 | 欧美精品久久久久久久监狱 | 无码人妻天天拍夜夜爽 | 亚洲精品无码久久毛片波多野吉衣 | 国语自产精品视频在线第100页 | 97久久综合亚洲色hezyo | 国产一级视频 | 无码不卡av东京热毛片 | 国产a三级久久精品 | 国产女人18毛片水真多18动漫 | 亚洲五香丁香 | 太粗太深了太紧太爽了动态图 | 亚洲免费综合色在线视频 | 欧美多人片高潮野外做片黑人 | 亚洲欧洲日产国码av系列天堂 | 日本一级片在线观看 | 欧美午夜精品久久久久久浪潮 | 精品人无码一区二区三区 | 中文字幕人妻无码一区二区三区 | 视频免费一区 | 久草视屏 | chien国产乱露脸对白 | 国产在线精品一区二区在线看 | 国产女人高潮叫床免费视频 | 久草在线综合 | 精品亚洲欧美视频在线观看 | 无码av片在线观看免费 | 一本大道久久东京热av | 91精品国产综合久久久久久软件 | 99视频在线观看免费 | 欧美综合精品 | 久久9999久久免费精品国产 | 久久久久久免费精品 | 国产又色又爽又黄 | 亚洲欧美日韩在线不卡 | aaaa毛片| 国产a∨国片精品白丝美女视频 | 亚洲欧美国产免费综合视频 | 国产丝袜美女 | 免费人成又黄又爽又色 | 极品少妇被黑人白浆直流 | 日产精品一区二区 | 拍戏时男主呻吟硬大粗h | 国产一卡2卡3卡4卡网站精品 | 亚洲午夜影视 | 久久亚洲日韩av一区二区三区 | www.黄色av| 久久久久久久久久久网 | 91精品国产乱码久久久 | 亚洲阿v天堂无码在线 | 久久www免费人成_看片老司机 | 免费女女同性 av网站 | 中文字幕亚洲综合久久筱田步美 | 亚洲精品综合五月久久小说 | 狠狠躁夜夜躁无码中文字幕 | 中文字幕第一区高清av | 国产午夜草莓视频在线观看 | 亚洲精品无码不卡av | 国产成人福利美女观看视频 | 亚洲欧美一区二区三区 | 欧美黄色片网站 | 乱码一卡2卡3卡4卡精品 | 美女福利视频在线 | 69久久99精品久久久久婷婷 | 9l视频自拍蝌蚪自拍丨视频 | 天海翼激烈高潮到腰振不止 | 成年午夜性影院免费观看 | 8mav精品少妇| 久久国产成人 | 日日躁你夜夜躁你av蜜 | 欧美成人高潮一二区在线看 | 韩国明星乱淫(高h)小说 | 久久九九免费 | 99爱精品视频在线观看免费 | 色综合久久五月 | jizz一区| 搡老女人老91妇女老女人 | 亚洲精品无码永久电影在线 | 日本学生三级在线观看 | 国产怡春院无码一区二区 | 国产人成亚洲第一网站在线播放 | 黄色福利网址 | 国产又色 | 真人做人试看60分钟免费 | 精品久久久爽爽久久男人和男人 | 国产360激情盗摄全集 | 国产精品久久无码一区二区三区网 | 韩国19禁主播深夜福利视频 | 成人妇女免费播放久久久 | 亚洲区一区二区 | 国产精品一区二区麻豆 | 丰满的熟妇岳中文字幕 | 精品中文字幕在线播放 | 潘金莲一级淫片aaaaa免费看 | 国产成人av一区二区三区不卡 | 日韩在线亚洲 | 日韩av无码久久一区二区 | 毛片无码高潮喷液视频 | 在线免费观看视频黄 | 亚洲欧洲国产精品香蕉网 | 久久久久欠精品国产毛片国产毛生 | 一区二区在线免费观看 | 国产精品国产av国产三级 | www在线免费观看视频 | 日韩精品视频在线观看网站 | 最新国自产拍小视频 | 黄色国产在线观看 | 国产成人精品午夜福利在线观看 | 国产999视频 | 免费性片 | 国产亚洲视频中文字幕97精品 | 2023国产精品一卡2卡三卡4卡 | 91精品国产高清久久久久久久久 | 亚洲国产日韩精品一区二区三区 | 国产97色在线 | 欧美成人免费观看视频 | 精品国内自产拍在线播放观看 | 美女露出强行男生揉网站 | 国产精品久久久久aaaa | 欧美日韩大片在线观看 | 肮脏的交易在线观看 | 国产精品男女啪啪 | 搡女人真爽免费午夜网站 | 亚洲精品久久国产精品浴池 | 摸丰满大乳奶水www免费 | 偷拍久久网 | av免费观看网 | www.av欧美 | 久久久精品午夜免费不卡 | 欧美 日韩 视频 | 午夜亚洲www湿好爽 三级网站视频在在线播放 丝袜老师办公室里做好紧好爽 | 国产国产乱老熟女视频网站97 | av在线影片 | 久久精品亚洲一区二区三区画质 | 免费黄色国产视频 | 99re6在线| 九色伊人 | 国产在线乱码一区二三区 | 一区一区三区产品乱码 | 亚洲aⅴ欧洲av国产综合图片 | 被技师按摩到高潮的少妇 | 国产精品久久久久久久久动漫 | 色av性av丰满av | 日韩精品成人无码专区免费 | 国产精品国产三级国av麻豆 | 麻豆精品偷拍人妻在线网址 | 国产福利萌白酱精品一区 | 99精品国产在热久久无毒不卡 | 最新黄色毛片 | 操操操插插插 | 国产欧美亚洲一区 | 国产69精品久久久久777 | 亚洲国产一二区 | 91av在| 日韩精品人妻系列无码av东京 | 国产香蕉视频 | 午夜毛片在线 | 天堂一区二区三区四区 | 永久天堂网 av手机版 | 国产成人一区二区三区影院动漫 | 男女国产精品 | 天堂av2014 | 国产欧洲精品自在自线官方 | 精品国产自在精品国产 | 亚洲精品高潮 | 超碰97在线资源站 | 欧美人与动牲猛交xxxxbbbb | 中文字幕天天躁日日躁狠狠躁 | 亚洲+小说+欧美+激情+另类 | 人妻与子交毛片 | 欧美日韩一区二区免费视频 | 久久九九兔免费精品6 | 欧美jizzhd精品欧美巨大免费 | 国产又粗又猛又色又 | www.第四色 | 99在线免费观看 | 亚洲高清国产拍精品闺蜜合租 | 四虎国产精品永久免费网址 | 亚洲欧洲av综合色无码 | 欧美精品 - 色网 | 欧美激情在线看 | 精品国产乱码久久久久久蜜退臀 | 91狠狠操| 久久你懂的 | 欧美日韩一区久久 | 日韩一级片在线播放 | jizz亚洲少妇 | 成人免费xxxxx在线观看 | 国产色噜噜 | 国产极品女主播国产区 | 欧美天天性 | 青青草国产精品免费观看 | 欧美大片网站 | 国色天香成人网 | 亚洲国产超清无码专区 | 天天操天天色综合 | 日韩成人免费观看视频 | 欧美xxxbbb| 18国产精品白浆在线观看免费 | 中文字幕人妻熟女人妻洋洋 | 国产又滑又嫩又白 | 国产日韩欧美三级 | 国产黄色资源 | 欧美成人精品三级网站 | 日韩伦乱视频 | 男人猛躁进女人免费播放 | 国产精品久久久久久久久久精爆 | 免费一级肉体全黄毛片 | 亚洲高清av | 国产成年无码久久久久毛片 | 无码精品人妻一区二区三区98 | 中文字幕无码av正片 | 欧美视频国产 | 日日躁夜夜躁白天躁晚上 | 精品欧美国产 | 国产伦理五月av一区二区 | 毛片手机在线观看 | 婷婷六月丁香缴 清 | 性色av无码久久一区二区三区 | 欧美老女人性生活视频 | 国产在线乱子伦一区二区 | 波多野结衣在线播放 | 国产精品国产自产拍高清av王其 | 日韩av片无码一区二区不卡电影 | 日日久| 免费在线色 | 日本免费一区高清观看 | 一个人看的视频www在线 | 日韩美女自卫慰黄网站 | 国产精成人品日日拍夜夜免费 | 青青草视频在线看 | 内射人妻无套中出无码 | 亚洲综合精品 | 俄罗斯精品一区二区 | 日本乱偷中文字幕 | 亚欧洲乱码视频 | 国产人成无码视频在线观看 | 免费毛片a | 人妻少妇乱孑伦无码专区蜜柚 | 无码专区heyzo色欲av | 宅男噜噜99国产精品麻豆精品 | 亚洲国产成人资源在线 | 亚洲欧美另类在线 | 免费福利视频导航 | 色香色香欲天天天影视综合网 | 精品熟女少妇av久久免费 | 国产美女www爽爽爽免费视频 | 欧美三级网 | 日韩精品视频免费 | 动漫高h纯肉无码视频在线观看 | 日韩精品无码一区二区 | 日本一道人妻无码一区在线 | 亚洲精品综合在线观看 | 亚洲一区二区色一琪琪 | 亚洲精品国偷拍自产在线 | 人妻少妇偷人精品无码 | 日日摸日日碰人妻无码老牲 | 免费看污污视频 | 九九九热| 欧美视频自拍 | 全国最大成人免费视频 | 亚洲aⅴ无码天堂在线观看 黄色一级片日本 | 国产女主播白浆在线观看 | 国产日批视频 | 一区二区三区中文字幕 | 无码av不卡一区二区三区 | 国产精品亚洲а∨怡红院 | 国产丰满天美videossex | 黄色特级大片 | 午夜av无码福利免费看网站 | 亚洲黑人巨大videos | 欧美18精品久久久无码午夜福利 | 久久成人 久久鬼色 | 伊人免费视频 | 啪啪免费网址 | sm久久捆绑调教精品一区 | 国产色婷婷 | 人妻熟妇乱又伦精品视频无广告 | 久久99久国产麻精品66 | 粗大猛烈进出高潮视频免费看 | 久久久国产99久久国产久一 | 樱桃视频a在线18 | 999av| 日韩精品一区二区三区亚洲综合 | av在线播放无码线 | 国产精品乱码久久久久久1区2区 | 正在播放国产大学生情侣 | 成年片在线观看 | 天堂аⅴ在线地址8 | 中文无码一区二区视频在线播放量 | 午夜婷婷精品午夜无码a片影院 | 免费无码国产欧美久久18 | 亚洲午夜一区二区 | 国产极品粉嫩泬免费观看 | 白浆一区二区 | 日韩尤物在线 | 人妻无码中文字幕免费视频蜜桃 | 亚洲精品久久久久久久久久久久久久 | 成人久久精品一区二区三区 | 国产成人亚洲综合无码18禁h | 又大又紧又粉嫩18p少妇 | 天天干夜夜躁 | 9色视频 | 国产精品爽爽久久久久久豆腐 | 夜夜av | 漂亮人妻偷人精品视频 | 81精品久久久久久久婷婷 | 亚洲综合色在线观看一区二区 | 久久久免费看 | 一二三四社区在线中文视频 | 久久黑丝| 另类激情在线 | 亚洲小说视频 | 日韩v在线 | 国产亚洲精品精品国产亚洲综合 | 国产又粗又硬又大爽黄 | 爱爱毛片 | 欧美一区二区国产 | 欧美黑人性暴力猛交喷水黑人巨大 | 免费三级现频在线观看免费 | 国产传媒18精品免费1区 | 国产精品成人在线观看 | 天天操天天舔天天射 | 五月婷婷综 | 久久久久久a亚洲欧洲aⅴ96 | 蜜臀精品久久久久久蜜臀 | 亚欧成人无码av在线播放 | 在线免费观看a视频 | 五月婷婷社区 | 一国产一级淫片a免费播放口 | 中文字幕在线观看免费 | 性欧美另丰满69xxxxx | 日韩爱爱小视频 | 99在线国产| 亚洲另类精品无码专区 | 无码国产精品一区二区高潮 | 免费人成在线观看视频播放 | 日日夜夜中文字幕 | 欧美黄色大片视频 | 99久久精品国产自在首页 | www.日本在线视频 | 在线观看片免费人成视频无码 | 欧美国产小视频 | 91丨九色丨国产 | 亚洲综合另类小说专区 | 欧洲综合色 | 日本精品久久久久久草草 | 永久免费精品影视网站 | 亚洲免费av一区 | 国产欧美日韩专区发布 | 成人羞羞国产免费图片 | 一区二区天堂 | 国产ae86亚洲福利入口 | 尤物视频在线播放 | 午夜精品三级久久久有码 | 一道本一二三区 | 亚洲国产欧美在线成人aaaa | 亚洲色五月 | 色一情一交一乱一区二区 | 亚洲 欧美 另类 制服 日韩 | aa视频在线免费观看 | 色屁屁草草影院ccyycom | 在线观看免费亚洲 | 久草在线在线 | 国产揄拍国产精品人妻蜜 | 九九热爱视频精品视频16 | 天天操天天插天天干 | 性猛交xxxxx富婆免费视频 | 91精品91久久久中77777 | 日本做受高潮好舒服视频 | 成人午夜免费在线观看 | 91欧美精品成人综合在线观看 | 亚洲黄色一区二区 | 久久精品国产成人av | 亚洲无人区小视频 | 久久网站免费看 | 果冻传媒亚洲区二期 | 久久久一区二区三区 | 国产农村妇女高潮大叫 | 综合激情丁香久久狠狠 | 我爱搞av| 中文字幕 欧美日韩 | 丰满少妇高潮惨叫视频 | 亚洲欧美日韩一区二区三区四区 | 亚洲小视频在线播放 | 色www永久免费 | 精品国产亚洲一区二区三区 | 天堂va在线高清一区 | 成人aaaaa日本黄绝录象片 | 强伦人妻一区二区三区视频18 | 日本熟妇人妻xxxxx视频 | 精品无人乱码一区二区三区的优势 | 精品国产一区二区三区四区精华液 | 国产成人久久av免费看 | 色婷婷我要去我去也 | 国产又色又爽又黄刺激视频 | 日韩在线中文高清在线资源 | 国产放荡av剧情演绎麻豆 | 自拍偷拍 校园春色 | 福利姬国产精品一区在线 | 天天艹夜夜艹 | 成人午夜视频网 | 日韩1区3区4区第一页 | 亚洲精品久久久久午夜福利 | 好吊妞这里只有精品 | 成人写真福利网 | 亚洲麻豆精品 | 日韩免费无码人妻波多野 | 任我爽橹在线视频精品583 | 国产精品无码a∨精品 | 日本一本到道免费一区二区 | 亚洲欧美日韩免费 | 精品成人一区二区三区四区 | 国产91在线播放九色000 | 熟妇人妻无码中文字幕老熟妇 | 欧美黑人又粗又硬xxxxx喷水 | 欧美人与动人物牲交免费观看 | 99有精品 | 亚洲深深色噜噜狠狠爱网站 | 亚洲精品视频一区 | 久久天天躁狠狠躁夜夜躁2012 | 揉少妇的双乳从后挺进视频 | 国产福利自产拍 | 日本一区二区三区网站 | 亚洲精品国产一区二区三区在线观看 | 91橘梨纱中出体验在线观看 | 色婷婷激情网 | 色偷偷噜噜噜亚洲男人的天堂 | 少妇人妻无码精品视频app | 人人干人人插 | 午夜精品成人一区二区视频 | 丁香五月激情综合亚洲 | 成人无码av片在线观看蜜桃 | 一本久道综合在线无码人妻 | 国内盗摄国产盗摄av | 丰满人妻精品国产99aⅴ | 日韩精品一级 | 欧美一级色图 | 亚洲欧美在线综合图区 | 久久久久久久久久久91 | 自拍偷拍18p | 国产精品天干天干在线综合 | 激情综合激情五月俺也去 | 亚洲精品xxx | aaa极品在线| 91精品少妇偷拍99 | 95看片淫黄大片一级 | 欧美成人精品高清在线播放 | 91精品国产91久久久久久最新 | 韩国三级hd中文字幕叫床浴室 | 日韩欧美中文字幕综合 | 国产精品99久久久久久www | 国产精品一区二区亚瑟不卡 | 久久久久北条麻妃免费看 | 久久亚洲精品无码观看网站 | 99久久精品无码一区二区毛片 | 超碰人人射| 黄色网zhan | r级无码视频在线观看 | 午夜精品久久久久久久久久久久 | 久久精品人人做人人爽电影蜜月 | 丁香花中文字幕mv在线免费观看 | 国产午夜羞羞小视频在线观看免费 | 国产精品午夜小视频观看 | 免费在线观看污片 | 日本少妇高潮正在线播放 | 国产精品乱码人妻一区二区三区 | 人妻护士在线波多野结衣 | 91精品国产日韩91久久久久久 | 欧美视频在线播放 | www.黄色小说| 亚洲欧洲日产韩国2020 | av不卡国产在线观看 | 18禁黄无码免费网站高潮 | 精品96久久久久久中文字幕无 | 99热最新精品 | 久久久久久久极品 | 久久国产美女精品久久 | 久久不见久久见www日本网 | 日本精品videosse×少妇 | 99爱在线视频这里只有精品 | 亚洲午夜久久久久久久久久久 | 天天精品综合 | 国产精品视频免费看人鲁 | 中文字幕日韩一区 | 久久精品国产999久久久 | 国产精品国产三级国产av剧情 | 久久久久国色av免费观看 | 人妻波多野结衣爽到喷水 | 热99re久久精品 | 国产成人乱码一二三区18 | 久久精品一区二区免费播放 | 在线看片免费人成视频电影 | 西西人体大胆午夜啪啪 | 久草播放 | 看免费5xxaaa毛片 | 免费爆乳精品一区二区 | 久久午夜免费观看 | 国产999久久高清免费观看 | 全亚洲最大的免费影院 | 国产女女做受ⅹxx高潮 | 日韩在线视频网站 | 色在线免费观看 | 国产在线无码播放不卡视频 | 女人的精水喷出来视频 | 99热热99| 国产视频网站在线观看 | 日本在线观看www | 日本熟妇人妻xxxxx-欢迎您 | 人妻无码中文专区久久五月婷 | 大桥未久av一区二区三区中文 | 日本乱码一区二区三区不卡 | 丝袜人妻一区二区三区网站 | 亚洲 欧美 综合 在线 精品 | 色老头一区 | 天天舔日日干 | 国产精品天干天干在线综合 | 377p日本欧洲亚洲大胆张筱雨 | 男女下面一进一出免费视频网站 | 激情 自拍 另类 亚洲 | 都市激情国产 | 国产麻豆果冻传媒视频观看 | 国产丰满大乳奶水在线视频 | 国产午夜亚洲精品羞羞网站 | 欧美视频在线观看一区二区 | 亚洲乱亚洲乱妇无码 | 中文字幕 亚洲精品 第1页 | 国产放荡av国产精品 | 91精品国产综合久久久密闭 | 亚洲国产精品第一页 | 人妻有码av中文字幕久久琪 | 九九视频免费在线观看 | 九一在线观看免费高清视频 | 国产拍拍拍无码视频免费 | 蜜桃av入口 | 久久综合桃花 | 强乱中文字幕av一区乱码 | www视频免费在线观看 | 高清黄色一级片 | 三级精品在线 | 久久久久久久久久久高潮 | 亚洲精品无码国模 | 天天爱综合 | 久久国产成人精品国产成人亚洲 | 人妻熟女αⅴ一区二区三区 | 女主被强啪的动漫视频 | 91黄色在线视频 | 欧美成人午夜激情 | 激情综合婷婷丁香五月情 | 韩国av片永久免费 | 久久国产网 | 日韩欧美一区二区三区四区 | 日韩精品欧美精品 | 国产一卡2卡3卡四卡精品国色无边 | 超碰在线视屏 | 伊人色综合久久天天网 | 免费h动漫无码网站 | 中文字幕肉感巨大的乳专区 | 99久久精品费精品国产 | 最近2019中文字幕大全第二页 | 天堂资源在线播放 | 国产在线精品视频免费观看 | 欧美日韩一线 | 国产日韩在线时看高清视频 | 国产人妻精品久久久久野外 | 久久精品国产曰本波多野结衣 | 欧美三级又粗又硬 | 狠狠艹狠狠干 | 亚洲情xo亚洲色xo无码 | 性旺盛的老女人 | 女人被黑人躁得好爽视频 | 国产69成人精品视频免费 | 樱花草在线播放免费中文 | 免费观看啪啪黄的网站 | 国产人与禽zoz0性伦 | 成年女人毛片免费视频 | 亚洲成人福利在线 | 久久成人高清 | 视频一区二区无码制服师生 | 亚洲国产av一区二区三区四区 | 亚洲精品av中文字幕在线 | 中文字幕乱码熟妇五十中出 | 国产精品九色 | 中文字幕 乱码 中文乱码视频 | 精品国产第一页 | 国产99视频精品免费视频36 | 亚洲精品福利视频 | 国产精品久久久天天影视 | 天天鲁一鲁摸一摸爽一爽视频 | 亚洲国产丝袜在线观看 | 97在线观看永久免费视频 | 无码h黄肉动漫在线观看网站 | 久久久九九精品国产毛片a片 | 中文字幕无码家庭乱欲 | 免费人成精品欧美精品 | 美女视频黄免费 | 狠狠色狠狠色综合网 | 男人猛戳女人30分钟视频大全 | 欧美一区二区三区综合 | 免费天堂无码人妻成人av电影 | 黑人巨大亚洲一区二区久 | 日本一区二区三区精品福利视频 | 日本免费一区二区三区视频观看 | sm久久捆绑调教精品一区 | 国产男女精品视频 | 亚洲精品蜜桃 | 美女夜夜爽| 天堂视频免费看 | 国产网曝门亚洲综合在线 | 成人国产免费 | 成人高潮片免费视频 | 欧美肥老太牲交大战 | 国产三级久久久久 | 精品亚洲永久免费精品 | 欧美xxxxx高潮喷水麻豆 | 日韩在线观看视频一区二区 | 欧美一区二区三区视频在线观看 | 色哟哟国产精品免费观看 | 少妇无码太爽了不卡视频在线看 | 欧美99久久精品乱码影视 | 亚洲日本韩国 | 蜜桃色永久入口 | 桃色成人网| 免费看美女网站入口在线观看 | 欧美伊香蕉久久综合网99 | 国产热99| 最新国产久免费视频在线观看 | 国产夫妻久久 | 日本大胆人体视频 | 中文无码精品一区二区三区 | 久久久久久久久久久久久久av | 久久久97| 国产精品99久久久久久久 | 97超碰碰碰 | 国产欧美日韩视频在线观看 | 国产成人精品av久久 | 欧洲吸奶大片在线看 | 久草最新| 男女爽爽午夜18污污影院 | 91国在线视频 | 亚洲高清毛片一区二区 | 美女扒开奶罩露出奶头视频网站 | 少妇荡乳| 中国大陆精品视频xxxx | 一区二区三区午夜无码视频 | 超碰伊人久久大香线蕉综合 | 手机av在线免费观看 | 一边啪啪一边呻吟av夜夜嗨 | 国产成人精选视频在线观看 | 国产视频不卡一区 | 成人亚洲欧美激情在线电影 | 久久综合亚洲色hezyo国产 | 激情图区在线 | 国产又粗又黄又大 | 亚洲色图50p | 国产精品青草久久久久婷婷 | 色综合天天网 | 亚洲欧美中文高清在线专区 | 亚洲人成网站观看在线播放 | 老汉av| 秋霞中文字幕 | 在线黄色大片 | 伊人久久无码中文字幕 | 正在播放熟妇群老熟妇456 | 亚洲伊人中文字幕 | 精品www久久久久奶水 | 国产精品午夜福利在线观看地址 | 亚洲免费永久精品 | 伊人久久婷婷色综合98网 | 欧洲成人在线 | 国产人妖在线播放 | 丰满的少妇xxxxx青青青 | 久草青娱乐 | 无码中文字幕乱在线观看 | 亚洲精品美女在线观看 | 九九热影院| 亚洲精品美女视频 | 亚洲一卡二新区乱码绿踪林 | 精品无码国产污污污免费网站国产 | 亚洲成av人片天堂网无码 | 无码三级av电影在线观看 | 国产乱人伦偷精品视频免下载 | 夜夜嗨av涩爱av牛牛影视 | 日本高清视频www夜色资源 | 久久精品无码精品免费专区 | 少妇又紧又色又爽又刺激视频 | 无码va在线观看 | 亚洲国产精品毛片 | 综合久久久久综合 | 日韩免费播放 | 九九午夜| 国精品无码一区二区三区在线a片 | 苍井空第一次激烈高潮视频 | 99色这里只有精品 | 丁香婷婷综合久久来来去 | 欧洲影院 | 欧美另类v | 无码人妻品一区二区三区精99 | 国产又色又爽又刺激在线观看 | 欧美伊人网 | 97国产精品视频在线观看 | 少妇下蹲露大唇无遮挡 | 人人鲁人人莫人人爱精品 | 少妇做爰免费视频了 | 潮喷大喷水系列无码视频 | 99亚洲精品自拍av成人 | 亚洲男女天堂 | 人人cao | 在线观看av中文字幕 | 噜噜噜久久亚洲精品国产品小说 | 无码精品不卡一区二区三区 | 日韩a片无码一区二区三区电影 | 天天爽天天色 | 国产精品露脸国语对白 | jzzijzzij亚洲成熟少妇18 久久亚洲成人av | 爱插综合网| 另类天堂网不卡另类系列 | 黄大色黄女片18第一次 | 天天干天天操天天干 | 欧洲av影院 | 久久久国产99久久国产久麻豆 | 巨爆乳无码视频在线观看 | 国产色在线观看 | 国产精品成熟老妇女 | 亚洲精品综合第一国产综合 | 久久精品人人做人人综合 | 国产高欧美性情一线在线 | 国产九色porny | 国产精品自在拍一区二区不卡 | 成人亚洲国产精品一区不卡 | 国产精品尤物 | 精品一区二区三区香蕉蜜桃 | 午夜福利国产成人无码gif动图 | 日本久热| 亚洲男人的天堂av手机在线观看 | 99久久精品费精品国产 | 国产超碰人人爽人人做 | 日本欧美一区二区免费视频 | 午夜中文字幕 | 亚洲性猛交 | 亚洲性色成人av天堂 | 精品精品国产欧美在线 | 久久频这里精品99香蕉 | 男人撒尿视频免费网站 | 国产精品无码久久久久久久久久 | 欧美又黑又粗 | 韩日视频在线观看 | 亚洲欧美成人一区二区三区在线 | 国语自产精品视频在线30 | 亚洲毛片不卡av在线播放一区 | 春色校园综合人妻av | 慈禧一级淫片91 | 蜜臀性色av免费 | 久久精品视频在线观看 | 成 人 a v免费视频在线观看 | 国内外成人免费视频 | 高h禁伦餐桌上的肉伦水视频 | 欧美日韩中文字幕在线 | 一区二区乱子伦在线播放 | 五月婷婷视频在线观看 | 亚洲三级在线观看 | 亚洲精品视频网 | 日本的黄色一级片 | 国产精品拍国产拍拍偷 | 国产精品日日做人人爱 | 精品无码国产一区二区三区av | 9797在线看片亚洲精品 | 全黄h全肉边做边吃奶视频 久久国产精品无码hdav | 性开放天体www偷拍 午夜偷拍福利视频 | 国产av高清怡春院 | 国产丝袜一区二区在线 | 色版视频在线观看 | 天天色宗合 | 九九在线中文字幕无码 | 国产偷v国产偷v亚洲高清 | 香蕉久久a毛片 | 午夜免费精品 | 日韩中文字幕久久 | 色视频在线免费 | 欧美色欧美亚洲另类七区 | 在线观看中文字幕2021 | 亚洲美女撒尿毛茸茸 | 无码人妻丰满熟妇区五十路百度 | 性色惰影片xxx | 久草色视频 | 9999精品免费视频 | 自偷自拍亚洲综合精品第一页 | 亚洲日本欧美日韩高观看 | 久久中文字幕人妻熟女凤间 | 国产婷婷一区二区三区久久 | 久久伊人精品中文字幕有软件 | 欧美亚洲国产精品久久高清 | 亚洲精品2区 | 亚洲精品中文字幕在线 | 精品国产18久久久久久二百 | 久久国产中文娱乐网 | 中文字幕第一页永久有效 | 91精品又粗又猛又爽 | 日本一级待黄大片 | 亚洲欧美va天堂人熟伦 | 国产视频一区二区三区在线观看 | www.日日日.com| 国产乱色国产精品免费视频 | 不卡无码人妻一区二区三区 | 国产欧美日韩精品a在线观看 | 亚洲精品蜜夜内射 | 国产一区二区三区自产周晓琳 | 91在线视频国产 | 欧洲美女黑人粗性暴交视频 | 国产性生交xxxxx无码 | 久久爱资源网 | 日日操影院 | 国产欧美一区二 | 国产丰满精品伦一区二区三级视频 | a天堂中文网 | 免费国产在线精品一区二区三区 | 欧美在线观看免费专区 | 人人爽天天碰天天躁夜夜躁 | 久久av综合网 | 天堂资源最新版官网 | 国产高清视频在线观看97 | 久久精品国产再热青青青 | 国产区h | 无遮无挡爽爽免费视频 | 人人妻人人澡人人爽精品日本 | 国产精品又黄又爽又色无遮挡 | 成人无码看片在线观看免费 | 天天干天天操天天爱 | 少妇爆乳无码专区网站 | 欧美熟妇另类久久久久久多毛 | 亚洲人成网站在线播放影院在线 | 无码啪啪熟妇人妻区 | 国偷自产一区二区三区在线视频 | 国产精品自在在线午夜蜜芽tv在线 | 伊人9| 国产重口老太和小伙乱 | 18禁超污无遮挡无码网址极速 | 国产精品爽爽久久久久久豆腐 | 久久久久国产一区二区三区 | 亚洲精品久久久无码av片软件 | 在线欧美成人 | 激情欧美成人 | 国产二级一片内射视频播放 | 秋葵视频成人 | 欧美激情精品久久久久久免费 | 天天躁日日躁狠狠躁退 | 欧美人体一区二区视频 | 色综合久久网 | 377p日本欧洲亚洲大胆张筱雨 | www.爱色av.com| 伊人久久大香线蕉精品 | 欧美,日韩,国产精品免费观看 | 4虎影院在线观看 | 亚洲人成网站18禁止大 | 国产网站在线 | 一级做a视频在线观看 | 亚洲2017天堂色无码 | 日韩字幕在线 | 九九热精品视频 | av在线激情 | 在线欧美日韩 | 国产精品日韩av | 日韩精品久久久久久久电影蜜臀 | 国产高清中文手机在线观看 | 婷婷色香五月综合激激情 | 一级片网站视频 | 久久激情网 | 欧美大胆性生活 | 天天做天天爱天天要天天 | 老子要把你cao烂h调教视频 | 国产美女精品视频线播放 | 国产噜噜噜 | 国产日产亚洲系列最新美使用方法 | 免费裸体美女网站 | 色综合久久久久久 | 国产又大又黑又粗免费视频 | 中文字幕一区二区三区中文字幕 | 88久久精品无码一区二区毛片 | 在线观看av不卡 | 久久五月婷婷丁香 | 国产91丝袜在线播放九色 | 色天天天综合色天天 | 人人妻人人澡人人爽人人精品 | 欧美色视频一区二区三区在线观看 | 久久国产影视 | 亚洲图片欧美在线 | 羞涩的丰满人妻40p 夜夜爽久久精品91 国产精品91在线 | 性色av一区二区三区红粉影视 | 日本亚洲高清 | 国产精品二区三区 | 偷拍亚洲综合 | 少妇挑战黑人高潮惨叫 | 婷婷综合缴情亚洲狠狠小说 | 国精产品999国精产 波多野结衣久久精品 | 成人性生交免费看 | 超色视频 | 亚洲伊人色综合网站小说 | 欧美一区二区在线观看 | 人妻 校园 激情 另类 | 日本人的色道视频 | 激情av综合网 | 欧美日韩视频免费观看 | 日韩久久一区 | 欧美午夜精品理论片 | 97精品一区二区 | 亚洲精品视频播放 | 真实国产乱子伦对白视频 | www.xxxx欧美 | 国产熟女一区二区三区五月婷 | 国产成人精品免费视频网页大全 | 在教室伦流澡到高潮h麻豆 伊人网成人 | 国产精品亚洲а∨天堂网 | 亚洲国产精久久久久久久 | 挺进朋友人妻雪白的身体韩国电影 | 精品无码久久久久久久久久 | 天天av网 | 欧美午夜久久 | 韩国久久久久久 | 手机成亚洲人成电影网站 | 97av在线播放| 中文无码一区二区不卡av | 久久香综合精品久久伊人 | www.一区二区三区在线 | 欧洲 | 国产精品人妻熟女男人的天堂 | 国产日韩欧美亚洲 | 污导航在线观看 | 91成人精品国产刺激国语对白 | 深夜视频免费在线观看 | 国产美女在线精品免费观看 | 亚洲第一视频在线观看 | 久久久久久人妻毛片a片 | 真人啪啪高潮喷水呻吟无遮挡 | 国产午夜鲁丝片av无码免费 | 亚洲中文字幕无码永久在线不卡 | 色欲av永久无码精品无码蜜桃 | 动漫美女露胸网站 | 日韩亚洲欧美综合 | 国产主播av福利精品一区 | 久久久高清 | 黑人巨大精品欧美一区二区小视频 | 国产成人无码久久久精品一 | 国产综合一区二区三区黄页秋霞 | 五月天中文字幕 | 国产成人乱色伦区 | 国产成人综合在线观看 | 日日碰狠狠躁久久躁 | 国产一区,二区 | 久久人人做| 99夜夜| 国产欧美日韩91 | 欧美日韩成人一区二区在线观看 | 国产一区二区三区美女 | 色午夜日本高清视频www | 少妇搡bbbb搡bbb搡我瞎了 | 男女啪啪高潮激烈免费版 | 自拍视频一区二区 | 久久久亚洲麻豆日韩精品一区三区 | 97国产精华最好的产品 | av黄色成人| 99久久精品免费看国产免费粉嫩 | 夜夜草av | 日韩黄色免费看 | 韩国所有三级艳星列表 | 91丨porny丨国产| 夜夜高潮次次欢爽av女 | 疯狂做受xxxx高潮视频免费 | 日韩一级在线播放 | 亚洲高清乱码午夜电影网制服 | 欧美有码在线观看 | 影视先锋男人无码在线 | 99热久久这里只精品国产www | 在线精品无码字幕无码av | 无码人妻出轨黑人中文字幕 | 午夜伦理片 | 亚洲熟女乱综合一区二区在线 | 亚洲99影视一区二区三区 | 明星乱亚洲 | 欧美日韩成人一区二区三区 | sm久久捆绑调教精品一区 | 色综合网天天综合色中文 | 在线观看无码不卡av中文 | 国产精品妇女一二三区 | 精品99久久久久久 | 天天干人人 | 久久久久久久久97 | 国产一区二区三区 韩国女主播 | 全部露出来毛走秀福利视频 | 狠狠操狠狠操狠狠操 | 日韩精品无码二三区a片 | 脱了美女内裤猛烈进入gif | 日产精品入口 | 人人妻人人妻人人妻碰碰 | 国产片a国产片免费看视频 天天操天天插 | 91热久久 | 欧美一级特黄aaaaaa在线看片 | 色www永久免费视频首页在线 | 欧美毛片视频 | 国内极度色诱视频网站 | 久久久久久亚洲综合影院 | 97视频在线看| 中文字幕日本免费毛片全过程 | 啪啪啪毛片 | 激情欧美一区二区三区黑长吊 | 亚洲精品456在线播放牛牛影院 | 亚色中文字幕 | 国产精品久久久久久久久久精爆 | 欧美一区二区三区在线观看 | 丰满少妇熟乱xxxxx视频 | 黄色国产视频网站 | 国产在沙发上午睡被强 | 国产成a人亚洲精v品无码性色 | 无码国产成人午夜视频在线播放 | 成人亚洲a片v一区二区三区麻豆 | 成在线人免费视频播放 | 在线观看日本国产成人免费 | 精品国产精品国产自在久国产 | 国产莉萝无码av在线播放 | 国产福利无码一区二区在线 | 少妇太紧太爽又黄又硬又爽视频 | av潮喷大喷水系列无码 | 欧美狠狠入鲁的视频 | 五月天丁香色 | 蜜臀色欲av在线播放国产日韩 | 日韩欧美三级视频 | 不卡一不卡二不卡三 | 亚洲国产成人精品无色码 | 欧美国产日韩一区 | 最近日韩中文字幕中文 | 国产香蕉尹人视频在线 | 日本久久夜夜一本婷婷 | 国产成人无码精品久久久性色 | 中文字字幕 | 91嫩草国产露脸精品国产 | 日本亚洲 | 秋霞午夜鲁丝片午夜精品 | 欧美大片免费观看网址 | 久久婷婷一区 | 丁香五月激情综合亚洲 | 久热免费 | 人综合久合合 | 午夜精品一区二区三区免费 | 欧美囗交做爰视频 | 五月婷婷亚洲综合 | 亚洲天堂第一区 | 一本大道av | 五月婷婷开心中文字幕 | 中文字幕无线码成人免费看 | 亚洲 欧美 日韩 综合aⅴ电影 | 日日躁你夜夜躁你av蜜 | 蜜臀亚洲精品国产aⅴ综合第一 | 精品成人乱色一区二区 | a级毛片特级毛片 | 神马久久网 | 亚洲一区二区精品 | 四虎成人永久在线精品免费 | 亚洲国产精品国语在线 | 亚洲a在线视频 | 免费视频毛片 | 中午字幕在线观看 | 日本艳妓bbw高潮一19 | 成年人在线视频 | 18禁止进入1000部高潮网站 | 一区二区免费看视频 | 日本黄色动态图 | 琪琪电影午夜理论片八戒八戒 | 国产成人无码久久久精品一 | 永久免费无码网站在线观看 | 久久99er热精品免费播 | 女色婷婷 | 日韩福利影院 | 欧美 国产 亚洲 另类 动漫 | 国产精品久久国产精麻豆99网站 | 欧美一区二区久久 | 国产99在线 | 免费 | 国产日韩欧美视频 | 欧美第十页 | 久久精品国产福利国产秒拍 | 一区二区三区免费在线视频 | 中文无码人妻影音先锋 | 中文字幕精品三区 | 亚洲精品视频久久 | 成人av网站大全 | 午夜影院0606免费 | 午夜视频网站在线观看 | 亚洲女久久久噜噜噜熟女 | 欧美粗大猛烈老熟妇 | jizz亚洲女人 | 国产精品69av | 久久久精品网站 | 深夜小视频在线观看 | 国产一区午夜 | 欧美熟妇性xxxx欧美熟人多毛 | 精品水蜜桃久久久久久久 | 狠狠躁夜夜躁人人爽天天天天97 | 91大片在线观看 | 亚洲第一色网站 | 国产高清在线自在拍网站 | 日韩一区在线视频 | 亚洲成人77777 | 欧美三级欧美成人高清 | 91视频免费观看在线看 | 亚洲蜜桃妇女 | 精品久久久久久中文墓无码 | 亚洲天堂网在线观看 | 久久无码专区国产精品s | 免费福利影院 | 日韩人妻少妇一区二区 | 日本三级视频在线播放 | 精品无码国产日韩制服丝袜 | 中文字幕不卡在线播放 | 欧美日韩aa | 狠狠色婷婷丁香六月 | 一 级做人爱全视频在线看 夜夜嗨av一区二区三区 | 欧美二区三区四区 | 久久99国产亚洲高清观看首页 | 日本疯狂爆乳xxxx | 欧美va天堂 | 色呦呦av| 91精彩视频在线观看 | 欧美人做人爱a全程免费 | 富婆按摩av国产hd | 日本在线小视频 | 成人黄色免费小视频 | 久久久精品动漫 | 久久天天躁夜夜躁狠狠躁综合 | 久久久久9999 | 在线99视频| 少妇激情一区二区三区视频小说 | 夜夜躁狠狠躁日日躁av麻豆 | 好爽进去了视频在线观看国版 | 久久久久久亚洲综合影院 | 嫩草网页| 久久午夜色播影院 | 亚洲无吗视频在线 | 成人免费福利视频 | 国产第一页第二页 | 卡1卡2卡三卡精品视频 | 黄在线免费 | 日本免费色 | 加勒比东京热无码一区 | 亚洲丁香婷婷久久一区二区 | 欧美精品一区二区三区四区 | 国产精华av午夜在线 | 国产视频黄 | 伊人网视频 | 日韩欧美国产一区精品 | 欲妇荡岳丰满少妇岳 | 日本a v在线播放 | 欧美一区二区三区久久久 | 午夜综合网 | 亚洲欧美日韩一区在线观看 | 日本不卡不码高清免费 | 国产日韩综合一区在线观看 | 色久综合 | 欧美猛男性猛交视频 | 欧美性xxxx狂欢老少配 | 久久久国产精品麻豆a片 | 狠狠干b | 欧美一级乱黄 | 色婷婷综合久久中文字幕雪峰 | 中文字幕一区二区三区久久蜜桃 | 国产成人在线免费观看视频 | 成年人黄色在线观看 | 国产精品无码天天爽视频 | 97久久精品国产一区二区三区 | 亚洲成在人线在线播放无码 | 男女猛烈激情xx00免费视频 | 国产成人精品成人a在线观看 | 一区三区在线专区在线 | 国产精品爆乳奶水无码视频 | 亚洲中文字幕久久精品无码喷水 | 中文字幕1区 | 伊人干综合 | 四虎永久在线精品免费网址 | 成在人线av无码免费看网站 | 毛片a久久99亚洲欧美毛片 | 国产自愉自愉免费精品七区 | 精品无人区乱码1区2区3区在线 | 牛牛a级毛片在线播放 | 中文字幕日韩精品有码视频 | 婷婷综合亚洲 | 一性一交一口添一摸视频 | 欧美裸体xxxx极品少妇 | 伊人成人在线 | 狠狠色丁香六月色 | 一区二区三区四区在线免费观看 | 亚洲成av人片在线观看无线 | 久久青草精品一区二区三区 | 亚洲综合另类小说色区一 | 亚洲 国产 图片 | 超碰久操 | 五月婷六月丁香狠狠躁狠狠爱 | 色狠狠av北条麻妃 | 亚洲精品无码成人片久久不卡 | 91久久婷婷国产一区二区 | 337p粉嫩日本欧洲亚福利 | 色射射| 国产粗话肉麻对白 | 国产婷婷一区二区三区久久 | 国产精品乱码久久久久久软件 | 久久久久久18 | 992国产精品福利视频 | 国产又色又爽又黄的免费 | 成 人影片 免费观看在线 | 日韩不卡在线视频 | 色av色播 | 熟女人妻在线视频 | 调教驯服丰满美艳麻麻在线视频 | a吖天堂网2019| 国产成人综合久久亚洲精品 | 亚洲成a∨人片在线观看无码 | seyoyowww色哟哟 | 色人阁网站| 日韩精品一卡2卡三卡4卡 | 无码精品久久久久久人妻中字 | 97se狠狠狠狠狼鲁亚洲综合色 | 少妇精品一区二区 | 亚洲精品456在线播放第一页 | 亚洲淫片| 宅男噜噜66国产精品观看 | 夜色视频在线观看 | 性刺激的大陆三级视频 | 欧美高大丰满少妇xxxx | 影音先锋成人资源网站 | 91精品国产91久久综合桃花 | 免费成人黄色片 | 男人扒开女人双腿猛进免费视频 | 欧美国产亚洲日韩在线二区 | 中文字幕高清免费日韩视频在线 | 欧美人妻少妇精品久久黑人 | 久艹视频免费看 | 欧洲色影院 | 久久精品国产只有精品96 | 黑人巨大精品欧美一区二区免费 | 亚洲欧美另类久久久精品能播放的 | 激情综合色综合啪啪五月丁香搜索 | 中文字幕漂亮人妻熟睡中被公侵犯 | 亚洲第6页 | 天堂√| 欧美日韩久| 亚洲精品区午夜亚洲精品区 | 国产免费无遮挡吃奶视频 | 国产精品一线 | www.久久爱.com狼人 | 日本精品999| 美女国产精品视频 | 妺妺窝人体色www在线观看 | 国产乱码精品一区二区三区亚洲人 | 午夜一区二区三区四区 | 亚洲精品国产综合久久一线 | 久久se精品一区精品二区国产 | 天天干天天做 | 久久丫亚洲一区二区 | 国产成人喷潮在线观看 | 另类ts人妖一区二区三区 | 中文字幕无码精品三级在线电影 | 国产黄色小网站 | 久久久www. | 久久99精品久久久久久9蜜桃 | 亚洲va久久久噜噜噜久久4399 | 色喜国模李晴超大尺度 | 亚洲网在线 | 免费av中文字幕 | 国产aⅴ夜夜欢一区二区三区 | 黄色av网站在线 | 99国产在线视频 | 小草av在线 | 日韩无砖专区2021嘟嘟网 | 美女张开腿喷水高潮 | 韩国美女主播娇喘乳奶摇 | 天堂а在线中文在线新版 | 一区不卡视频 | 强行18分钟处破痛哭av | 久草在线视频中文 | 天天综合一区 | 国产日产欧美一区二区三区 | 玩丰满熟妇xxxx视频 | 成人中文字幕视频 | 丝袜在线视频 | 99久久无码一区人妻a黑 | 大战熟女丰满人妻av | 国产精品国产免费无码专区不卡 | 久久久久无码精品亚洲日韩 | 一区二区福利视频 | 97精品超碰一区二区三区 | caoporn国产一区二区 | 中文字幕乱码人妻一区二区三区 | 国产亚洲欧美日韩在线一区二区三区 | 欧美一区二区成人 | 国产资源在线免费观看 | 亚洲自拍偷拍网 | 噜噜色综合噜噜色噜噜色 | 日本黄色大片免费 | 精品亚洲国产成人a片app | 1688成人免费视频观看 | 丝袜自慰一区二区三区 | 成人妇女免费播放久久久 | 4虎av| 欧美性色黄大片a级毛片视频 | 国产丰满大乳奶水在线视频 | 最新无码a∨在线观看 | 中文字幕久久999及 99国产在线视频有精品视频 | 少妇太爽了在线观看免费视频 | 美国成人在线 | 中出乱码av亚洲精品久久天堂 | 亚洲精品国产精品乱码不卡√香蕉 | 一区二区亚洲 | 99热这里只有精品7 无码任你躁久久久久久老妇蜜桃 | 中国一级黄色毛片 | 欧洲熟妇色xxxx欧美老妇软件 | 国产精品对白交换视频 | 久久免费香蕉视频 | www.91tv| 天堂在线最新版www中文 | 日韩精品福利在线 | 久久综合亚洲欧美成人 | 欧美另类性 | 精品国产一区二区三区av孞弋 | 久久橹 | 黑人巨大无码中文字幕无码 | 亚洲国产一区二区三区在线观看 | 毛片免费全部播放无码 | 国产精品99999 | 国产又黄又湿无遮挡免费视频 | 欧美大片c片免费看视频 | 久久久久九九九九九 | 无码人妻精品一区二区三区99不卡 | 亚洲精品黄色片 | 四虎com| 国产成人61精品免费看片 | 久久人人看 | 亚洲一区二区三区影院 | 国产色情又大又粗又黄的电影 | 波多野结衣视频一区二区 | 国产成人精品综合 | 日本高清一区二区三 | 91精品一区二区三区蜜臀 | 91精品国产综合久久蜜臀 | 羞羞答答一区 | 国产啪精品视频网站免费尤物 | 一级做性色a爱片久久毛片欧 | 欧美小视频在线 | 天天综合91| 亚洲精品欧洲精品 | 国产精品日韩专区第一页 | q2002日韩午夜伦高清 | 日日天干夜夜人人添 | 天天天天天天干 | 国产精品久久久乱弄 | 日韩精品久久一区二区三区 | 男人天堂新地址 | 天天干天天草天天射 | 日日碰日日摸 | aaa人片在线| 亚洲va国产日韩欧美精品色婷婷 | 成人无码视频在线观看大全 | 免费看的av片 | 亚洲国产熟妇无码一区二区69 | 午夜视频在线观看网站 | 国产成人一区二区三区免费视频 | 91精品国产91久久久久福利 | 国产视频1区2区 | 久久久无码精品亚洲日韩蜜臀浪潮 | 99爱国产精品免费高清在线 | 谁有毛片网站 | 免费精品一区二区三区视频日产 | 亚洲伊人久久综合网站 | 亚洲欧洲日韩国内高清 | 成人无码影片精品久久久 | 午夜精品一区二区三区aa毛片 | 全亚洲最大的免费影院 | 新久小草在线 | 久久精品97 | 国产亚洲精品久久久久久彩霞 | 日本高清色倩视频在线观看 | 成人午夜亚洲精品无码网站 | 国产精品制服丝袜白丝 | 久久综合九色综合97网 | 色偷偷一区二区无码视频 | 久久伊人免费 | 激情综合色五月丁香六月亚洲 | 亚洲国产欧美中文丝袜日韩 | 国产二级一片内射视频播放 | 国内精品久久精品中文久久婷婷 | 一本一本久久a久久精品综合不卡 | 欧美精品videossex另类日本 | 日韩av片网站 | 亚洲人成网站色www 国产又粗又猛又爽的免费网站 | 亚洲精品无码久久久久y | 中文字幕欧美日韩精品 | 中文字幕日韩一区二区不卡 | 日本天天黄网站 | 特黄aaaaaaaaa真人毛片 | 麻豆一二三区av传媒 | 超碰碰97 | 懂色av粉嫩av蜜乳av | 999国内精品永久免费观看 | www.com操| 久久疯狂做爰xxxⅹ高潮直播 | 日本人成在线播放免费课体台 | 97久久精品人人做人人爽 | 99九九视频 | 欧美性战a久久久久久 | www.激情 | 久久久精品久久日韩一区 | 欧美日韩中文亚洲 | 午夜天堂精品 | 人妻无码久久精品人妻 | aa性欧美老妇人牲交免费 | 小辣椒福利视频导航 | 青青草无码精品伊人久久蜜臀 | 人操人| 亚洲色成人一区二区三区 | 人人爽人人澡人人高潮 | 国产亚洲欧美一区二区三区在线播放 | 久久精品天天中文字幕人妻 | 欧av在线| 在线观看国产日韩亚洲中 | 动漫无遮挡羞视频在线观看 | 久久无毛 | 亚洲网在线观看 | 九九视频免费在线观看 | 欧美另类交人妖 | 欧美亚洲日韩在线在线影院 | 国产做受视频在线观看 | 偷柏自拍亚洲综合在线 | 狠狠色丁香九九婷婷综合 | 日本熟妇色一本在线看 | 17c在线 | 精品欧美一区二区三区精品久久 | 国产专区在线播放 | 久精品国产欧美亚洲色aⅴ大片 | 精品国产一区二区三区四区四 | 好爽插到我子宫了高清在线 | 国产999精品成人网站 | 人妻少妇精品无码专区漫画 | 91看黄| 国产亚洲精久久久久久蜜臀 | 在线a| 深夜视频在线免费 | 五月激情丁香网 | 成年男人午夜片 | 日本欧美久久久 | 亚洲成av人片在线观看 | 亚洲已满18点击进入在线看片 | 人人射人人射 | 朝鲜女人大白屁股ass孕交 | а√天堂8资源中文在线 | 亚洲字幕av一区二区三区四区 | 亚洲色成人中文字幕网站 | 人人做人人爽久久久精品 | 天天操天天射天天插 | 欧美一区二区三区的 | 激情文学小说区另类小说同性 | 国产成人精品综合 | 欧美精品一区二区三 | 在线免费观看黄av | 99久久久无码国产精品动漫 | 在线亚洲+欧美+日本专区 | 伊人久久大 | 欧美日韩一二 | 国产性一乱一性一伧一色 | av在线亚洲欧洲日产一区二区 | 色悠久久久久久久综合 | 久热在线视频 | 亚洲精品乱码久久久久66 | 国精品人妻无码一区二区三区3d | 欧美xxxxxxxxxxx| 久久久久久久久久福利 | 成人国产精品一区二区免费看 | 成年人看的毛片 | 在线干| 在线观看免费黄网站 | 男女啪啪抽搐呻吟高潮动态图 | 国产精品美女www爽爽爽动态图 | 97免费人妻在线视频 | 久久久欧美国产精品人妻噜噜 | 精品亚洲成a人片在线观看 国产女人高潮大叫a毛片 | 成人免费视频小说 | 日产幕无线码三区在线 | 久久久九九精品国产毛片a片 | 精品国产一区二区三区四区精华液 | 超碰中文字幕在线 | 黄色片视频在线观看 | 国产一区二区www | 亚洲成a人片77777群色 | 日本少妇的性生活 | 一区二区三区精品在线观看 | 久久久精品成人免费观看国产 | 欧美一级特黄免费 | 亚洲黄色片网站 | 中文字幕一区二区三区免费 | 久久久久99精品成人片 | 欧美牲交a欧美牲交aⅴ免费真 | 一级特黄aa大片欧美 | 国产精品无码专区在线播放 | 少妇精品揄拍高潮少妇 | 国产69精品久久久久观看软件 | 国产精品久久久久9999无码 | 日本a v在线播放 | 久久精品三级视频 | 国产内射爽爽大片视频社区在线 | 亚洲成年人 | 国产福利在线视频蜜芽tv | 久久www免费人成看片高清 | 三级日本高清完整版热播 | 国产精品爽爽久久久久久豆腐 | а√天堂中文在线资源8 | 亚洲人成在线免费观看 | 日韩特黄一级欧美毛片特黄 | 国产精品入口免费软件 | 午夜无码乱码在线观看 | 亚洲精品无码日韩国产不卡av | 亚洲精品一区二区三区蜜臀 | 天天av天天好逼 | 亚洲第一福利网站在线观看 | 日韩在线一二三区 | 夜夜狠狠擅视频 | 最新国产精品亚洲 | 国产精品高潮久久久久 | 久久亚洲成人av | 天堂а√在线中文在线鲁大师 | 亚洲一区二区三区丝袜 | 黄色动漫网站在线免费观看 | 午夜亚州 | 一区二区视频传媒有限公司 | 久久精品免费 | 亚洲精品1| 男人亚洲天堂 | 久久久久久久极品内射 | 国产精品乱码一区 | 国内精品一区二区三区在线观看 | 亚洲精品tv久久久久久久久久 | 午夜精品久久久久久久99 | 国产产在线精品亚洲aavv | 亚洲女同视频 | 国产 日韩 欧美 自拍 | 国产精品久久久久久欧美 | 午夜成人性刺激免费视频在线观看 | 中文字幕一二三区波多野结衣 | 国产视频第二页 | 国产精品福利自产拍久久 | 538国产视频 | 日本妇乱大交xxxxx | 国产亚洲精品久久久久久无 | 无码熟妇人妻av在线影片 | 亚洲国产欧美在线人成app | 在线免费看av的网站 | 偷拍第一页 | av无码人妻波多野结衣 | 亚洲欧美偷拍另类 | 亚洲精品国产熟女久久久 | 国产精品99久久久久久人 | 日本黄色片播放 | 国产黄视频网站 | 国产明星裸体无码xxxx视频 | 日日碰碰 | 亚洲国产综合精品中文第一 | 美女光屁屁无遮挡韩 | yy77777丰满少妇影院 | 狠狠人妻久久久久久综合蜜桃 | 国产成人avxxxxx在线观看 | 亚洲区av| 国产欧美一区二区视频 | 天堂一二三区 | 隔壁放荡人妻bd高清 | 日韩经典av | 九1热综合这里都是真品 | 波多在线播放 | 亚洲国产人在线播放首页 | 午夜免费啪 | 欧美性白人极品hd | 久久一视频 | 老司机免费的精品视频 | 日韩版在线看免费 | 日韩污污 | 国产一区二区三区久久精品 | 99r| 青在线视频 | av亚洲产国偷v产偷v自拍小说 | 久久久久爽人综合网站 | 久久久久四虎精品免费入口 | 囯产精品一品二区三区 | 在线综合亚洲中文精品 | 成人激情视频网站 | 亚洲色欲色欲www在线看小说 | 中文在线中文资源 | 岛国av片在线观看 | 天堂久久精品忘忧草 | 学生粉嫩无套白浆第一次 | 国产精品刘玥久久一区 | 欧美mv日韩mv国产网站 | 国产精品亚洲片在线观看不卡 | 亚洲男女啪啪 | 亚洲精品天堂成人片av在线播放 | 插插插精品亚洲一区 | 精品99在线 | 丁香美女社区 | 成人一区二区三区视频在线观看 | 偷拍25位美女撒尿视频在线观看 | 男女啪祼交视频 | 久久综合精品国产二区无码 | 欧美亚洲另类视频 | 免费又色又爽又黄的成人用品 | 秋霞鲁丝片一区二区三区 | 天天射日日操 | 亲胸揉屁股膜下刺激视频免费网站 | 国产对白自拍 | 台湾午夜a级理论片在线播放 | 91成人综合 | 永久免费观看的毛片手机视频 | 青青草国产精品人人爱 | 日本免费黄色 | 亚洲欧美日韩国产综合 | 中文字幕四区 | 三级全黄的视频在线观看 | 亚洲精品一区二区三区h | 伊人久久精品无码麻豆一区 | 国产乱妇乱子在线播放视频 | 亚洲精品美女久久久 | 天堂网2021最新天堂手机版 | 在线播放国产精品 | 欧美精品乱码久久久久久按摩 | 国产福利萌白酱精品tv一区 | 国产片av国语在线观看手机版 | 亚洲国产影院av久久久久 | 久久久久夜色精品国产老牛91 | 饥渴丰满的少妇喷潮 | 国产日韩欧美精品一区二区三区 | 国产又大又黄又粗 | 粉嫩av一区二区三区四区在线观看 | 97碰碰视频| 久久国产精品福利一区二区三区 | 五月天狠狠干 | 水蜜桃亚洲一二三四在线 | 日韩欧美在线一区二区 | 欧美日韩国产色综合视频 | 日韩精品免费一线在线观看 | 四虎影院永久 | 国产精品午夜片在线观看 | 悠悠色综合 | 五月天91 | 亚洲精品第一国产综合麻豆 | 亚洲综合色一区 | 日本不卡久久 | 亚洲精品国产精品国自产观看浪潮 | 精东影业精东传媒av | 日韩欧群交p片内射中文 | 欧美日韩激情一区 | 中文一区在线 | 欧美偷拍一区二区三区 | 狠狠色噜噜狠狠狠狠69 | 欧美日韩第二页 | 猫咪av最新网址 | 丁香色欲久久久久久综合网 | av午夜激情| 国产精品久久久国产盗摄蜜臀 | 久久免费视频在线 | 免费国产污网站在线观看15 | 亚洲一区 日韩精品 中文字幕 | 一道久久爱综合久久爱 | 欧美性猛交99久久久久99按摩 | 在线国产观看 | 国产精品福利在线观看无码卡一 | 老熟妇性老熟妇性色 | 丁香激情综合久久伊人久久 | 久久人人爽人人爽人人 | 亚洲精品国产精 | 人人天天操 | 国产成人a在线观看网站站 久久久中文字幕日本无吗 欧美xxxx做受欧美人妖 | 蜜臀久久精品99国产精品日本 | 国产精品成人影院在线观看 | 精品视频在线观自拍自拍 | 欧美亅性猛交内射 | 四虎国产精品永久入口 | www中文在线| 无码免费无线观看在线视频 | 丁香六月婷婷开心婷婷网 | 两性色午夜免费视频 | 久久精品国产99精品国产2021 | 亚洲图片日本视频免费 | 日韩综合精品 | 免费无码影视在线观看mov | 国产在线观看www污污污 | 99精品久久久久久久免费看蜜月 | 欧美成人三级在线视频 | 少妇啊灬啊别停灬用力啊免费视频 | 久久精品视频免费 | 免费看又黄又爽又猛的视频 | 久草a在线 | 久久精品一区二区三区中文字幕 | 精品国产久九九 | 大地资源在线播放观看mv | 99热在线精品免费全部 | 久久精品超碰 | 蜜桃视频插满18在线观看 | 中国女人一级片 | 最新精品露脸国产在线 | 美女张开腿让男人桶爽 | 久久中文字幕精品 | 99精品国产免费 | 夜夜艹天天干 | 日韩一区二区久久 | 亚洲国产欧美另类 | 99久热国产精品视频尤物 | 成人性欧美丨区二区三区 | 内射中出无码护士在线 | 色综合久久一区二区三区 | 2020年无码国产精品高清免费 | 国产精品自产拍在线观看花钱看 | 欧美91精品久久久久国产性生爱 | 狠狠躁18三区二区一区 | 五月久久综合蜜桃一区 | аⅴ资源天堂资源库在线 | 亚洲伦理在线播放 | 亚洲视频手机在线 | 黄色av免费网站 | 一级特黄色大片 | 人妻av综合天堂一区 | 人与人性恔配视频免费 | 亚洲αⅴ无码乱码在线观看性色 | 午夜美女av| 亚洲激情小视频 | 97久久精品人人澡人人爽缅北 | 伊人精品无码一区二区三区电影 | 国产一区二区综合 | 骚虎av在线网站 | 国产成人久久久精品二区三区 | 日韩av在线播放网址 | 久久久久久久香蕉 | 浓毛欧美老妇乱子伦视频 | 超碰人人澡 | 69色综合 | 日韩美女视频影院在线播放 | 日日摸夜夜添夜夜添一区二区 | 人成免费在线视频 | 亚洲精品一品区二品区三品区 | 寡妇亲子伦一区二区三区四区 | 蜜桃av麻豆av果冻传媒 | 日韩欧美亚洲一区二区 | 亚洲天堂国产 | 内射中出无码护士在线 | 日本japanese极品少妇 | 国内精品久久久久久中文字幕 | 亚洲人成在线观看 | 亚洲国产精品毛片av不卡在线 | 黄色激情小说视频 | 婷婷色综合视频在线观看 | 精产嫩模国品一二三区 | 免费国产黄网站在线观看视频 | 精品国产粉嫩内射白浆内射双马尾 | 少妇爆乳无码专区av无码 | 66lu国产在线观看 | av视屏| 91精品国产成人www | 成年人午夜影院 | 奇米影视第4色 | 少妇伊人| 精品人妻av一区二区三区 | 国产永久视频 | 色老大网站 | 九九九精品成人免费视频小说 | 国产成人在线视频 | 黄色在线免费播放 | 亚洲成av人片在线观看天堂无码 | 亚洲精品乱拍国产一区二区三区 | 伊人中文在线 | 牛牛在线视频 | 麻豆国产av剧情偷闻女邻居内裤 | 一区二区三区中文字幕在线 | 欧美一区二区三区四区五区 | a级大胆欧美人体大胆666 | 亚国产亚洲亚洲精品视频 | 男人天堂tv| 精品一区二区三区四区外站 | 免费久久人人香蕉av | 中文字幕毛片 | 国产精品一区久久 | 欧美大胆性生话 | 日韩污污 | 人妻系列无码专区无码中出 | 久一视频在线 | 在线观看国产黄色 | 欧美日韩精品人妻狠狠躁免费视频 | 久久妻| 国99精品无码一区二区三区 | 久久中文精品无码中文字幕下载 | 精品国精品国产自在久国产87 | 日本一区不卡在线观看 | 男人女人做爽爽18禁网站 | 18禁黄久久久aaa片广濑美月 | 美日韩视频 | 99久久综合狠狠综合久久aⅴ | 毛片av在线观看 | 天天色快播 | 男人打飞出精视频无码 | 午夜福利午夜福利1000 | 欧美 日韩 国产 成人 在线 91 | 青青青国内视频在线观看软件 | 成年女人午夜毛片免费视频 | 一本一本大道香蕉久在线精品 | 韩国一区二区视频 | 国产精品苏妲己野外勾搭 | 欧美成人aa | 成人a大片在线观看 | 成人午夜免费在线 | 在线观看美女视频免费看 | 天堂最新版资源网 | 中文字幕乱码一区av久久不卡 | 午夜视频免费在线观看 | 久久综合国产精品 | 日韩久久色| 亚洲精品无码久久久久去q 国产亚洲精久久久久久无码77777 | 无码午夜福利免费区久久 | 国自产拍偷拍福利精品免费一 | 日本一区网站 | 91网址在线观看 | 九色porny丨精品自拍视频 | 日本最新一区 | 夜夜夜夜bbbbbb欧美 | 亚洲中文字幕无码卡通动漫野外 | 久久精品系列 | 丰满大乳一级淫片免费播放 | 国产成 人 综合 亚洲奶水 | 色舞月亚洲综合一区二区 | 激情www| 97婷婷大伊香蕉精品视频 | 日本韩国欧美中文字幕 | 亚洲丁香婷婷久久一区二区 | 国产夫妻久久 | 亚洲欧美成人中文日韩电影网站 | 国产一区二区三区黄 | 香蕉网在线视频 | 免费毛片网站 | 日韩在线观看一区二区 | 亚洲情趣 | 全亚洲最大的免费影院 | 欧美人成网站 | 欧美大片在线看免费观看 | 亚洲美女视频高清在线看 | 欧美肥胖老太vidio在线视频 | 色播亚洲视频在线观看 | 在线免费av播放 | aa国产| 国产亚洲va天堂va777 | 沙奈朵狂揉下部羞羞动漫 | 亚洲青草| 人妻在卧室被老板疯狂进入 | 亚洲大色网 | 成年女人午夜性视频 | 国产操视频 | 九九视频国产 | 米奇777四色精品人人爽 | 在线观看免费毛片 | 国产又粗又猛又爽69xx | 好紧好湿好爽免费视频 | 一级在线看 | 色喜国模李晴超大尺度 | 国产91入口 | av男人的天堂在线 | 中文字幕在线观看91 | 男人天堂黄色 | 欧美精品亚洲精品日韩专区一乛方 | 无码精品a∨动漫在线观看 精品国产乱子伦 | 人妻妺妺窝人体色www聚色窝 | 91久久久久久久一区二区 | 亚洲日本va一区二区sa | 一级特黄aa大片免费播放 | 日韩激情视频一区二区 | 欧美日韩在手机线旡码可下载 | 5566成人精品视频免费 | 亚洲444kkkk在线观看 | 天天干精品 | 成人欧美一区二区三区在线湿哒哒 | 日日碰狠狠丁香久燥 | 可以直接看av的网址 | 成人免费播放视频777777 | 国内精品乱码卡一卡2卡三卡 | 国产aⅴ一区二区 | 成人在线视频一区二区 | 国产伦精品一区二区三区视频黑人 | 欧美综合影院 | 天天做日日干 | 午夜天堂 | 91亚洲乱码卡一卡二卡新区豆瓣 | 久久中文字幕免费 | 可以免费观看的av | 麻豆国产一区二区三区 | 九色网址 | 国产美女视频黄a视频免费 久久久久久久久久久久影院 | 亚洲国产精品色拍网站 | 国产明星精品无码av换脸 | 日产中文字幕在线精品一区 | 综合亚洲伊人午夜网 | 少妇人妻综合久久中文字幕 | 成熟女人特级毛片www免费 | 久久av免费这里有精品 | 无码国产精品一区二区免费模式 | 国产精品天堂avav在线观看 | 天天综合网在线观看视频 | 国模无码视频一区 | 无码免费午夜福利看片 | 巨大乳做爰视频在线看 | 久久色在线观看 | 国产性av | 国产11一12周岁女毛片 | 青青国产线免观 | 少妇性i交大片免费 | 青青草国产免费久久久下载 | av在线不卡一区 | 国产成人区 | 伊人久久大香线蕉av不卡 | 国产少妇国语对白污 | 亚洲精品无码不卡在线播放he | 天天干,天天爽 | 国产女人与公拘交在线播放 | 日韩精品在线观看一区 | 日韩一区精品 | 色约约网站 | 亚洲精品美女久久久久久久 | 国产女人视频 | 午夜一区欧美二区高清三区 | 青青草免费在线视频 | 99精产国品一二三产区在线 | 日韩va中文字幕无码电影 | 久久不见久久见免费视频下载 | 国产成人一区二区三区影院动漫 | 乌克兰性欧美精品高清 | 国产精品久久久久久久久大全 | 婷婷久久五月 | 国产欧美一区二区三区视频 | 在线免费观看毛片视频 | 五月色夜婷婷丁香琪琪 | 岛国在线无码高清视频 | 亚洲国产成人丁香五月激情 | 国产精品美女久久久浪潮软件 | 国模精品一区二区三区 | 国内精品久久久久av福利秒拍 | aaa一级黄色片 | 高潮白浆女日韩av免费看 | aa级黄色大片 | 91国偷自产一区二区三区女王 | 日韩欧美高清视频 | 国产精品久久久久久久久久久久 | 在线看a网站 | 91视频二区| 无码人妻一区二区三区免费n鬼逝 | 亚洲精品国产二区图片欧美 | 久久在线| 欧美国产成人精品 | 亚洲日本成本人观看 | 天天色综网 | 四虎国产成人精品免费一女五男 | 国产成人avxxxxx在线看 | 亚洲欧美日本国产专区一区 | 国产亚洲欧洲997久久综合 | 沈樵精品国产成av片 | 国产99视频精品专区 | 又黄又爽又高潮免费毛片 | yy1111111少妇影院光屁股 | 福利视频一区二区 | 超碰97干| 看片一区 | 毛片毛片毛片毛片毛 | 日本一本免费一区二区三区免 | 44444kk在线观看免费一级 | 精品久久精品久久 | 国产清纯白嫩初高生在线观看 | 国产成人免费网站 | 精品久久亚洲 | 佐々木あき在线中文字幕 | 亚洲午夜福利院在线观看 | 任你干在线精品视频网2 | 亚洲精品成人片在线观看 | 日本高清在线www3344 | 超碰97人人让你爽 | 欧美乱码卡一卡二卡三新区 | 日日碰狠狠躁久久躁综合小说 | 美脚の诱脚舐め脚责91 | 国产精品久久久久久久久久ktv | 玖玖综合九九在线看 | 日韩毛片在线视频x | 午夜精品久久久久久久传媒 | 少妇厨房愉情理伦bd在线观看 | 国产成人亚洲高清一区 | av男人天堂影院 | 夜夜爽天天爽 | 国产女人夜夜春夜夜爽免费看 | 99热这里有精品 | 国产高清区 | 男女真实毛片视频图片 | 久久久久成人片免费观看r 亚洲一区 国产 | 国产精品久久久久久吹潮 | 五月婷婷久久草丁香 | 99国产精品自在自在久久 | 91久久天天躁狠狠躁夜夜 | 黄色片国产 | 国产人妖在线播放 | 中文字幕奈奈美抱公侵犯 | 九九九九热 | 日韩免费在线视频观看 | 少妇做爰α片免费视频网站 | 午夜激情福利视频 | 性中国妓女毛茸茸视频 | 国产人妻精品区一区二区三区 | 天堂男人av | 欧美性色黄大片www喷水 | 欧美成人精品三级网站视频 | 午夜视频在线看 | 国产日韩av在线播放 | 亚洲色www成人永久网址 | 一级做a免费 | 手机在线免费观看av片 | 久久国产精品久久喷水 | 蜜桃91丨九色丨蝌蚪91桃色 | 青青在线精品视频 | 毛片在线免费播放 | 伊人爱爱网 | 97碰成人国产免费公开视频 | 免费无码又爽又高潮视频 | 国产高清一区二区三区四区 | www.爆操| 日韩一区欧美二区 | 九九啪 | 亚洲aⅴ天堂av天堂无码麻豆 | 国产精品免费一区二区三区四区 | 伊人一道本 | 特级黄色片 | 成 人 网 站 在 线 免费 观 看 | 成人午夜av在线 | 精品成人免费一区二区在线播放 | 精品国精品国产自在久国产应用男 | 在线中出 | ā片在线观看免费看无码 | 色综合天天综合狠狠爱 | 日本一区二区三区免费播放 | 永久免费无码日韩视频 | 婷婷射| 人人爱天天操 | 精品露脸国产偷人在视频 | 久草在线视频新时代视频 | 亚洲人人爽| 午夜美女裸体福利视频 | 欧美巨大黑人精品一.二.三 | 久久黄色网址 | 亚洲六月丁香色婷婷综合久久 | 亚洲欭美日韩颜射在线 | 日韩中文字幕视频 | 亚洲青青草原男人的天堂 | 亚洲天堂aaa | 国产97色在线 | 美洲 | av日韩免费 | 国产手机av片在线观看 | 四虎永久在线精品免费网站 | 国产一卡2卡三卡4卡 在线观看 | 久久综合亚洲鲁鲁五月天 | 欧美人禽杂交狂配 | 亚洲成年人专区 | 人人狠狠综合久久亚洲爱咲 | 一边捏奶头一边啪高潮视频 | 91人人爽久久涩噜噜噜 | 天天综合7799精品影视 | 天干夜天天夜天干天 | 91精品国产色综合久久不卡98最新章节 | 日韩欧美视频一区二区 | 精品国产一二三区 | 成人国内精品久久久久影院成.人国产9 | 激情内射亚洲一区二区三区爱妻 | 欧美一性一乱一交一免费视频 | 日韩精品无码久久一区二区三 | 综合久久中文字幕 | 欧美福利视频导航 | 三级黄色在线视频 | 亚洲精欧美一区二区精品 | 99999视频| 秋霞av国产精品一区 | 黄色性视频网站 | 五月天免费网站 | 国产露脸精品国产沙发 | 亚洲大尺度av | x88av 福利| 色就是色欧美 | 熟女人妻国产精品 | 久久久久无码国产精品一区 | 欧美12--15处交性娇小 | 91精品国产91久久久久久最新 | 欧美成人性生活视频 | 国产三级国产精品国产国在线观看 | 在线综合亚洲欧洲综合网站 | 202丰满熟女妇大 | 久久av资源站 | 免费观看又色又爽又湿的视频软件 | 天堂√中文最新版在线 | 国内盗摄视频一区二区三区 | 午夜精品久久久久久久久日韩欧美 | 毛片无码免费无码播放 | 国产97人人超碰caoprom三级 | 国产成人无码午夜福利在线直播 | 中文屏幕乱码av | 亚洲精品久久久一区二区图片 | 欧美精品与人动性物交免费看 | 成人毛片18女人毛片 | 一级大黄色片 | 久久综合社区 | 久久的久久爽亚洲精品aⅴ 18禁成人黄网站免费观看久久 | www精品美女久久久tv | 日本少妇人妻xxxxx18 | 国产第|页日本草草影院一 午夜欧美理论2019理论 | 日本精品免费观看 | 人妻av无码系列一区二区三区 | 天堂毛片 | 久久这里只有精品8 | 色婷婷亚洲六月婷婷中文字幕 | 久久久综合视频 | 国产精品久久久久精女同 | 国产夜色av | 日韩精品在线观看一区二区三区 | 亚洲一区福利视频 | 精品免费国产一区二区三区四区介绍 | 制服丝袜人妻综合第一页 | www.91色.com| 白嫩无码人妻丰满熟妇啪啪区百度 | 久艾草在线精品视频在线观看 | 国产精品久久久久久吹潮 | 57pao国产精品一区 | 国产女人18毛片水真多 | 天天看天天操 | 亚洲欧美日韩国产综合 | 又黄又爽的60分钟视频 | 九九热视频精品在线观看 | 欧洲熟妇色xxxx欧美老妇多毛网站 | 男人在线天堂 | 嫩草影院国产精品 | 欧美性做爰猛烈叫床潮 | 伊人黄色| 亚洲涩涩网 | 国产蜜臀入口 | 人妻加勒比系列无码专区 | 久久精品无码午夜福利理论片 | 国产91免费| 国产美女被遭强高潮网站下载 | 中文文字幕文字幕高清 | 中国女人内谢69xxxx免费视频 | 欧美 日韩 国产 在线 | 亚洲欧美人成视频一区在线 | 国产极品美女高潮无套 | 人人超人人超碰超国产97超碰 | 精品美女一区二区 | 国产免费踩踏调教视频 | 天堂在线91 | 国产精品欧美久久久久久日本一道 | 粗壮挺进邻居人妻无码 | 国产精品久久久久久久久片桃花 | 国产精品视频免费看人鲁 | 亚洲另类一区二区 | 午夜伦理久久 | 久久伊99综合婷婷久久伊 | 欧美黄色免费大片 | 天天射天天射 | 对白刺激国产对白精品城中村 | 国产亚洲精品久久久久久久久动漫 | 无码人妻一区二区三区免费看 | 久久精品国产99久久丝袜 | 久草影视在线观看 | 久久综合九色综合国产 | 国产成人年无码av片在线观看 | 好男人社区www在线官网 | 国产亚洲成av人片在线观看 | 国产成本人片无码免费 | 日本在线色视频 | 娇妻玩4p被三个男人伺候电影 | 日本免费观看视频 | 日本大尺度床戏揉捏胸 | 精品久久乐 | 国产精品自在在线午夜出白浆 | 欧洲无码一区二区三区在线观看 | 亚洲人成图片小说网站 | 人人做人人爽人人爱 | 琪琪午夜理论片福利在线观看 | www.xxx久久| 好男人蜜桃av久久久久久蜜桃 | www.欧美色图.com| 欧美人性生活视频 | 欧美午夜一区二区福利视频 | 婷婷色怡春院 | 3d动漫精品啪啪一区二区免费 | 中文字幕在线播 | 久草视频在线资源 | 亚洲精品无码午夜福利理论片 | 欧美jizzhd精品欧美 | 色乱码一区二区三区 | 黄色小视频在线看 | 国产一区二区久久精品 | 五月婷婷丁香六月 | jizz成熟丰满中文字幕.麻豆 | 久久人搡人人玩人妻精品 | 亚洲综合久久成人av | 天天天堂 | 久久伊人久久 | 色大师在线观看免费播放 | 天天在线免费视频 | 国内精品久久影院 | 国产女厕所盗摄老师厕所嘘嘘 | 久久人人爽人人爽人人片av软件 | 性一交一乱一伦一色一情孩交 | 91视频在线免费 | 精品av国产一区二区三区四区 | 国产voyeur精品偷窥222 | 国产对白国语对白 | 中文在线免费视频 | 国产尤物精品福利视频 | 日韩激情视频 | 鲁一鲁一鲁一鲁一色 | 欧美性猛交视频 | 亚洲激情一区二区 | 天堂av在线官网 | 日韩美毛片 | 国产精品福利视频主播真会玩 | 国产精品国产三级国产专i 国产精品午夜剧场免费观看 | 人妻少妇精品无码专区芭乐视网 | av天堂东京热无码专区 | 少妇大战二十8厘米黑人 | 卡一卡2卡3卡精品网站 | 女人被男人桶30分钟无遮挡动态图 | 四虎免费最新在线永久4hu | 国产视频日韩 | 久久久久久久久久久网 | 红桃视频国产 | 精品无人国产偷自产在线 | 亚洲精品一区二区三区精品 | 精品久久久久久综合 | 亚洲精品乱码久久久久蜜桃 | 成人18视频在线观看 | 日本成熟丰满老妇xxxx1 | 日韩美女黄色片 | 嫩草影院ncyy入口 | 国产精品久热 | 亚洲图片激情小说 | 欧美天天视频 | 996热re视频精品视频这里 | 中文字幕有码无码人妻在线 | 日本午夜小视频 | 亚洲午夜国产精品无码老牛影视 | 在线观看av网页 | 久久中文字幕人妻熟女凤间 | 3d成人h动漫网站入口 | 97黄色片| 亚洲另类无码专区首页 | 一本色道久久综合亚洲精品小说 | 国产大学生粉嫩无套流白浆 | 国产a∨国片精品青草视频 亚州欧美 | 国产99视频精品免费观看6 | 欧美偷拍一区二区 | 欲色影视天天一区二区三区色香欲 | 九色综合九色综合色鬼 | 中文字幕女教师julia视频 | 国产黄色自拍视频 | av女人天堂 | 一级免费观看 | 男男gv在线播放网站亚洲 | 在线观看av大片 | 一本久久伊人热热精品中文 | 精品啪啪 | 色播在线精品一区二区三区四区 | 中文av伊人av无码av狼人 | 亚洲一二三四视频 | 天堂av无码av一区二区三区 | 中文字幕免费在线播放 | 午夜精品久久久久成人 | 一本色道久久综合 | 欧美色就色| 麻豆国产va免费精品高清在线 | 日韩吃奶摸下aa片免费观看 | 免费色在线 | 亚洲不卡免费视频 | 久久中文精品视频 | 亚洲午夜久久久精品一区二区三区 | 精品视频福利 | 激情孕妇15p| 久久精品黄aa片一区二区三区 | 无码h肉动漫在线观看免费 午夜免费福利在线观看 | 欧美一区在线视频 | 成人免费无码大片a毛片 | 久久狠狠一本精品综合网 | 亚洲香蕉av | 男人天堂成人 | 亚洲欧美日韩精品永久在线 | 青草青草久热精品视频在线播放 | 日本少妇喷水视频 | zzijzzij亚洲日本成熟少妇 | 国产精品久久久区三区天天噜 | 男人扒开女人腿桶到爽免费 | 欧美特大特白屁股ass | 成年片黄色日本大片网站视频 | 国产白嫩美女在线观看 | 精品精品国产高清a毛片牛牛 | 日韩精品无码免费专区网站 | 亚洲乳大丰满中文字幕 | 午夜噜噜噜 | 久久99精品久久只有精品 | 在线看片免费人成视频无毒 | 1769国产| 欧美亚洲精品一区二区 | 少妇又紧又深又湿又爽黄总 | 亚洲a麻豆乱潮 | 狠狠综合亚洲综合亚洲色 | 少妇熟女天堂网av | 中文字幕在线观看av | 国产md视频一区二区三区 | 再深点灬舒服灬太大了网站 | 无遮挡啪啪摇乳动态图 | 久久av无码精品人妻系列试探 | 亚洲区激情区无码区日韩区 | 米奇7777狠狠狠狠视频影院 | 国产精品妇女一二三区 | 丁香花高清在线观看 | 国产午夜成人无码免费 | 三级全黄女人高潮 | 97精品国产97久久久久久久久久久久 | 亲近乱子伦免费视频无码 | 牛牛影视精品一区二区在线看 | 色婷婷五月综合激情中文字幕 | 麻花豆传媒剧国产免费mv在线 | 亚洲乱码卡一卡二卡 | 久久久久久国产精品美女 | 国产日韩欧美 | 91精品久久久久久久99蜜桃 | 网红主播 国产精品 开放90后 | 毛片毛片毛片毛片毛片毛片毛片 | 97超碰福利 | 久久久久久精品色费色费s 日日日日日日bbbbbb | 中国特级黄色大片 | 久久大香 | 亚洲一区二区在线观看视频 | aa性欧美老妇人牲交免费 | 久久被窝亚洲精品爽爽爽 | 国产又粗又猛又爽又黄的视频一 | 成人日韩在线 | 五月婷婷影院 | 亚洲不卡av一区二区无码不卡 | 亚洲中文自拍另类av片 | 国产裸体永久免费视频网站 | 亚洲一区二区三区无码影院 | 户外少妇对白啪啪野战 | 国产精品无码翘臀在线看 | 久久天天躁狠狠躁夜夜2020一 | 丰满少妇高潮在线观看 | 人间精品视频在线播放 | 欧美性猛交xxxx乱大交蜜桃 | 国产福利视频一区二区三区 | 久久精品aⅴ无码中文字字幕不卡 | 婷婷六月天| 亚洲精品国产精品99久久 | 99自拍| 97精品国产97久久久久久春色 | 日本精品日本一级乱黄中出 | 国产农村妇女毛片精品久久麻豆 | 男人的亚洲天堂 | 亚洲中文字幕成人无码 | 人妖 丝袜 另类 亚洲 | 久久久久国内精品影院 | 中文字幕日韩精品欧美一区 | 国产又黄又粗又猛又爽的视频 | 午夜成人鲁丝片午夜精品 | 日韩福利视频一区 | 天天爽天天爽天天爽 | 99久久精品免费看国产一区二区三区 | 99riav3国产精品视频 | 日韩av在线影视 | 久久久久久久久久网站 | 思思久热思 | 未成满十八禁止免费网站1 女性喷水视频 | 欧美日韩国产a | 中文字幕av导航 | 成人精品视频在线观看不卡 | 成人性生交大片免费看 | 中文字幕亚洲综合久久筱田步美 | 激情超碰在线 | 激情欧美38p | 国产无套白浆视频在线观看 | 亚洲欧美日韩成人一区二区三区 | 欧美肥妇毛多水多bbxx水蜜桃 | 欧美疯狂性受xxxxx喷水 | 久久99精品国产99久久6尤 | 十八禁视频在线观看免费无码无遮挡骂过 | 欧洲妇女成人淫片aaa视频 | 欧美综合自拍亚洲图久青草 | 麻豆果冻传媒精品国产苹果 | 久久不见久久见免费视频7 狠狠操天天干 | 色五月丁香六月欧美综合 | 日本xxxxx九色视频在线观看 | 日韩成人无码v清免费 | 午夜婷婷 | 国产成人免费视频 | 日日躁夜夜躁狠狠久久av | 欧洲无码八a片人妻少妇 | 校园激情亚洲 | 国产高清第一页 | 岛国av大片 | 一级少妇性色生活片免费 | 国产人人插 | 国模欣谣大尺度啪啪人体 | 免费国产作爱视频网站 | 翘臀后进少妇大白嫩屁股 | 蜜臀久久久久久999 亚洲成人教育av | 国产中文字幕在线视频 | 亚洲国产精品女同互慰中文 | 午夜少妇福利视频 | 亚洲 日韩 激情 无码 中出 | 国产精品免费视频色拍拍 | 亚洲三级视频 | 亚洲成人激情在线 | 日本精品aⅴ一区二区三区 亚洲国产理论片在线播放 999精品 | 好屌草这里只有精品 | 色草在线| 182tv午夜福利在线地址二 | 国产网站91| 曰韩人妻无码一区二区三区综合部 | av一本久道久久综合久久鬼色 | 天海翼一区二区三区高清在线观看 | 国产精品午夜福利不卡 | 亚洲中文字幕无码日韩精品 | 香蕉视频在线视频 | 女人高潮内射99精品 | 999精欧美一区二区三区黑人 | 爽妇网国产精品 | 激情五月色综合国产精品小说 | 国产精品久久国产三级国 | 国产一级桃视频播放 | 色婷婷精品久久二区二区6 久久综合精品国产丝袜长腿 | 国内精品久久久久久无码不卡 | 国产精品电影一区二区在线播放 | 亚洲国产综合精品中久 | 国产又大又粗又爽的毛片 | 国产精品人人爽人人做av片 | 不卡av影院| 曰批免费视频播放免费 | 日韩黄色欧美 | 亚洲成av人片在线观l看福利1 | 久草福利资源在线观看 | 丁香五月亚洲综合深深爱 | 无码国模产在线观看免费 | 国产在线乱子伦一区二区 | 97超碰国产在线 | 亚洲国产欧美在线综合 | 成人av18| 专干老肥熟女视频网站 | 无码高潮少妇多水多毛 | 失禁大喷潮在线播放 | 新狼窝色av性久久久久久 | 77色午夜成人影院综合网 | 浓精h攵女乱爱av | 国产做爰xxxⅹ久久久 | 成人午夜小视频 | 狠狠色综合久久婷婷色天使 | 日日摸天天摸人人看 | 久久人人看 | 免费人成网站视频在线观看国内 | av人摸人人人澡人人超碰下载 | 在线看欧美 | 狠狠色综合tv久久久久久 | 护士奶头又大又软又好摸 | 国产午夜精品一区二区三区四区 | 亚洲欧美尹人综合网站 | a欧美爰片久久毛片a片 | 欧美视频一区二区三区四区 | 久久久久久久女国产乱让韩 | 在线观看中文字幕第一页 | 一本大道一卡2卡三卡4卡国产 | 成人黄色短篇小说 | 成年人毛片在线观看 | 99国产伦精品一区二区三区 | 韩国三级无码hd中文字幕 | 77777亚洲午夜久久多喷 | 永久免费无码av在线网站 | 另类老妇奶性生bbwbbw | 日韩毛片儿 | 日韩av无码中文无码不卡电影 | 噜啦噜色姑娘综合网 | 国产资源在线视频 | 亚欧乱色国产精品免费九库 | 国产精品久久自在自线青柠 | 黑人巨大精品欧美一区二区免费 | 成人又黄又爽又色的网站 | 免费超爽大片黄 | 性一交一无一伦一精一品 | 中文字幕无码乱人伦在线 | 欧美囗交做爰视频 | 免费午夜视频在线观看 | 夏目彩春娇喘呻吟高潮迭起 | 男人天堂色 | aaa特黄| 最新亚洲春色av无码专区 | 噼里啪啦在线高清观看免费 | 丰满无码人妻熟妇无码区 | 岛国av噜噜噜久久久狠狠av | 国产精品福利免费 | 国产羞羞网站 | 日日干影院 | 欧美日韩毛片 | 中文无码制服丝袜人妻av | 尤物国产在线精品福利三区 | 亚洲精品99久久久久久欧美版 | 日韩欧美一二区 | 亚洲国产一区二区三区在线观看 | 成人aaa视频| 国产亚洲xxxx在线播放 | 亚洲精品乱码久久久久久蜜桃 | 欧美日韩黄色一级片 | 午夜爽爽爽男女免费观看影院 | 中文字幕亚洲区 | 99久久国产综合精品swag | 米奇7777狠狠狠狠视频影院 | 日本猛少妇色xxxxx猛叫 | 国产无套精品一区二区 | 色成人综合网 | 国产超碰人人做人人爱ⅴa 黄色激情视频小说 | 免费av在线网站 | 久草在线免费福利资源 | 成人亚洲一区二区 | 人妻激情文学 | 一本大道在线一本久道视频 | 欧美日韩制服 | 真人做受试看120分钟小视频 | 亚洲国产精品一区二区美利坚 | 久久久久久高潮国产精品视 | 97国产精品亚洲精品 | 国产精品内射视频免费 | 三级av在线免费观看 | 337p日本欧洲亚洲大胆色噜噜 | 欧美在线一 | 欧美日韩在线中文字幕 | 亚洲精品乱码久久久久66国产成 | 日韩欧美高清视频 | 日韩v亚洲v欧美v精品综合 | 日韩人妻无码精品免费shipin | 女同性久久产国女同久久98 | 97人人爽人人| 国产日产精品一区二区三区四区 | 亚洲精品久久久蜜夜影视 | 国产九色在线播放九色 | 国产成人精品一区二区三区福利 | 亚洲美女中文字幕 | 亚洲中文字幕精品久久久久久直播 | 伊人久久综合色 | 91久久久久久亚洲精品蜜桃 | 动漫h无码播放私人影院 | 国产精品毛片久久久久久久av | 欧美乱轮 | 免费看性视频xnxxcom | 蜜芽久久人人超碰爱香蕉 | 熟女视频一区二区在线观看 | 国产成人一区二区青青草原 | 亚洲另类激情综合偷自拍图 | 国内少妇自拍 | 嫩草视频在线免费观看 | 日本一区二区三区免费高清 | 中文字幕av高清 | 中文字幕日韩亚洲乱码日韩在线 | 强开乳罩摸双乳吃奶网站 | 国产精品亚洲专区无码电影 | 婷婷深爱激情 | 蜜桃日本免费看mv免费版 | 久久综合久久自在自线精品自 | 草草福利影院 | 欧美成人生活片 | 欧美性猛交xxxxxx | 亚洲国产欧美日韩在线精品一区 | 在线观看 日韩 | 五月天婷婷基地 | 在教室伦流澡到高潮hnp视频 | 国产成人无码精品久久久性色 | 妇乱子伦精品小说网 | 国产在线不卡视频免费视频 | 婷婷五月婷婷五月 | 一本加勒比hezyo无码人妻 | 成年无码动漫av片在线尤物网站 | 久久久久人妻一区精品果冻 | 国产熟女亚洲精品麻豆 | 色牛av| 人妻丰满熟妇av无码在线电影 | 国产成人精品永久免费视频 | 久草www| 亚洲精品无码高潮喷水在线 | 亚洲午夜成人精品无码色欲 | 国产精品成人网址在线观看 | 成在人线av无码免费高潮水老板 | 国产精品偷啪在线观看 | 97涩涩图| 天堂俺去俺来也www色官网 | 亚洲色欧美另类 | 日本专区在线 | ass日本丰满熟妇pics | 亚洲免费人成在线视频观看 | 亚洲开心网 | 国产综合精品一区二区三区 | 国产精品热久久久久夜色精品三区 | 伊伊人成亚洲综合人网7777 | 久久婷婷五月综合色一区二区 | 红桃av一区二区三区在线无码av | 97成人碰碰久久人人超级碰oo | 黄色视频毛片 | 91视频专区 | 国产真实生活伦对白 | 亚洲好骚综合 | 国产精品suv一区二区88 | 免费九九视频 | 国产成人午夜福利免费无码r | 久久福利影院 | 精品高潮呻吟99av无码视频 | 天堂在线资源中文 | 一二三区无线乱码2021香 | 欧美男人天堂 | 日韩大陆欧美高清视频区 | 国产黄色美女 | 亚洲精品无码成人a片在 | 国产免费视频一区二区裸体 | 国内自拍偷拍第一页 | 精品人人妻人人澡人人爽牛牛 | 女人被狂躁c到高潮视频 | 蜜乳av一区二区三区 | 无遮挡呻吟娇喘视频免费播放 | 色咪咪网站 | 国产一精品av一免费爽爽 | 亚洲自偷精品视频自拍 | 97精品欧美一区二区三区 | 午夜福利国产成人a∨在线观看 | 亚洲欧美成人a∨观看 | www.四虎com | 亚洲另类国产综合小说 | 91久久婷婷 | 亚洲va在线va天堂xxxx中文 | 精品少妇一区二区三区免费观 | 嘿咻免费视频观看午夜 | 91精品亚洲影视在线观看 | 男女一进一出超猛烈的视频 | 少妇爆乳无码专区av无码 | 青青草免费在线视频 | 人妻波多野结衣爽到喷水 | 依依成人在线视频 | 成人性视频网站 | 欧美久草| 国产国拍亚洲精品mv在线观看 | 日本三级线观看 视频 | 国产一区二区亚洲精品 | 无码人妻一区二区三区免费手机 | 国产精品视频一区二区三区四 | 嫩草网| 狠狠躁夜夜躁人人爽天天不卡 | 免费va国产高清大片在线 | 91亚洲精品国偷拍自产 | 夜夜嗨av 禁果av 粉嫩av懂色av | 国产男女激情视频 | 中文字幕有码无码av | 亚洲精品成人久久电影网 | 亚洲精品国产综合麻豆久久99 | 人人爱爱 | 亚洲网老鸭窝男人的天堂 | 午夜精品久久久久久久2023 | 国产精品久久久久久久久免费看 | 久久婷婷大香萑太香蕉av人 | 香蕉超碰 | 老司机在线精品视频播放 | 天天干天天做 | 夜夜高潮次次欢爽av女 | 丁香久久 | 色超碰 | www国产精品内射熟女 | 99热这里只有精品66 | 国产精品96久久久久久又黄又硬 | 最新中文字幕视频 | 成人深夜在线观看 | 色视频亚洲 | 永久黄网站免费视频性色 | 国产真实农村乱对白精彩 | 国产999精品2卡3卡4卡 | 91国内自产精华天堂 | 日本天堂免费 | 99久无码中文字幕一本久道 | 黑人巨大精品欧美一区免费视频 | 日韩av线上| 中文字幕日韩美女 | 91免费在线播放 | 成年人免费小视频 | 骚女人干起来舒服视频在线 | 精品高朝久久久久9999 | 国产乱hdvidoes| 蜜臀av久久国产午夜福利软件 | 日韩经典午夜福利发布 | 日本人妖xxxx | 日日噜噜噜夜夜狠狠久久蜜桃 | 国产偷窥熟女精品视频 | 成人a视频| 国产午夜亚洲精品理论片八戒 | 伊人久久在线 | 久久久亚洲最大ⅹxxx | 91视频成人| 国产婷婷一区二区三区 | 豆国产97在线 | 亚洲 | 天天碰天天操 | 爱啪啪导航 | 天天操天天干天天插 | 天天操天天射天天 | 91一二三| 亚洲精品一区二区三区蜜臀 | 天天操天天做 | 成人午夜精品网站在线观看 | 色琪琪一区二区三区亚洲区 | 中文天堂在线最新版在线www | 精品久久毛片 | 欧美裸体xxxx极品少妇 | 欧美日韩国产一区 | 青娱乐国产 | 欧美特级毛片 | 中文字幕线观看 | 91精产品一区一区三区40p | 免费无码一区二区三区a片 久久精品道一区二区三区 26uuu另类亚洲欧美日本 | 爱情岛论坛亚洲品质自拍网址 | 91久久婷婷国产一区二区三区 | 国产女精品视频网站免费蜜芽 | 成人亚洲 | 青青青国产在线视频在线观看 | 久久五十路丰满熟女中出 | 成人51免费 | 亚洲乱码在线卡一卡二卡新区豆瓣 | 宅男噜噜噜66一区二区 | 久久合| 国产精品香蕉在线的人 | 熟妇高潮喷沈阳45熟妇高潮喷 | 久久黑丝 | 国产精品r级最新在线观看 国产高清日韩 | 午夜精品久久久久久久传媒 | 无码一卡二卡三卡四卡 | 国产精品天天狠天天看 | 一二三四视频社区在线播放中国 | 91精品国产高清一区二区三密臀 | 国产a区 | 成人免费毛片内射美女app | 国产午夜福利院757视频 | 最新偷窥盗摄 | 精品国产毛片 | 粉嫩av久久一区二区三区小说 | 韩日一区二区三区 | 日本日本乱码伦专区 | 91嫩草影视 | 在线视频 中文字幕 | 久久99亚洲网美利坚合众国 | 91视频高清| 日韩亚洲欧美一区二区三区 | 美女福利网站 | 自拍日韩亚洲一区在线 | 天天干在线观看 | 北条麻妃一区二区三区中文字幕 | 97爱色 | 欧美成人免费一区二区 | www一区二区乱码www | 最新亚洲人成无码网www电影 | 久热这里只有精品99国产6 | 国产一区二区三区四区hd | 国产亚洲日韩在线三区 | 久久久久国色av免费观看 | 国产精品一区二区三区四区五区 | 久久久久久九九99精品 | 亚洲第一页夜 | 91精品国产调教打屁股 | 亚洲欧美综合网 | 婷婷色中文字幕 | 思思99re6国产在线播放 | 午夜理论在线观看不卡大地影院 | 男女做爰猛烈啪啪吃奶动 | 黄色一级视频 | 朋友的丰满人妻中文字幕 | 精品国产乱码久久久久久婷婷 | 国产午夜福利院757视频 | 免费黄色三级网站 | 女人让男人桶爽30分钟 | 日韩永久精品 | 丰满少妇小早川怜子影片了 | 色综合天天综合网中文 | 成人免费视频xbxb入口 | 亚洲午夜久久久精品一区二区三剧 | 久久a热 | 国产精品亲子乱子伦xxxx裸 | 欧美一区二区三区小说 | 国语自产免费精品视频在 | 干美女av| 成年女人黄小视频 | 精品国产av色欲果冻传媒 | 九九99热久久精品在线6 | 欧美a一区二区 | 亚洲品牌自拍一品区9999 | 成年女人色毛片 | 欧美无乱码久久久免费午夜一区 | 日本特黄特色大片免费视频老年人 | 99热只有| 亚洲综合精品一区 | 国精品无码一区二区三区在线a片 | 美女把尿囗扒开让男人添 | 一边摸一边叫床一边爽av免费 | 久久久久欠精品国产毛片国产毛生 | 久操新在线 | 99爱在线精品视频免费观看 | 麻豆果冻传媒精品国产av | 国产一区二区激情 | 狠狠鲁影院 | 伊在线久久丫 | 亚洲精品午夜无码专区 | 成人av专区精品无码国产 | 色欲色欲日韩www在线观看 | 久久久久有精品国产麻豆 | 好男人社区在线观看 | 欧美特黄视频 | 精品成人免费国产片 | 伊人99 | 亚洲国产精品无码久久久久高潮 | 日本在线视频www鲁啊鲁 | 日韩毛片无码永久免费看 | av在线播放不卡 | 美女裸体跪姿扒开屁股无内裤 | 日批视频免费在线观看 | 国产一区二区免费在线观看 | 国产精品无码a∨精品影院app | 国产成人无码视频一区二区三区 | 欧美黄色a视频 | 少妇高潮喷水正在播放 | a级毛片基地| 中国女人裸体乱淫 | 神马午夜伦理 | 亚洲熟妇无码爱v在线观看 久久久av男人的天堂 | 色男人的天堂 | 午夜精品久久久久9999高清 | 图片小说视频一区二区 | 好男人社区在线观看 | 亚欧激情 | 青青草综合在线 | 欧美综合自拍 | 国内少妇情人精品av | 天天干夜夜曰 | aaa私人欧美69 | 国产精品亚洲一区二区三区喷水 | 国产一区二区免费 | 久久久www成人免费看片 | 夜色福利视频 | 精品久久综合 | 久久爽久久爽久久免费观看 | 竹内纱里奈一88av在线 | 97人人添人澡人人爽超碰 | 98色花堂永久在线网站 | 在线日产精品一区 | 国产乱沈阳女人高潮乱叫老 | 免费又黄又爽又色的视频 | 亚洲精品日日夜夜 | 色婷婷av一区二区三区之一色屋 | 色狠狠色噜噜av一区 | 成人免费日韩 | 国产精品一线二线三线 | 日韩欧美一区二区三区四区五区 | 国产美女爽到尿喷出来视频 | 麻豆视频国产精品 | 午夜影院免费体验区 | 日本v片在线观看 | 揄拍成人国产精品视频 | 国产偷国产偷亚洲清高孕妇 | 国产片在线天堂av | 亚洲日韩精品无码专区 | 亚洲欧美精品一区二区 | 嫩草影院入口2023 | 免费视频爱爱太爽了网站 | 欧美噜噜久久久xxx 亚洲专区欧美专区 | 少妇a级| 在线观看av中文字幕 | 亚洲欧美一区在线观看 | 无码啪啪熟妇人妻区 | 黄色尤物网站 | 俄罗斯乱妇一区二区三区 | 男女啪啪高潮激烈免费版 | www.天天色| 色婷婷久久一区二区三区麻豆 | 中文字幕日韩精品亚洲一区 | 国产精品久久久久久2021 | 成人欧美一区二区三区在线观看 | 在线观看黄色小视频 | 久久综合色之久久综合 | 影音先锋成人资源站 | 欧美一区二区黄色 | 亚洲老少妇| 国产成人免费无码视频在线观看m | 天天av天天翘天天综合网 | 日韩制服国产精品一区 | 依人九九 | 激情视频免费在线观看 | 欧美午夜影院 | 玖玖热综合一区二区三区 | 亚洲中文字幕在线第六区 | 婷婷久久综合九色综合97最多收藏 | 欧美成人r级一区二区三区 成 人片 黄 色 大 片 | 一本色道无码道在线观看 | 国模一区二区三区白浆 | 久久久久久综合岛国免费观看 | 青青国产在线观看 | 无码h片在线观看网站 | 久久99久久99精品免观看 | www.youjizz.com日韩 | 92在线视频 | 色翁荡熄又大又硬又粗又 | 久草热视频在线观看 | 4444亚洲人成无码网在线观看 | 成人综合网站 | 国精产品一区一区三区在线观看 | 欧美激情精品久久久久 | 国产亚洲精品久久精品6 | 天天上天天干 | 久久久久成人片免费观看 | 狠狠色噜噜狠狠狠狠69 | 免费a黄色| 91视频免费在观看 | 国产欧美一区二区白浆黑人 | 国产熟睡乱子伦午夜视频麻豆 | 少妇福利视频 | 亚洲av激情毛片九色一区 | a级毛片久久 | 免费人妻av无码专区 | 久啪视频 | 美女爱爱免费视频 | 中文字幕一区三级久久日本 | 蜜臀av国内精品久久久夜夜蜜臀 | 玩肥熟老妇bbw视频 后入内射国产一区二区 | 国产综合有码无码中文字幕 | 亚洲女人天堂2020 | 国产欧美二区 | 亚洲色图美腿丝袜 | 婷婷在线综合 | 天天曰天天躁天天摸孕妇 | 天堂中文在线资 | 男女无遮挡猛进猛出免费观看视频 |