《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 多核DSP的BootLoader程序的實(shí)現(xiàn)

多核DSP的BootLoader程序的實(shí)現(xiàn)

2008-09-09
作者:劉 慧 林海虹 劉 智
關(guān)鍵詞: 上電 工作方式 自舉 多核 雙核

  摘? 要: TI的大多數(shù)DSP芯片。內(nèi)部都有片內(nèi)掩模的BootLoader程序,用于將用戶程序通過片外EPROM、串口或I/O口裝載到片內(nèi)高速RAM中,以保證用戶程序能夠高速運(yùn)行。介紹了BootLoader程序的多種工作方式" title="工作方式">工作方式,并以雙核" title="雙核">雙核DSP——TMS320VC5421為例詳細(xì)闡述了多核" title="多核">多核DSP的16位并行EPROM的BootLoader程序的實(shí)現(xiàn)。

  關(guān)鍵詞: TMS320VC5421? BootLoader? 上電" title="上電">上電自舉

?

  DSP芯片的BootLoader程序用于實(shí)現(xiàn)用戶程序上電自舉" title="自舉">自舉,它有多種工作方式。上電自舉就是將用戶存放在片外的非易失性、慢速的存儲(chǔ)器中的程序裝載到片內(nèi)易失的、高速的存儲(chǔ)空間中,以保證用戶程序在DSP核內(nèi)的高速運(yùn)行。

  多核DSP是指由多個(gè)獨(dú)立的DSP子核集成的DSP芯片,且所有DSP子核共享一套片外總線。由于每個(gè)DSP子核內(nèi)部都有其自身獨(dú)立的掩模BootLoader程序,當(dāng)DSP芯片上電或復(fù)位時(shí),所有DSP子核都將自行啟動(dòng)自身獨(dú)立的BootLoader程序,實(shí)現(xiàn)用戶程序的上電自舉。所以,多核DSP的BootLoader程序的實(shí)現(xiàn)方法與單核DSP的BootLoader程序的實(shí)現(xiàn)方法有較大的差異。為此,本文立足于實(shí)踐,以雙核DSP—TMS320VC5421的16位并行EPROM的BootLoader程序的工作方式為例,詳細(xì)闡述了多核DSP的BootLoader程序的實(shí)現(xiàn)方法。

1 BootLoader程序簡介

1.1 BootLoader程序的四種工作方式

  一般的DSP都采用常見的BootLoader程序工作方式來實(shí)現(xiàn)用戶程序的上電自舉:

????·處理器通信口(主端口)HPI方式——通過DSP芯片與PC機(jī)或DSP芯片與其它DSP芯片之間的主機(jī)通信端口實(shí)現(xiàn)上電自舉;

  ·8位或16位并行EPROM方式——通過DSP內(nèi)核的DMA通道實(shí)現(xiàn)上電自舉;

  ·8位或16位并行I/O方式——通過DSP芯片的片外并行I/O接口實(shí)現(xiàn)上電自舉;

  ·8位或16位串行口方式——通過DSP芯片的串行端口實(shí)現(xiàn)上電自舉。

  在以上四種工作方式中,最常用的是16位并行EPROM方式。即在DSP芯片上電或復(fù)位時(shí),通過DMA通道將存儲(chǔ)在核外EPROM中的程序以16位形式存儲(chǔ)到核內(nèi)的程序空間中。

1.2 16位并行EPROM方式的Boot表

  各種方式的BootLoader程序都有其固定格式的Boot表,用來實(shí)現(xiàn)用戶程序的上電自舉。16位并行EPROM方式的Boot表如表1所示。表中的第1表項(xiàng)存放BootLoader程序工作方式控制字,用于DSP芯片上電或復(fù)位時(shí)確認(rèn)該Boot表是否為16位并行EPROM工作方式的Boot表。該表項(xiàng)內(nèi)容為10AAH,表示DSP內(nèi)核認(rèn)為該Boot表是16位并行EPROM工作方式的BootLoader程序的Boot表;否則DSP內(nèi)核認(rèn)為該Boot表不是16位并行EPROM的方式的Boot表;第2表項(xiàng)存放DSP特殊寄存器SWWSR在上電或復(fù)位時(shí)被賦予的初始化數(shù)值;第3表項(xiàng)存放DSP特殊寄存器BSCR在上電或復(fù)位時(shí)被賦予的初始化數(shù)值;第4表項(xiàng)存放用戶程序?qū)⒁淮娣旁贒SP核內(nèi)程序空間的頁地址;第5表項(xiàng)存放用戶程序?qū)⒁淮娣诺紻SP核內(nèi)程序空間的頁內(nèi)偏移地址;從第6表項(xiàng)開始依次存放用戶程序第m段代碼的長度N。用戶程序第m段代碼將要被存放到DSP核內(nèi)程序空間的頁地址,用戶程序第m段代碼將要被存放到DSP核內(nèi)程序空間的頁內(nèi)偏移地址,用戶程序第m段代碼的第1個(gè)字,第2個(gè)字,……,第N個(gè)字;Boot表的最后表項(xiàng)存放Boot表結(jié)束字0000H,表示Boot表到此結(jié)束。因此DSP內(nèi)核要實(shí)現(xiàn)BootLoader程序,在上電復(fù)位后首先要申請(qǐng)到片外數(shù)據(jù)、地址總線的控制權(quán),然后再根據(jù)Boot表完成用戶程序上電自舉過程。

?

?

1.3 16位并行EPROM工作方式Boot表的生成

  所有BootLoader程序所需的Boot表的數(shù)據(jù)結(jié)構(gòu)都是通過執(zhí)行包含-v548參數(shù)的鏈接命令和Hex500轉(zhuǎn)換命令的程序形成的。在鏈接過程中確定用戶程序和數(shù)據(jù)的存放地址,在Hex500轉(zhuǎn)換過程中定義BootLoader程序的工作方式和用戶程序執(zhí)行的入口地址等。

  為了生成16位并行EPROM方式的Boot表,首先,在鏈接程序時(shí)必須設(shè)置-v548選項(xiàng);然后使用TI公司DSP開發(fā)工具自帶的HEX500.EXE文件,根據(jù)用戶的COFF格式的代碼生成Boot表中的相應(yīng)內(nèi)容。

  HEX500.EXE可執(zhí)行文件一般使用以下幾種參數(shù):

  (1) *.out : 用戶的COFF格式的程序;

  (2) -e?? : 確定用戶程序的入口點(diǎn);

  (3) -a?? : 以ASCII形式,根據(jù)用戶的*.out文件輸出對(duì)應(yīng)的HEX文件;

  (4) -boot: 實(shí)現(xiàn)用戶程序的裝載;

  (5) -bootorg : 確定生成哪種形式的Boot表;

  (6) -memwidth: 確定引導(dǎo)方式的位數(shù);

  (7) -O *.hex : 輸出的HEX文件的名稱。

  例如:

  hex500 ti.out? /*根據(jù)ti.out文件生成Boot表*/

  -e 0x4000????? /*用戶程序的入口點(diǎn)為0x4000*/

  -a???????????? /*以ASCII形式輸出HEX文件*/

  -boot????????? /*裝載用戶的程序ti.out*/

  -bootorg PARALLEL

???????????????????/*生成并行EPROM方式的Boot表*/

  -memwidth 16?? /*生成16位的Boot表*/

  -o ti.hex??????/*生成的HEX文件名為ti.hex*/

  執(zhí)行完該HEX500.EXE命令后,系統(tǒng)會(huì)創(chuàng)建一個(gè)文件名為ti.hex的ASCII文件,然后用戶根據(jù)ti.hex文件內(nèi)容對(duì)EPROM進(jìn)行編程就能產(chǎn)生上述的16位并行EPROM工作方式的Boot表。

2 多核DSP的BootLoader程序的實(shí)現(xiàn)

  目前TI公司已經(jīng)不再局限于生產(chǎn)單核DSP。為了提高用戶程序運(yùn)行的效率,TI公司又推出了2核、4核等多核DSP。在實(shí)現(xiàn)多核DSP上電自舉時(shí),每一個(gè)子核都需要申請(qǐng)片外總線的控制權(quán)。對(duì)于單核DSP而言,只有一個(gè)DSP內(nèi)核,對(duì)應(yīng)一個(gè)BootLoader程序,DSP核可以永遠(yuǎn)擁有片外總線的控制權(quán)。但對(duì)于多核DSP而言,由于只有一套片外總線,所以片外總線的控制權(quán)不允許也不可能永遠(yuǎn)被其中的某一個(gè)DSP子核所擁有。因此,多核DSP需要片外總線仲裁機(jī)制,以避免片外總線沖突。

  下面以雙核DSP—TMS320VC5421的16位并行EPROM方式的BootLoader程序?qū)崿F(xiàn)過程為例,詳細(xì)闡述多核DSP的BootLoader程序的實(shí)現(xiàn)。

2.1 TMS320VC5421結(jié)構(gòu)簡介

  TMS320VC5421 16位定點(diǎn)雙核DSP,它集中了早期TMS320C54X系列DSP的優(yōu)點(diǎn),并提供了許多新的功能。其內(nèi)部結(jié)構(gòu)與TMS320C54X系列的其它款式DSP有很大的不同,其簡單結(jié)構(gòu)框圖如圖1所示。

?

?

  由于每個(gè)DSP子核的工作頻率是100MHz,所以它的工作速率可達(dá)到200MIPS,且它的每一個(gè)DSP子核都具備單核DSP(如TMS320VC5402)的所有特性。

2.2 TMS320VC5421的16位并行EPROM工作方式的BootLoader程序的選擇

  TMS320VC5421的兩個(gè)DSP子核在DSP芯片上電或復(fù)位時(shí),能否啟動(dòng)各自的BootLoader程序以完成上電自舉功能,是由每個(gè)子核自身的XIO和GPIO0/ROMEN兩個(gè)管腳決定的。在DSP芯片上電或復(fù)位時(shí),每個(gè)DSP子核自動(dòng)檢測自身的XIO和GPIO0/ROMEN兩個(gè)管腳,如果對(duì)應(yīng)的XIO和GPIO0/ROMEN兩個(gè)管腳都為高電平,則啟動(dòng)自身的BootLoader程序完成用戶程序的上電自舉。

  每個(gè)DSP子核啟動(dòng)BootLoader程序后,采用哪一種BootLoader程序的工作方式是由各自的GPIO1管腳的狀態(tài)和各自以DMA方式從核外數(shù)據(jù)空間0000H地址單元讀入的數(shù)據(jù)決定的:檢測GPIO1管腳,如果GPIO1管腳為高電平,則采用串行口EEPROM的BootLoader工作方式,否則采用并行EPROM的BootLoader工作方式。若DSP子核的DMA通道讀入核外數(shù)據(jù)空間0000H單元中的數(shù)據(jù)為10AAH,則采用16位并行EPROM的BootLoader工作方式;若讀入的數(shù)據(jù)為xx08H或xxAAH,則采用8位并行EPROM的BootLoader工作方式。否則將重新判斷GPIO1管腳的電平,進(jìn)入死循環(huán)。

2.3 TMS320VC5421的BootLoader程序片外總線沖突的解決

  DSP核的BootLoader程序總是在DSP核上電或復(fù)位時(shí)啟動(dòng),且一啟動(dòng)BootLoader程序,對(duì)應(yīng)的DSP核就要申請(qǐng)核外的總線控制權(quán)。因此為了避免多核DSP的各個(gè)DSP子核啟動(dòng)BootLoader程序時(shí)引起的片外總線沖突,可通過控制每個(gè)DSP子核的復(fù)位過程,使每個(gè)DSP子核在不同的時(shí)間內(nèi)啟動(dòng)自身的BootLoader程序來解決片外總線沖突的問題。

  為了實(shí)現(xiàn)兩個(gè)DSP子核復(fù)位過程的分離,應(yīng)采用如圖2所示的DSP子核復(fù)位過程控制方法。

?

  由于TMS320VC5421中A核擁有倍頻的鎖相環(huán)電路,所以首先復(fù)位A核,啟動(dòng)A核的BootLoader程序,實(shí)現(xiàn)A核的用戶程序上電自舉。然后再由A核的用戶程序控制B核的復(fù)位過程,啟動(dòng)B核的BootLoader程序,實(shí)現(xiàn)B核的用戶程序上電自舉。

  在A核的BootLoader程序執(zhí)行完后,A核就會(huì)執(zhí)行自身的用戶程序代碼。A核的用戶程序代碼釋放片外總線的控制權(quán),并且控制B核的復(fù)位管腳,促使B核啟動(dòng)自身的BootLoader程序。如果此時(shí)A核中的用戶代碼又申請(qǐng)片外總線控制權(quán)或正在使用片外總線,就會(huì)造成片外總線沖突。解決此沖突的辦法有如下兩個(gè):

  ·粗略估計(jì)B核的BootLoader程序執(zhí)行時(shí)間,在A核的有效程序代碼前加一個(gè)延遲程序。

  ·在A核的有效程序代碼前加入一個(gè)死循環(huán)程序,當(dāng)B核BootLoader程序執(zhí)行完后,B核通知A核,A核就跳出這個(gè)死循環(huán)程序,開始執(zhí)行自己的有效代碼。

2.4 TMS320VC5421的16位并行EPROM工作方式的BootLoader程序的編程實(shí)現(xiàn)

  首先設(shè)計(jì)一個(gè)簡單的電路圖,如圖3所示。在DSP的A_XF和B_XF兩個(gè)管腳分別連接一個(gè)發(fā)光二極管,A核以2Hz的頻率點(diǎn)亮發(fā)光二極管,B核以10Hz的頻率點(diǎn)亮發(fā)光二極管。將128K的FLASH(SST39VF400A)分成兩頁,每頁為64K。FLASH的頁的選擇由TMS320VC5421的A_BDXO管腳控制。當(dāng)A_BDX0為低電平,即FLASH的A16地址線為低電平時(shí),選中FLASH的第一頁,由FLASH的A0~A15地址線選擇頁內(nèi)地址,用于存放A核的16位并行EPROM工作方式的Boot表。當(dāng)A_BDX0為高電平,即FLASH的A16地址線為高電平時(shí),選中FLASH的第二頁,由FLASH的A0~A15地址線選擇頁內(nèi)地址,用于存放B核的16位并行EPROM工作方式的Boot表。

CPU_A和CPU_B的程序流程圖分別如圖4和圖5所示。

?

?

?

  (1)片外總線沖突的解決

  估算B核執(zhí)行BootLoader程序所需的時(shí)間后,在A核的用戶有效程序之前,加一段延遲程序。

  延遲的時(shí)間計(jì)算如下:

  TMS320VC5421DSP的DMA通道從片外數(shù)據(jù)空間讀取一個(gè)字到片內(nèi)數(shù)據(jù)空間,需要7個(gè)指令周期時(shí)間。

  統(tǒng)計(jì)用戶程序大小,將對(duì)應(yīng)Boot表中的所有段的大小相加:N1+N2+...=N。

  延遲的時(shí)間為N×7=7N個(gè)指令周期。

  由上面所述的方法可知,只需在開始執(zhí)行A核的有效程序之前加一段延遲7N個(gè)指令周期的代碼即可。

  (2)生成Boot表

  對(duì)CPU_A來說,以A核程序流程圖建立一個(gè)項(xiàng)目Ati.msk。產(chǎn)生Ati.out文件后,進(jìn)入該目錄的DOS環(huán)境,鍵入:

  hex500 Ati.out-a-e 0x4000h-boot-bootorg PARALLEL-memwidth 16-romwidth 16-o Ati.hex

  生成A核的16位并行EPROM工作方式的Boot表。

  對(duì)CPU_B來說,同樣以B核程序流程圖建立一個(gè)項(xiàng)目Bti.msk。產(chǎn)生Bti.out文件后,進(jìn)入該目錄的DOS環(huán)境,鍵入:

  hex500 Bti.out-a -e 0x4000h-boot-bootorg PARALLEL-memwidth 16-romwidth 16-o Bti.hex

  生成B核的16位并行EPROM工作方式的Boot表。

  在實(shí)現(xiàn)雙核DSP的上電自舉后,A核和B核的用戶程序?qū)?huì)被存放在核內(nèi)程序空間的不同頁面上。如從DMA的角度觀看:A核的用戶程序?qū)⒈淮娣旁贏核的程序空間的第0頁上;B核的用戶程序?qū)⒈淮娣旁贐核的程序空間的第2頁上。因此A核的Boot表不需要修改,而B核的Boot表中的所有存放頁地址的表項(xiàng)中的內(nèi)容要更改為2。

  (3)FLASH編程實(shí)現(xiàn)

  根據(jù)FLASH芯片的控制時(shí)序,編寫一個(gè)簡單的DSP程序,用于將A核的Boot表寫入FLASH的低64K,將B核的Boot表寫入FLASH的高64K。

3 上電試驗(yàn)結(jié)果

  將電路上電后,A核控制的發(fā)光二極管開始閃爍,B核控制的發(fā)光二極管也開始閃爍,且A核發(fā)光二極管閃爍頻率要低于B核發(fā)光二極管閃爍頻率。由此現(xiàn)象可得出:A核與B核的BootLoader實(shí)現(xiàn)成功,未產(chǎn)生片外總線沖突;A核以2Hz的頻率點(diǎn)亮發(fā)光二極管,B核以10Hz的頻率點(diǎn)亮發(fā)光二極管。

?

參考文獻(xiàn)

1 李 剛.數(shù)字信號(hào)微處理器的原理及其開發(fā)應(yīng)用. 天津:天津大學(xué)出版社, 2000

2 TMS320VC5421 Bootloader Technical Reference. TI,2000

3 TMS320VC5421 Data Manu.TI,2000

4 汪安民.TMS320VC54XX DSP實(shí)用技術(shù).北京:清華大學(xué)出版社,2002

5 劉易成.TMS320C54X DSP應(yīng)用程序設(shè)計(jì)與開發(fā).北京:北京航空航天大學(xué)出版社, 2002

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美视频你懂的| 在线播放日韩欧美| 噜噜噜91成人网| 欧美亚洲视频一区二区| 亚洲无限乱码一二三四麻| 亚洲精品视频在线| 亚洲欧洲一区二区三区| 亚洲激情综合| 91久久午夜| 亚洲人成精品久久久久| 久久精品夜色噜噜亚洲aⅴ| 欧美一区二区三区日韩| 久久成人综合网| 欧美在线视频日韩| 亚洲高清在线| 亚洲精品一区二区三区樱花| 91久久精品国产| 亚洲精品资源美女情侣酒店| 亚洲美女91| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲美女视频在线免费观看| 亚洲精品视频在线观看网站 | 亚洲欧美日韩人成在线播放| 亚洲综合色噜噜狠狠| 亚洲欧美日韩综合aⅴ视频| 午夜精品久久久久久久99樱桃 | 欧美精品亚洲精品| 欧美日韩美女在线| 欧美午夜一区二区三区免费大片| 国产精品久久久久婷婷| 国产日韩一区二区三区在线| 精品51国产黑色丝袜高跟鞋| 亚洲国产精品嫩草影院| 日韩午夜在线播放| 亚洲在线播放电影| 亚洲大胆人体在线| 亚洲三级性片| 亚洲男女自偷自拍图片另类| 久久精品国产999大香线蕉| 免费观看日韩| 国产精品成人v| 国产亚洲视频在线观看| 在线观看一区二区视频| 日韩视频精品| 午夜日韩激情| 亚洲精品久久久久久久久久久久 | 久久av一区二区三区亚洲| 亚洲大胆人体视频| 亚洲视频国产视频| 久久久久久久999| 欧美剧在线观看| 国产欧美在线播放| 亚洲国产精品ⅴa在线观看| 一本色道久久综合狠狠躁篇的优点 | 欧美午夜剧场| 韩日午夜在线资源一区二区| 91久久精品久久国产性色也91| 亚洲一区二区精品| 亚洲国产精品专区久久| 亚洲中午字幕| 免费不卡在线视频| 国产精品午夜春色av| 亚洲电影在线播放| 亚洲一区二区三区精品视频| 亚洲国产精品精华液2区45| 亚洲午夜av电影| 麻豆久久婷婷| 国产毛片一区二区| 亚洲人成毛片在线播放女女| 午夜精品在线观看| 亚洲午夜成aⅴ人片| 欧美成人国产va精品日本一级| 国产精品高潮粉嫩av| 在线精品视频一区二区| 亚洲一区二区在线| 一级日韩一区在线观看| 久久香蕉国产线看观看网| 国产精品激情| 亚洲欧洲在线看| 亚洲高清久久| 久久www免费人成看片高清| 欧美日韩视频一区二区| 亚洲成人资源| 欧美一站二站| 欧美一级午夜免费电影| 欧美视频手机在线| 亚洲人成啪啪网站| 亚洲激情影院| 久久视频一区| 国产在线视频欧美一区二区三区| 中日韩高清电影网| av不卡在线观看| 欧美成人精品高清在线播放| 国产视频丨精品|在线观看| 亚洲一二三四久久| 亚洲视频播放| 欧美日韩精品一区二区天天拍小说 | 亚洲国产高清在线观看视频| 欧美一区二区在线视频| 亚洲欧美精品中文字幕在线| 欧美日韩精品在线观看| 亚洲欧洲日本国产| 亚洲激情在线视频| 欧美88av| 在线成人激情| 亚洲国产一区二区a毛片| 久久久久久噜噜噜久久久精品| 国产日产高清欧美一区二区三区| 亚洲五月六月| 亚洲欧美成人在线| 国产精品高清在线| 一区二区电影免费观看| 亚洲在线视频免费观看| 国产精品igao视频网网址不卡日韩| 亚洲经典三级| 亚洲精品一区在线观看| 欧美国产日韩精品| 亚洲国内自拍| 一本久久综合亚洲鲁鲁| 欧美日本乱大交xxxxx| 亚洲人成久久| 中文国产一区| 国产精品二区在线观看| 亚洲在线观看免费| 欧美在线看片| 国内成人在线| 亚洲激情视频在线播放| 欧美激情综合五月色丁香| 亚洲清纯自拍| 亚洲一区成人| 国产精品视频久久久| 亚洲女ⅴideoshd黑人| 欧美一区二区三区成人| 国产视频久久久久| 亚洲国产精品精华液2区45| 欧美激情中文不卡| 99视频在线精品国自产拍免费观看| 亚洲午夜精品在线| 国产精品免费看| 久久精品国产99国产精品澳门| 久久色在线播放| 亚洲人成人一区二区在线观看| 一区二区三区四区精品| 国产精品美女久久福利网站| 午夜影院日韩| 久久综合中文| 日韩视频中午一区| 午夜免费在线观看精品视频| 国产日韩精品入口| 亚洲激情网站免费观看| 欧美日韩国产综合新一区| 亚洲女性裸体视频| 老牛影视一区二区三区| 亚洲欧洲精品一区二区三区不卡| 亚洲视频第一页| 国产一区二区在线观看免费播放| 91久久国产综合久久91精品网站| 欧美日韩一区二区欧美激情 | 久久国产精品一区二区| 欧美大片一区二区| aa亚洲婷婷| 久久久高清一区二区三区| 亚洲人成高清| 欧美影院一区| 最新国产精品拍自在线播放| 亚洲欧美文学| 亚洲国产高潮在线观看| 午夜久久久久久| 亚洲国产精品视频一区| 午夜亚洲激情| 亚洲日本va午夜在线影院| 欧美一区2区三区4区公司二百| 在线免费观看日本欧美| 亚洲伊人伊色伊影伊综合网| 国产日韩欧美电影在线观看| 日韩亚洲欧美在线观看| 国产欧美一区二区三区久久 | 亚洲一区中文字幕在线观看| 国户精品久久久久久久久久久不卡| 日韩视频永久免费观看| 国产日韩一区二区三区在线| 99精品国产99久久久久久福利| 国产精品亚洲综合一区在线观看| 亚洲欧洲一区二区在线观看| 国产伦精品一区二区三区在线观看 | 99pao成人国产永久免费视频| 欧美中文在线字幕| 亚洲人成人一区二区在线观看| 小处雏高清一区二区三区| 91久久一区二区| 久久国产婷婷国产香蕉| 一本色道久久99精品综合| 久久综合久久综合这里只有精品| 亚洲一区二区三区在线观看视频 | 久久精品网址| 亚洲天堂激情| 欧美激情国产日韩| 欧美在线黄色| 国产精品综合不卡av| 亚洲小说欧美另类婷婷|