《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > TMS320VC5410 DSP的DSP/BIOS擴展尋址的實現
TMS320VC5410 DSP的DSP/BIOS擴展尋址的實現
唐 冰 周 勇 駱云志
摘要: TMS320VC5410的程序空間通常被限制在64K地址空間內,當應用程序超出64K時,則需增加目標系統存儲區和附加邏輯,實現對系統的擴展。介紹了如何配置及使用DSP/BIOS接口來實現擴展尋址功能,分析了API函數調用和中斷觸發過程,并以DSP并行自舉引導方式實現程序的脫離仿真運行。
Abstract:
Key words :

    摘  要: TMS320VC5410的程序空間通常被限制在64K地址空間內,當應用程序超出64K時,則需增加目標系統存儲區和附加邏輯,實現對系統的擴展。介紹了如何配置及使用DSP/BIOS" title="DSP/BIOS">DSP/BIOS接口來實現擴展尋址功能,分析了API函數調用和中斷觸發過程,并以DSP并行自舉" title="自舉">自舉引導方式實現程序的脫離仿真運行。 

    關鍵詞: DSP/BIOS  擴展尋址  API  并行自舉引導

 

1 DSP/BIOS 接口

    DSP/BIOS接口提供了基本的運行服務,如應用程序實時分析功能、時鐘周期函數、I/O模塊、優先級的任務調度等。DSP/BIOS接口提供支持匯編語言和C語言的API接口函數,這些API函數絕大部分都是用匯編語言實現的,因此匯編語言可以直接調用API,而C語言調用API則要通過DSP/BIOS的C封裝器。應用程序通過調用API函數來使用DSP/BIOS接口,如軟件中斷、背景線程和中斷服務程序" title="中斷服務程序">中斷服務程序等都可以調用DSP/BIOS的函數。當DSP/BIOS要調用用戶的C語言函數時,則要通過函數鏈接器,如圖1所示。 

 

 

2 擴展程序空間

    TMS320VC5410的16位地址空間被劃分為兩塊,低地址塊定義為公共區(或未映射區),高地址塊定義為映射區(或擴展區)。這兩塊的地址由目標系統的外部寄存器和存儲區決定。值得注意的是,TMS320VC5410的數據區沒有擴展存儲區。 

    用戶可以在映射區上定義多個物理存儲區,它們覆蓋整個映射區,但彼此間不重疊。當使用存儲區的擴展頁時,內部16位地址空間被擴展為32位的地址進行尋址,高16位代表擴展頁的數目,低16位代表局部的16位地址。如使用擴展程序映射存儲器(XPC)存放擴展頁碼,則XPC存放在數據空間地址為0x1E的位置,它的值要與.CMD鏈接文件中定義的擴展頁碼保持一致。圖2所示的是一個擴展3頁的程序區結構圖。公共區的范圍是0x0000~0x7FFF;映射區的范圍是0x8000~0xFFFF;映射區為第一頁,XPC要為0才能訪問該區;映射地址空間存放兩個擴展頁,擴展程序映射寄存器限定了映射地址,使得每個擴展頁的每個單元具有唯一的地址。當訪問擴展頁時,映射區將被覆蓋。 

 

 

    TMS320VC5410的DSP/BIOS不僅支持64K程序頁內的“近”訪問模式,而且支持擴展程序的“遠”訪問模式,只需設置DSP/BIOS的屬性即可實現擴展程序的“遠”訪問。要注意的是,匯編語言寫的API只能在PAGE0頁調用,而C語言寫的API可以在任何頁面調用。 

3 中 斷

    當中斷產生時,DSP的內部結構機制只能保存低16位頁內的局部地址,而擴展尋址時程序地址需要23位,這就意味著調用和返回時將超出64K(16位地址)的范圍,因此必須考慮怎樣保存和恢復擴展地址。解決的方法是用中斷服務程序(ISR)保存XPC的值,確保能正確計算中斷向量,為此中斷向量表" title="向量表">向量表必須放在公共區或映射區的64K程序頁面上。當DSP/BIOS在公共區上時,ISR可以放在任何位置;如果不在公共區上,則ISR必須放在PAGE0上。 

    當OVLY=0時,為了能保證中斷正確執行,必須在每一個頁面上都要有中斷向量表的拷貝。當OVLY=1時,只需在公共頁面上(如0x7F80)作一份中斷向量表的拷貝就可以了。 

4 程序實例

    下面通過一個簡單的例子介紹DSP/BIOS如何實現程序地址的擴展。本例中有三個軟中斷:時鐘中斷PRD_POST_SWI,每100ms觸發SWI_PAGE1(或SWI_PAGE2)一次;SWI_PAGE1,完成置XF高;SWI_PAGE2,完成置XF低。三個軟中斷執行的函數分別放在程序空間的不同頁面上,即PRD_Post_SWI放在公共頁面上(XPC=0),Page1Func和Page2Func分別放在擴展程序頁面1和2上(XPC為1和2)。 

    #include “testfarcfg.h” 

    #pragma CODE_SECTION(Page1Func,“.FarPage1”) 

    #pragma CODE_SECTION(Page2Func,“.FarPage2”) 

    int pagenumber; 

    void main(void)         {pagenumber=0;} 

    void Page2Func (void)   {asm(“rsbx xf”);pagenumber=0;} 

    void Page1Func (void)   {asm(“ssbx xf”);pagenumber=1;} 

    void PRD_Post_SWI(void) 

    { if(pagenumber)  SWI_post(&SWI_PAGE2); 

    else   SWI_post(&SWI_PAGE1); 

    } 

5 DSP/BIOS的配置 

    如要把DSP/BIOS的程序映射到擴展程序空間,需要對其進行配置,步驟如下: 

    (1)建立一個新配置文件。啟動仿真軟件(Code Composer Studio),建立testfar.pjt工程,通過File中的New ——DSP/BIOS Config創建配置文件,選用sd54.cdb(54X EVM)配置。 

    (2)添加軟件中斷。右鍵打開軟件中斷管理器(Software Interrupt Manager),選擇Insert SWI,創建SWI_PAGE1,屬性配置為:function:_Page1Func;priority:2。用同樣的方法創建function為_Page2Func的SWI_PAGE2。右鍵打開定時器功能管理器(Periodic Function Manager),選擇Insert PRD,創建PRD_POST_SWI,屬性配置為:period(ticks):50,function:_ PRD_Post_SWI,mode:continuous。 

    (3)設置OVLY位為1。打開System中的Global Settings的屬性頁,在PMST(6~0)項中填入使第5位為1的值,如MP=1,填入0x60。 

    (4)指定“遠”調用模式。在Global Settings屬性頁面的Function Call Model選項中選擇far,使全局變量Callmodel設置為far。 

    (5)在公共區中重新分配中斷向量表。雙擊System中的MEM,右鍵打開VECT 的屬性頁,在base項中填入新的基地址,如0x7F80。 

    (6)配置擴展程序地址段。對于54X EVM評估板,已經有了兩個擴展程序段EPROG0和EPROG1(如果沒有的話,則需添加這兩個段,選擇Insert MEM,添加兩個擴展程序段,重命名為EPROG0和EPROG1)。EPROG0屬性為base:0x8000,len:0x4000,勾去create a heap in this memory選項,space:code;EPROG1與EPROG0的屬性不同之處為base:0x18000。加入一個新的擴展程序段EPROG2,屬性為base:0x28000,len:0x4000,space:code。 

    (7)將目標代碼鏈接到擴展程序段。pragma偽指令告訴編譯器的預處理器如何處理函數,語法為#pragma CODE_SECTION(Page1Func,“.FarPage1”),在名為“.FarPage1”的段中分配Page1Func的程序空間。這樣,目標代碼Page1Func就被鏈接到.FarPage1段的區域。 

    (8)創建一個新的鏈接命令文件(testfar.cmd)。其主要功能是把testfarcfg.cmd鏈接進去,并且告訴鏈接器把不同目標函數放在不同的擴展頁面上。如: 

    -ltestfarcfg.cmd 

    SECTIONS 

    { .FarPage1:{} > EPROG1 PAGE 0 

      .FarPage2:{} > EPROG2 PAGE 0 

    } 

    (9)保存配置文件為testfar.cdb,然后將testfar.cdb,testfar.cmd、testfar.c文件加入工程中。 

    (10)配置編譯器和匯編器支持遠模式代碼。打開菜單Project中的Build Options窗體,選擇Compiler屬性頁,點擊Category中的Advanced選項,勾選Use Far Calls (-mf)(C548 and higher)。此選項指定產生遠調用代碼模式。 

    (11)在調試器內描述并激活擴展尋址功能。仿真器的調試軟件需要激活擴展尋址功能才能支持長指令的執行和擴展存儲區的讀/寫,方便地對使用擴展尋址的程序進行調試。所以使用通用擴展函數GEL_XMDef()來定義映射寄存器(如XPC)和映射擴展空間的首地址。如當OVLY=1時,擴展程序區從0x8000開始,7位XPC放置在數據空間的0x1E單元中,并把下面兩條語句加入到C5410.gel文件的C5410_Init()函數中。 

    GEL_XMDef(0,0x1e,1,0x8000,0x7f);  

    //0:映射程序空間;0x1e:XPC的地址;1:XPC 在數據空間中; 

    //0x8000:映射首地址;0x7f:XPC的大小,128頁; 

    GEL_XMOn(); //使能擴展地址映射 

6 DSP/BIOS函數調用和中斷觸發過程

6.1 DSP/BIOS函數調用過程

    DSP/BIOS API 調用過程如圖3中的實線所示。具體過程如下: 

 

 

    (1)產生PRD_F_swi,短調用C語言封裝器的PRD_F_swi (),XPC=0。 

    (2)C語言封裝器觸發PRD_POST_SWI時鐘軟中斷,然后檢測SWI_PAGE1,產生執行DSP/BIOS調度表的分支。 

    (3)DSP/BIOS調度表保存當前PRD_POST_SWI上下文信息,調用函數鏈接器以觸發SWI_PAGE1。 

    (4)函數鏈接器遠調用SWI_PAGE1,執行相應的函數(Page1Func),XPC=1。 

    (5)SWI_PAGE1執行結束,遠返回函數鏈接器。 

    (6)函數鏈接器又返回到DSP/BIOS調度表。 

    (7)DSP/BIO調度表恢復PRD_POST_SWI信息,返回到C語言封裝器。 

    (8)執行上述(1)和(2),第(3)步觸發SWI_PAGE2,函數鏈接器遠調用SWI_PAGE2,執行函數(Page2Func),XPC=2。 

    (9)SWI_PAGE2執行結束,遠返回函數鏈接器,然后順序執行上述的第(6)和(7)。 

6.2 中斷觸發過程

    中斷觸發過程如圖3中的虛線所示。 

    (1)PRD_F_swi發生,CPU把當前的16位PC指針壓入堆棧,在中斷向量表中取指令。 

    (2)中斷向量程序把當前的XPC壓入堆棧,產生一個配置中斷服務程序的分支指令,執行中斷服務程序,XPC=0。 

    (3)中斷服務程序調用HWI_enter,觸發PRD_POST_SWI軟中斷,接著調用HWI_exit,HWI_exit檢測到SWI_PAGE1準備好,開始調用DSP/BIOS調度表。 

    (4)DSP/BIOS調度表保存當前的上下文信息,調用函數鏈接器以觸發SWI_PAGE1。 

    (5)函數鏈接器遠調用SWI_PAGE1,執行相應的函數,此時XPC=1。SWI_PAGE1執行完,遠返回調用函數鏈接器,再到DSP/BIOS調度表,調度表恢復上下文信息,把程序指針交給PRD_POST_SWI軟中斷。PRD_POST_SWI結束。 

    (6)執行上述(1)、(2)步后,第(3)步檢測到SWI_PAGE2準備好,第(4)步觸發SWI_PAGE2,第(5)步函數鏈接器遠調用SWI_PAGE2,XPC=2,順序執行下去,直到PRD_POST_SWI結束。 

7 并行自舉引導" title="自舉引導">自舉引導的實現

    TMS320VC5410上電復位后,檢查到DSP處于MC(微計算機)工作方式,從片內ROM的0FF80h起執行程序。0FF80h地址存放的是中斷向量表,它實為一條分支轉移指令(BD 0F800h),使程序跳轉至0F800h執行自舉引導程序(Bootlooader)。并行自舉引導是DSP自舉引導常用的一種方式,Bootlooader首先從地址為0FFFFh的I/O口讀取自舉表首地址的內容,如果此內容不符合8位或16位的引導方式,就從地址為0FFFFh的數據存儲器讀取,進行8位或16位并行自舉引導。若要完成自舉引導功能,必須建立正確的自舉表。 

    自舉表的內容不僅包括欲加載的各段代碼,而且包括各段代碼的長度、各代碼段存放的目標地址、程序入口地址等信息。自舉表可由hex500格式轉換器自動生成。hex500是一個通用程序,它將公共目標文件格式—COFF文件轉換成各種FLASH(或EPROM)的編程格式。因此,在使用hex500工具之前,首先把testfar.pjt進行編譯、鏈接,生成COFF格式的testfar.out文件,然后再通過設置適當的選項生成用戶所要求的自舉表,如轉換文件的格式、外部數據存儲器的字寬等選項。把testfar.out轉換為testfar.hex文件后,再使用C語言編寫一個轉換程序,將hex文件轉換為DSP燒寫FLASH程序能識別的文件格式。根據文件信息就可以完成自舉表的內容,如表1所示。最后使用FLASH的擦除、讀寫等操作指令把表1的內容燒入FLASH中。DSP上電復位,便可完成并行自舉引導。 

 

 

    整個引導過程為:上電復位后,判斷MP/MC=0處于微計算機工作方式,從片內ROM的0FF80h處執行中斷向量表的分支轉移指令(BD 0F800h),使程序跳轉至0F800h處執行自舉引導程序。自舉引導程序完成初始化后讀取數據空間的0FFFFh地址的內容,找到自舉表首地址8000h,從8000h處開始讀取內容,首先是16位自舉標記(10AA),然后分別是寄存器SWWSR及BSCR的內容、程序入口地址、代碼段長度、存放代碼段的目標地址等信息,根據這些信息把FLASH中的8008H~A594H的程序搬運到片內RAM中,然后把Page1Func和Page2Func的代碼搬運到0x180000和0x28000處,最后跳轉至片內RAM的26FDH,即PC為26FDH,XPC為0,開始執程序。這樣即完成程序的并行自舉過程。 

    使用DSP/BIOS可以很好地實現擴展尋址功能,把程序燒寫入FLASH后,復位DSP使其處于MC工作方式,便可使用示波器測試XF引腳,觀察程序運行正確與否。 

參考文獻

1 張雄偉,陳 亮,徐光輝. DSP集成開發與應用實例.北京: 電子工業出版社,2002.6 

2 Interrupt Handling Using Extended Addressing of the TMS320C54x Family. Application Report SPRA492,1998.11 

3 TMS320VC5410 Bootloader. SPRA609A   Copyright (c). TI,April 2000 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩亚洲一区二区三区在线观看| 亚洲国产日韩一区二区| 欧美精品激情在线| 91久久在线观看| 亚洲精品中文字幕女同| 欧美激情a∨在线视频播放| 欧美+亚洲+精品+三区| 欧美国产一区二区在线观看| 一区二区视频免费在线观看| 国产欧美日韩一级| 国产精品最新自拍| 亚洲高清一区二| 欧美精品一区二区三区在线播放| 欧美成人有码| 在线综合欧美| 久久av一区二区三区| 久久综合网络一区二区| 国产模特精品视频久久久久| 欧美三日本三级少妇三99| 欧美日韩在线播放| 久久黄色影院| 一区二区三区精密机械公司| 久久综合图片| 亚洲国产黄色| 欧美成人精品福利| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美日韩成人| 久久不射中文字幕| 国产欧美日韩综合一区在线播放| 久久综合一区二区| 性欧美xxxx视频在线观看| 亚洲大胆人体在线| 久久久91精品国产一区二区精品| 国产精品二区影院| 欧美久久久久久蜜桃| 欧美日韩18| 欧美高清视频在线播放| 亚洲大片在线观看| 老司机精品视频网站| 国产欧美婷婷中文| 精品成人一区二区三区四区| 亚洲九九爱视频| 欧美精品自拍| 亚洲人成在线影院| 欧美日韩国产精品| 日韩视频一区| 亚洲成人资源网| 久久视频一区二区| 久久综合网hezyo| 久久青草久久| 欧美aaa级| 国产精品视频男人的天堂| 亚洲尤物视频网| 亚洲欧美日韩电影| 91久久精品国产91久久| 黑人中文字幕一区二区三区| 麻豆精品视频| 欧美激情精品| 亚洲国产精品一区二区www| 欧美国产亚洲另类动漫| 欧美日韩国产丝袜另类| 夜夜嗨一区二区| 国产精品私人影院| 欧美日韩国产综合一区二区| 亚洲女同同性videoxma| 欧美成人国产一区二区| 亚洲视频视频在线| 国产日韩综合一区二区性色av| 午夜精品在线看| 性久久久久久久久久久久| 日韩视频在线观看国产| 欧美精品在线看| 国产精品亚洲综合一区在线观看| 欧美jizz19hd性欧美| 亚洲视频综合| 一本色道久久综合| 国产精品自拍三区| 国产一区二区三区成人欧美日韩在线观看| 一区免费观看视频| 欧美三级电影一区| 亚洲国产天堂网精品网站| 中国女人久久久| 亚洲国产成人porn| 亚洲香蕉伊综合在人在线视看| 国产日韩精品电影| 欧美亚洲视频在线观看| 欧美在线视频免费观看| 亚洲欧洲日产国码二区| 欧美在线亚洲综合一区| 日韩视频免费大全中文字幕| 久久琪琪电影院| 久久精品官网| 久久婷婷激情| 欧美日韩一二三区| 国产精品久久久久一区| 老巨人导航500精品| 亚洲无亚洲人成网站77777| 国产在线观看一区| 亚洲夫妻自拍| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久久久aaaa| 国产欧美一区二区三区在线看蜜臀| 亚洲人久久久| 国产精品久久久久三级| 国内成+人亚洲+欧美+综合在线| 中文一区二区在线观看| 一本色道久久加勒比88综合| 亚洲每日在线| 免费人成网站在线观看欧美高清| 你懂的视频一区二区| 国内精品**久久毛片app| 亚洲精品一区二区三区在线观看| 国产日韩欧美一区在线| 国语对白精品一区二区| 美国十次成人| 亚洲人成精品久久久久| 欧美精品观看| 国产一区二区欧美日韩| 一区二区在线免费观看| 亚洲国产va精品久久久不卡综合| 欧美色视频在线| 久久精品亚洲精品| 欧美高清视频一区| 国产精品乱看| 亚洲视频在线观看| 国产亚洲在线观看| 国产老肥熟一区二区三区| 韩国在线一区| 久久国产福利| 夜夜爽www精品| 中文在线资源观看网站视频免费不卡| 国产精品永久免费观看| 日韩视频免费观看高清在线视频| 国产乱码精品一区二区三区五月婷| 国产精品卡一卡二卡三| 中文精品99久久国产香蕉| 亚洲特级片在线| 欧美一区国产二区| 国产日韩视频一区二区三区| 亚洲精品中文字幕有码专区| 性欧美大战久久久久久久免费观看| 国产精品午夜在线| 欧美一区二区三区在线| 在线综合亚洲欧美在线视频| 中文久久乱码一区二区| 999亚洲国产精| 亚洲国产精品第一区二区| 亚洲国产色一区| 亚洲性线免费观看视频成熟| 久久久精品2019中文字幕神马| 亚洲国产精品一区二区www在线| 久久这里只精品最新地址| 欧美国产亚洲另类动漫| 欧美激情综合亚洲一二区| 午夜久久久久| 国产精品免费看久久久香蕉| 亚洲欧美清纯在线制服| 国产主播一区二区三区四区| 国产精品国产三级国产aⅴ无密码| 久久精品人人做人人爽电影蜜月| 黄网站色欧美视频| 欧美aaaaaaaa牛牛影院| 国产视频一区免费看| 亚洲一区3d动漫同人无遮挡| 亚洲国产精品一区二区尤物区| aaa亚洲精品一二三区| 欧美特黄a级高清免费大片a级| 在线看一区二区| 国产精品日韩欧美一区| 欧美精品久久久久久| 欧美日韩国产片| 一区二区三区波多野结衣在线观看| 久久精品国产2020观看福利| 麻豆精品视频在线观看视频| 亚洲精品永久免费精品| 久久精品亚洲一区二区三区浴池| 久久婷婷国产综合精品青草| 一区二区三区日韩在线观看| 亚洲综合色网站| 欧美午夜激情视频| 欧美噜噜久久久xxx| 国产精品白丝av嫩草影院| 国产一区二区毛片| 亚洲一区免费观看| 国产精品日本精品| 伊人春色精品| 欧美色综合天天久久综合精品| 欧美高清视频在线| 欧美亚洲在线观看| 欧美一区二区三区视频免费| 国产精品日韩一区二区三区| 国产午夜精品视频免费不卡69堂| 国产字幕视频一区二区| 亚洲一区二区成人| 国产欧美一区二区三区久久| 欧美女激情福利| 日韩亚洲精品在线| 一区二区三区精品久久久| 亚洲大黄网站| 亚洲欧美日本日韩| 欧美日韩在线观看一区二区| 在线日本成人| 亚洲国产一区二区在线| 亚洲一二三区在线| 亚洲第一区中文99精品| 欧美午夜不卡| 免费成人黄色片| 在线看片日韩| 久久精品亚洲一区二区三区浴池| 国产一区二区三区奇米久涩| 美日韩免费视频| 亚洲高清视频的网址| 亚洲免费观看| 午夜国产一区| 蜜桃精品久久久久久久免费影院| 最新高清无码专区| 国产精品久久久久久久久久妞妞| 久久青草欧美一区二区三区| 欧美一区观看| 亚洲一区影音先锋| 国内精品视频在线观看| 亚洲国产精品尤物yw在线观看| 西西裸体人体做爰大胆久久久| 欧美小视频在线观看| 亚洲精品亚洲人成人网| 免费观看日韩av| 亚洲国产日本| 欧美日本国产精品| 一区二区三区四区五区在线| 亚洲高清资源综合久久精品| 亚洲天堂成人在线观看| 欧美精品自拍| 亚洲一区三区电影在线观看| 国产亚洲精品久久久久久| 国产欧美日韩免费看aⅴ视频| 久久精品99国产精品日本| 亚洲视频网站在线观看| 一本一本久久| 欧美国产精品v| 欧美日韩激情小视频| 亚洲欧美日韩成人高清在线一区| 欧美日韩一区二区三区免费看| 亚洲一区bb| 欧美精品久久一区二区| 久久国产婷婷国产香蕉| 欧美日本在线观看| 美日韩精品免费| 欧美88av| 免费成人高清| 欧美在线观看网站| 国产在线视频欧美一区二区三区| 久久天堂国产精品| 久久人91精品久久久久久不卡| 欧美伊人久久大香线蕉综合69| 一本色道久久88综合亚洲精品ⅰ| 免费精品视频| 国产一区二区三区在线观看精品| 久久香蕉精品| 亚洲欧美在线aaa| 国产精品盗摄一区二区三区| 一本久道久久综合狠狠爱| 在线欧美日韩国产| 欧美区在线播放| 亚洲欧美不卡| 亚洲欧洲精品一区| 亚洲第一精品夜夜躁人人爽| 久久久精品国产免大香伊| 欧美xx69| 一区二区三区在线视频播放| 国产一区二区三区在线观看精品| 亚洲精品1234| 国产精品日产欧美久久久久| 国产亚洲欧美另类中文| 欧美日本乱大交xxxxx| 嫩草影视亚洲| 国产精品久久久久久亚洲调教| 国产精品日本精品| 午夜国产精品影院在线观看| 免费成人性网站| 亚洲精品一区二区三区福利| 国产日产欧美精品| 久久亚洲欧美| 亚洲国产精品va在线观看黑人| 亚洲综合色丁香婷婷六月图片| 亚洲欧美福利一区二区| 亚洲午夜精品网| 亚洲精品久久久久久一区二区| 国产精品不卡在线| 欧美日韩三级一区二区| 狠狠色狠狠色综合系列| 欧美日韩黄色一区二区| 亚洲欧美综合精品久久成人| 在线观看久久av| 日韩一级黄色av| 欧美一区二区三区四区高清| 国产精品永久| 欧美激情一区二区| 久久精品一二三| 99国产精品久久久久久久成人热| 国产欧美日韩免费看aⅴ视频| 在线综合欧美| 欧美一区二区私人影院日本| 国产精品久久国产精麻豆99网站| 在线观看欧美黄色| 久久久久久夜精品精品免费| 亚洲欧美激情精品一区二区| 国产综合色产| 亚洲欧洲精品一区二区三区| 国产一区深夜福利| 国产日产欧美a一级在线| 亚洲电影免费在线观看| 欧美一区二区视频免费观看| 欧美三级不卡| 欧美日韩精品免费在线观看视频| 国产日韩欧美三区| 在线一区二区三区四区| av成人手机在线| 欧美日韩三区| 国产精品99久久不卡二区| 亚洲国产精品一区二区www| 这里只有视频精品| 狠狠狠色丁香婷婷综合久久五月| 亚洲成人在线视频播放| 国产一区二区三区精品久久久| 国产在线乱码一区二区三区| 久久黄色影院| 国产亚洲欧美一区在线观看| 国产欧美日韩亚洲精品|