亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種新的嵌入式處理器在線調(diào)試方法

        2010-06-13 11:32:50吳舜曉黃仰博孫廣富
        微處理機(jī) 2010年3期
        關(guān)鍵詞:斷點(diǎn)寄存器代碼

        吳舜曉,張 建,黃仰博,陳 亮,孫廣富

        (國(guó)防科技大學(xué)電子科學(xué)與工程學(xué)院衛(wèi)星導(dǎo)航定位研發(fā)中心,長(zhǎng)沙410073)

        1 引言

        在FPGA設(shè)計(jì)中使用嵌入式處理器軟核(如MicroBlaze、PicoBlaze等)構(gòu)成可編程片上系統(tǒng)(System On Programmable Chip,SOPC),相比于 ASIC 具有更好的可修改性和可維護(hù)性,得到了普遍的應(yīng)用[1]。由于ARM,MicroBlaze等大型處理器內(nèi)核具備調(diào)試接口,在與之對(duì)應(yīng)的調(diào)試模塊配合下,調(diào)試軟件可以通過JTAG接口實(shí)現(xiàn):執(zhí)行到斷點(diǎn)處掛起、單步執(zhí)行、查看處理器內(nèi)部狀態(tài)、查看和修改Memory空間中的數(shù)據(jù)等基本的在線調(diào)試功能[2-3]。上述基本的在線調(diào)試功能對(duì)嵌入式系統(tǒng)的調(diào)試具有重要意義。

        對(duì)于PicoBlaze等占用資源少、設(shè)計(jì)開發(fā)簡(jiǎn)單的小巧型處理器,一般不具備調(diào)試接口,然而在SOPC系統(tǒng)設(shè)計(jì)中經(jīng)常需要使用上述處理器。使用上述處理器時(shí),由于沒有調(diào)試接口,屬于大型處理器的標(biāo)準(zhǔn)高效的調(diào)試機(jī)制不再能夠使用,因此通過指令集仿真(ISS,Cycle-accurate Instruction Set Simulation)和利用仿真工具對(duì)含有處理器的系統(tǒng)進(jìn)行軟硬件協(xié)同仿真是確保設(shè)計(jì)正確性的重要途徑[4]。然而在諸如接收機(jī)基帶信號(hào)處理等系統(tǒng)的設(shè)計(jì)中,仿真所用的測(cè)試用例往往覆蓋率不夠,或者在發(fā)現(xiàn)故障以后很難構(gòu)造出與之相應(yīng)的測(cè)試用例。因此迫切需要使在線調(diào)試功能能夠方便地?cái)U(kuò)展到一般的處理器上。

        針對(duì)上述應(yīng)用需求,這里提出的新調(diào)試方法通過引入一種通用的調(diào)試模塊(Universal Debug Module,UDM)可以使沒有調(diào)試接口的處理器建立起標(biāo)準(zhǔn)的調(diào)試機(jī)制。該調(diào)試模塊利用處理器的中斷機(jī)制實(shí)現(xiàn)處理器響應(yīng)斷點(diǎn)(breakpoint)的機(jī)制,利用基于雙端口RAM中一種巧妙的地址映射機(jī)制實(shí)現(xiàn)同時(shí)對(duì)多行代碼設(shè)置斷點(diǎn)的功能,并且能夠方便地實(shí)現(xiàn)被調(diào)試系統(tǒng)和調(diào)試主機(jī)之間調(diào)試信息和命令的交互。UDM還具有易于擴(kuò)展的優(yōu)點(diǎn),當(dāng)SOPC系統(tǒng)中有多個(gè)處理器時(shí)可以共用一個(gè)UDM。

        2 在線調(diào)試的一般原理

        嵌入式處理器的主流在線調(diào)試方法,目前主要有2種:后臺(tái)調(diào)試模式(backgroud debug mode,BDM)技術(shù)和基于IEEE P1149.1協(xié)議的JTAG調(diào)試技術(shù)。BDM技術(shù)在Motolora微控制器中得到了大量的應(yīng)用,ARM,MIPS和PowerPC等處理器都具有基于JTAG技術(shù)的在片調(diào)試功能,如ARM公司提出了基于JTAG技術(shù)的RDI調(diào)試接口標(biāo)準(zhǔn),主要用于ARM芯片的調(diào)試[5]。處理器內(nèi)核中通過增加支持調(diào)試的擴(kuò)展設(shè)計(jì),可在預(yù)留的調(diào)試接口輸入簡(jiǎn)單的控制信號(hào),以實(shí)現(xiàn):處理器掛起(Halt)、輸出PC值和通用寄存器值、輸出和修改Memory空間中的數(shù)據(jù)等基本的原始調(diào)試操作[2-3]。通常上述調(diào)試接口的設(shè)計(jì)與指令集架構(gòu)相關(guān),如MIPS32提供如下一些調(diào)試方法[5]:①斷點(diǎn)指令BREAK;②一些自陷指令TRAP;③特殊控制寄存器WATCH,通過編程使得特定的load/store操作以及取指操作產(chǎn)生特殊的例外;④一種基于TLB的MMU,通過編程使得訪問任意存儲(chǔ)器頁都可以產(chǎn)生特定的例外。

        對(duì)于沒有調(diào)試接口的處理器目前主要是通過在軟件和硬件設(shè)計(jì)中充分考慮可能的調(diào)試需求,再加上調(diào)試主機(jī)和被調(diào)試系統(tǒng)之間的通信機(jī)制來實(shí)現(xiàn)在線調(diào)試的。這種調(diào)試模式下,調(diào)試代碼需要插入到正常程序中,將調(diào)試信息輸出到調(diào)試主機(jī),同時(shí)還能夠接收調(diào)試主機(jī)發(fā)過來的命令做出各種響應(yīng)。該方法的主要缺陷是針對(duì)不同的調(diào)試需求,要不斷修改正常程序中的調(diào)試代碼,導(dǎo)致標(biāo)準(zhǔn)化和通用性程度不高。此處的UDM在不對(duì)處理器內(nèi)核做修改的情況下即可使這類處理器建立起方便的調(diào)試機(jī)制,是一種不同于主流大型處理器實(shí)現(xiàn)在線調(diào)試的方法。

        3 通用調(diào)試模塊(UDM)的工作原理

        3.1 系統(tǒng)描述

        使用UDM的調(diào)試系統(tǒng)框圖如圖1所示,利用與FPGA同在一塊PCB板上的ARM、DSP等處理器作為輔助調(diào)試用的嵌入式處理器(下文中簡(jiǎn)稱為輔助處理器),簡(jiǎn)化了UDM與調(diào)試主機(jī)之間的通信。通過輔助處理器的總線接口,UDM中的各種控制和數(shù)據(jù)寄存器被直接映射到輔助處理器的Memory空間。在輔助處理器開發(fā)工具的Memory窗口直接進(jìn)行數(shù)據(jù)讀寫操作,就可實(shí)現(xiàn)對(duì)UDM的操控,如圖4、圖5所示。由于在一塊PCB板上同時(shí)集成FPGA和嵌入式處理器芯片是很常見的設(shè)計(jì),因此這種通信方式適用的范圍很廣。

        圖1 應(yīng)用UDM的調(diào)試系統(tǒng)框圖

        UDM直接作為FPGA外部輔助調(diào)試的嵌入式處理器的外設(shè),如果在外部處理器總線掛接多個(gè)UDM模塊,就能實(shí)現(xiàn)同時(shí)對(duì)多個(gè)處理器進(jìn)行調(diào)試。UDM通過產(chǎn)生調(diào)試中斷(DeBug Interrupt,DI)信號(hào),使處理器響應(yīng)中斷并調(diào)用調(diào)試服務(wù)程序(Debug Routine,DR)。UDM通過監(jiān)測(cè)處理器的取指令地址(Instruction Address,IA)產(chǎn)生 DI信號(hào)。PicoBlaze在運(yùn)行DR時(shí)可通過其總線接口訪問UDM,從而實(shí)現(xiàn)調(diào)試信息的輸出和對(duì)調(diào)試命令的響應(yīng)。

        3.2 斷點(diǎn)設(shè)置機(jī)制

        產(chǎn)生DI時(shí)由于處理器會(huì)立即執(zhí)行DR,從而中斷正常的執(zhí)行流程轉(zhuǎn)為為調(diào)試服務(wù),因此決定DI產(chǎn)生的時(shí)機(jī)是實(shí)現(xiàn)斷點(diǎn)機(jī)制的核心。DI信號(hào)是通過監(jiān)測(cè)處理器的取指令地址(Instruction Address,IA)產(chǎn)生的。直接通過一個(gè)比較器將IA與一個(gè)數(shù)據(jù)比較一次只能設(shè)置一個(gè)斷點(diǎn),為了解決此矛盾采用了如下方法:在UDM中用雙口RAM存儲(chǔ)斷點(diǎn)配置信息,使RAM中的每1bit與程序存儲(chǔ)區(qū)的一個(gè)地址對(duì)應(yīng)起來,數(shù)據(jù)為1代表設(shè)置了斷點(diǎn),0代表沒有。將輸入的IA進(jìn)行地址變換后對(duì)RAM存儲(chǔ)區(qū)尋址,使得RAM在一端輸出一個(gè)正好代表輸出的地址處是否設(shè)置了斷點(diǎn)信息,再根據(jù)此數(shù)據(jù)就可生成正確的DI信號(hào)。在雙口RAM的另外一端,斷點(diǎn)設(shè)置情況可以方便地被修改。這樣一來可以設(shè)置的斷點(diǎn)個(gè)數(shù)變?yōu)橹饕躑DM中雙口RAM容量限制了。

        3.3 調(diào)試服務(wù)程序

        只需在DR中保證處理器不對(duì)目標(biāo)程序的內(nèi)外部環(huán)境造成改變,就等效于實(shí)現(xiàn)了處理器的掛起功能。因此,需要將DR和目標(biāo)程序的執(zhí)行環(huán)境隔離開來,這可以通過對(duì)編譯器進(jìn)行某些設(shè)置或強(qiáng)制的編碼規(guī)范來實(shí)現(xiàn)。在處理器被掛起之后,DR與外部調(diào)試主機(jī)通信,通過查詢命令寄存器的方式響應(yīng)調(diào)試主機(jī)發(fā)出的各種調(diào)試命令。這些命令包括:將有關(guān)的調(diào)試信息搬移到外部調(diào)試主機(jī)可以觀察的緩存區(qū)中、修改Memory空間中的數(shù)據(jù)、退出DR使目標(biāo)程序繼續(xù)執(zhí)行等。由于DR必須與目標(biāo)程序使用相互隔離的資源并且小型處理器中代碼容量,外部Memory空間大小等都比較受限,因此DR的設(shè)計(jì)應(yīng)該盡可能占用較少的端口數(shù)、通用寄存器數(shù)和代碼總行數(shù)。

        4 設(shè)計(jì)實(shí)例

        Xilinx公司的PicoBlaze是一種常用的小巧型處理器,它由ALU、程序計(jì)數(shù)器棧(適用于嵌套子程序)、16個(gè)8位通用寄存器、64字節(jié)RAM構(gòu)成的暫存器、程序計(jì)數(shù)器和控制器以及中斷支持電路構(gòu)成,其代碼容量為1024[4]。本節(jié)以針對(duì)PicoBlaze的應(yīng)用為例,設(shè)計(jì)了一個(gè)具體的 UDM,并在 Spartan3S5000 FPGA上進(jìn)行了實(shí)際驗(yàn)證。該UDM使用的硬件資源為1個(gè)18KB BRAM和62個(gè)Spartan-3邏輯片,軟件資源為61行匯編代碼,具備的功能如下:

        ·可同時(shí)在每一行代碼處設(shè)置斷點(diǎn),在沒有設(shè)置斷點(diǎn)的情況下,可強(qiáng)制產(chǎn)生DI,從而運(yùn)行DR 輸出調(diào)試信息;

        ·可以觀察到的調(diào)試信息為:程序計(jì)數(shù)器PC的值、s0~sb寄存器、64byte的暫存器,Memory空間中的數(shù)據(jù),在DR運(yùn)行時(shí)可以刷新上述調(diào)試信息。

        4.1 硬件實(shí)現(xiàn)

        基于PicoBlaze處理器應(yīng)用的UDM硬件結(jié)構(gòu)如圖2所示。UDM與調(diào)試終端和PicoBlaze都有總線接口,因此其內(nèi)部寄存器分為3類:僅受PicoBlaze控制,僅受輔助處理器控制以及受二者共同控制。PicoBlaze和輔助處理器分別在雙口RAM的A、B端口寫入數(shù)據(jù)。為了減少占用PicoBlaze的I/O端口,PicoBlaze在向雙口RAM寫入數(shù)據(jù)之前先向RAM尋址寄存器寫入地址,然后通過寫數(shù)據(jù)輸出寄存器將數(shù)據(jù)寫入前一操作指定的地址中。

        圖2 UDM的內(nèi)部電路結(jié)構(gòu)框圖

        雙口RAM的B端口連接到輔助處理器的總線,數(shù)據(jù)位寬為16,可訪問的地址范圍為0~255,地址0~165作為交互調(diào)試數(shù)據(jù)的緩存區(qū),地址192~255用于存儲(chǔ)斷點(diǎn)設(shè)置信息。每一個(gè)寄存器中存放16行代碼的斷點(diǎn)設(shè)置情況,由于PicoBlaze的代碼容量為1024行,故只需占用64個(gè)寄存器,例如地址為193的數(shù)據(jù)為0x4080則表示第24和31行設(shè)置了斷點(diǎn)。雙口RAM的A端口數(shù)據(jù)位寬為8,在DR運(yùn)行時(shí)用于輸入調(diào)試信息,在目標(biāo)程序運(yùn)行時(shí)輸出斷點(diǎn)設(shè)置信息。因此在A端口有一個(gè)地址選擇電路,使得輸入A端口的地址在不同的情況下分別由RAM尋址寄存器和IA決定。當(dāng)運(yùn)行目標(biāo)程序時(shí),A端口輸入的地址為IA的高7位加上偏移量0x180,輸出的8bit數(shù)據(jù)再經(jīng)IA的低3位尋址輸出1bit數(shù)據(jù),這樣得到的數(shù)據(jù)正好反映了與IA對(duì)應(yīng)的代碼是否設(shè)置了斷點(diǎn)。中斷信號(hào)產(chǎn)生電路根據(jù)上述數(shù)據(jù)和中斷信號(hào)的時(shí)序要求,產(chǎn)生輸出給處理器的DI信號(hào)。

        調(diào)試命令寄存器由PicoBlaze和輔助處理器共同控制,輔助處理器向該寄存器寫不同的數(shù)代表不同的調(diào)試命令。在運(yùn)行DR時(shí)通過查詢?cè)摷拇嫫鱽韺?shí)現(xiàn)對(duì)各種調(diào)試命令的響應(yīng),在響應(yīng)調(diào)試命令之前PicoBlaze將調(diào)試命令寄存器清0,作為與輔助處理器的握手操作機(jī)制。當(dāng)向調(diào)試命令寄存器寫3時(shí),不管是否設(shè)置了斷點(diǎn)都會(huì)立即產(chǎn)生DI信號(hào)。

        4.2 軟件實(shí)現(xiàn)

        在基于PicoBlaze的應(yīng)用中,為了減少代碼容量,DR的流程比較簡(jiǎn)單。在初始化準(zhǔn)備之后,依次將s0~sb寄存器、64byte的內(nèi)部RAM,Memory空間中的數(shù)據(jù)輸出到雙口RAM中,然后陷入一個(gè)等待和處理調(diào)試命令的循環(huán)中。目標(biāo)程序和DR執(zhí)行環(huán)境的隔離通過限制目標(biāo)程序只允許修改寄存器s0~sb以及64byte的內(nèi)部RAM,而DR只允許修改寄存器se~sf來實(shí)現(xiàn)。只有當(dāng)調(diào)試命令為退出調(diào)試時(shí),DR程序才會(huì)結(jié)束,PicoBlaze又返回到目標(biāo)程序的執(zhí)行。當(dāng)調(diào)試命令為刷新調(diào)試信息時(shí),PicoBlaze將重復(fù)一次初始化和調(diào)試信息輸出的過程。

        4.3 實(shí)際驗(yàn)證和使用情況

        在應(yīng)用UDM之前,首先通過NC-verilog對(duì)其進(jìn)行了仿真,部分仿真波形如圖3所示。圖中反映的是當(dāng)作為DI的信號(hào)pdm_int產(chǎn)生了之后,Pico Blaze怎樣轉(zhuǎn)入執(zhí)行DR的,限于篇幅,驗(yàn)證其他各種功能的仿真波形不在此贅述。

        圖3 UDM的部分仿真波形

        為了進(jìn)一步對(duì)UDM的功能和性能進(jìn)行完備的檢驗(yàn),在FPGA中建立了如下簡(jiǎn)單的PicoBlaze處理器系統(tǒng)。PicoBlaze外部只接一塊252X8bit的RAM和UDM,PicoBlaze上的目標(biāo)程序流程為如下的死循環(huán):將s0~sb依次置入0~11,再反過來依次置入11~0;將64byte的RAM依次寫入0~63,再反過來寫入63~0;將外部的RAM依次寫入0~251,再反過來寫入255~4。這樣的一種簡(jiǎn)單設(shè)計(jì),可以保證從輸出的調(diào)試信息直接看出處理器在哪行代碼處響應(yīng)了斷點(diǎn)。

        如圖4所示為在調(diào)試主機(jī)上進(jìn)行調(diào)試控制的界面。偏移地址0x184處的1040表明在38與44兩行代碼處設(shè)置了斷點(diǎn),事實(shí)上從地址0x180~0x1ff處都可以設(shè)置斷點(diǎn)。地址0x200處為當(dāng)前的PC值,通過向地址0x208處寫1可使其更新;地址0x202處為UDM的使能位,當(dāng)其為1時(shí)UDM才被使能;地址0x204為調(diào)試命令寄存器,向其寫1使處理器從斷點(diǎn)退出,寫2使處理器刷新調(diào)試信息,寫3使處理器強(qiáng)制進(jìn)入DR輸出調(diào)試信息;地址0x206處表示調(diào)試狀態(tài),當(dāng)其為3時(shí)表明處理器在運(yùn)行DR,并且調(diào)試信息已經(jīng)輸出完畢。

        圖4 使用UDM調(diào)試的控制界面

        顯示調(diào)試信息的界面如圖5所示,地址0x00~0x0b顯示寄存器s0~sb的數(shù)據(jù),地址0x0c~0x3b顯示內(nèi)部64byte存儲(chǔ)器的數(shù)據(jù),地址0x4c~0x14b顯示PicoBlaze外部Memory空間的數(shù)據(jù)。由于圖5中斷點(diǎn)正好設(shè)置在完成依次向PicoBlaze的Memory空間依次寫0~251之后,因此顯示的數(shù)據(jù)是遞增的。當(dāng)斷點(diǎn)正好設(shè)置在完成依次向 Pico Blaze的Memory空間依次寫255~4之后,所顯示的數(shù)據(jù)就變?yōu)檫f減。在很多其他斷點(diǎn)處顯示的調(diào)試信息與斷點(diǎn)設(shè)置的位置也符合預(yù)期的情況,因此UDM完全可以正確而高效地工作。

        圖5 在第44行斷點(diǎn)處顯示的調(diào)試信息

        在開發(fā)一款信號(hào)處理芯片的FPGA原型設(shè)計(jì)中,跟蹤處理、電文處理、整體流程控制分別由一個(gè)PicoBlaze完成,并且由于FPGA資源的限制采用大型處理器來替代上述處理器幾乎不可能。由于輸入PicoBlaze的數(shù)據(jù)和控制信號(hào)復(fù)雜,仿真驗(yàn)證不能很好地覆蓋各種實(shí)際的使用情形。通過使用這里的基于PicoBlaze處理器設(shè)計(jì)的UDM,方便地實(shí)現(xiàn)了對(duì)上述3個(gè)PicoBlaze的在線調(diào)試,對(duì)提高開發(fā)效率發(fā)揮了重要作用。在其他使用PicoBlaze的工程應(yīng)用中,上述UDM也得到了很好的推廣。

        5 結(jié)束語

        設(shè)計(jì)了一種通用調(diào)試模塊,用于輔助無調(diào)試接口的處理器建立標(biāo)準(zhǔn)的調(diào)試機(jī)制。通過該模塊的使用,提出了一種通用、標(biāo)準(zhǔn)、方便的調(diào)試方法,很好地滿足了在SOPC系統(tǒng)中對(duì)多個(gè)沒有調(diào)試接口的小巧型處理器實(shí)現(xiàn)在線調(diào)試的迫切需求。新方法通過產(chǎn)生調(diào)試中斷使處理器跳轉(zhuǎn)到調(diào)試服務(wù)程序中的方式實(shí)現(xiàn)處理器的掛起,通過基于雙端口RAM中一種巧妙的地址映射機(jī)制實(shí)現(xiàn)同時(shí)對(duì)多行代碼設(shè)置斷點(diǎn)的功能,通過調(diào)試服務(wù)程序?qū)崿F(xiàn)數(shù)據(jù)搬移等調(diào)試命令。新方法還具有易于擴(kuò)展,可以同時(shí)調(diào)試多個(gè)嵌入式處理器的優(yōu)點(diǎn)。新的調(diào)試方法在工程實(shí)踐中對(duì)提高調(diào)試效率發(fā)揮了重要作用,是一種普適的,應(yīng)用價(jià)值明顯的調(diào)試方法。

        [1]潘松,黃繼業(yè),曾毓.SOPC技術(shù)實(shí)用教程[M].北京:清華大學(xué)出版社,2005.

        [2]陳艷華.基于ARM的嵌入式系統(tǒng)開發(fā)與實(shí)例[M].北京:人民郵電出版社,2008.

        [3]龍霞飛,李仁發(fā).Microblaze微處理器IP Core的結(jié)構(gòu)及應(yīng)用[C].北京:中國(guó)計(jì)算機(jī)學(xué)會(huì),2004.

        [4]Hempel,Gerald;Hochberger, Christian.A resource optimized Processor Core for FPGA based SoCs[C].Digital System Design:Architecture,Methods and Tools(DSD),Lubeck,Germany:10th Euromicro Conference,2007.

        [5]黃海林,范東睿,許彤,等.嵌入式處理器在片調(diào)試功能的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(7):1005 -1010.

        猜你喜歡
        斷點(diǎn)寄存器代碼
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        一類無限可能問題的解法
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        主導(dǎo)電回路發(fā)生斷點(diǎn)故障判斷方法探討
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級(jí)手段
        中文字幕一区二区人妻| 中文字幕精品人妻在线| 亚洲av无码码潮喷在线观看| 牲欲强的熟妇农村老妇女| 人人妻人人澡人人爽精品欧美 | 国产精品卡一卡二卡三| 国产AV边打电话边出轨| 国产成人AⅤ| 精品人妻一区二区三区视频| 青春草在线视频观看| 国产两女互慰高潮视频在线观看 | 色综合天天网| 亚洲一区二区三区精品网| 亚洲五月天中文字幕第一页| 刚出嫁新婚少妇很紧很爽| 99国产精品自在自在久久| 摸进她的内裤里疯狂揉她动视频| 亚洲国产精品国语在线| 久久国产精品精品国产色| 亚洲国产中文字幕在线视频综合| 中文亚洲av片在线观看| 另类亚洲欧美精品久久不卡| 中文天堂一区二区三区| 亚洲av无码国产精品色午夜软件 | 亚洲激情综合中文字幕| 亚洲av永久无码精品三区在线| 国产激情精品一区二区三区| 天天干夜夜躁| 亚洲丝袜美腿精品视频| 精品人妻少妇嫩草av无码专区| japanese无码中文字幕| 国产高清国内精品福利99久久| 少妇被日到高潮的视频| 在线观看国产成人av天堂野外| 久久精品免费观看国产| 国产又黄又爽又无遮挡的视频| 日本在线中文字幕一区二区| 男女av一区二区三区| 亚洲色欲色欲www在线观看| 狼人国产精品亚洲| 开心五月婷婷综合网站|