久久中文久久字幕_国产精品99久久久久久www_国产亚洲精品自在久久_国产精品一区视频

歡迎進(jìn)入儀商網(wǎng)!

針對(duì)非對(duì)稱多處理系統(tǒng)實(shí)現(xiàn)更簡(jiǎn)單的軟件開發(fā)

儀器儀表商情網(wǎng) 技術(shù)分析】Mentor 嵌入式多核框架能消除異構(gòu)硬件和軟件環(huán)境的管理復(fù)雜性,從而簡(jiǎn)化SoC系統(tǒng)設(shè)計(jì)

異構(gòu)多處理對(duì)于當(dāng)今的嵌入式應(yīng)用來說正變得越來越重要。片上系統(tǒng) (SoC) 架構(gòu),例如賽靈思的 Zynq UltraScaleMPSoC 提供包含四個(gè) ARM Cortex-A53 內(nèi)核以及兩個(gè) ARM Cortex-R5 內(nèi)核的強(qiáng)大異構(gòu)多處理基礎(chǔ)架構(gòu)。除了核心的計(jì)算基礎(chǔ)架構(gòu)外,SoC 還包含一系列豐富的硬化外設(shè) IP  FPGA 架構(gòu),可實(shí)現(xiàn)靈活的設(shè)計(jì)模式,從而幫助系統(tǒng)開發(fā)人員創(chuàng)建高性能多處理系統(tǒng)。

各種軟件開發(fā)模式的出現(xiàn)使開發(fā)人員可以充分利用 SoC(例如 Zynq MPSoC)提供的多處理功能優(yōu)勢(shì)。對(duì)稱多處理 (SMP) 操作系統(tǒng)提供了必需的基礎(chǔ)架構(gòu),能夠在多處理系統(tǒng)中的多個(gè)同構(gòu)內(nèi)核之間以對(duì)稱或非對(duì)稱方式平衡應(yīng)用工作負(fù)荷。不過,要想利用系統(tǒng)中異構(gòu)處理器提供的計(jì)算帶寬,需要使用非對(duì)稱多處理 (AMP) 軟件架構(gòu)。

AMP 架構(gòu)通常需要在 SoC 中不同處理內(nèi)核上運(yùn)行的多種軟件環(huán)境(例如 Linux、實(shí)時(shí)操作系統(tǒng) (RTOS) 或裸機(jī)軟件),協(xié)同工作實(shí)現(xiàn)最終應(yīng)用的設(shè)計(jì)目標(biāo)。在典型設(shè)計(jì)中,主內(nèi)核上的軟件環(huán)境根據(jù)需要驅(qū)動(dòng)一個(gè)遠(yuǎn)程內(nèi)核上的遠(yuǎn)程軟件環(huán)境,用于分擔(dān)計(jì)算任務(wù)。主處理器、遠(yuǎn)程處理器及其相關(guān)軟件環(huán)境(即它們的操作系統(tǒng)環(huán)境)可以是同構(gòu)或者異構(gòu)的。

為有效管理不同處理器上多個(gè)操作系統(tǒng)的生命周期,同時(shí)提供處理器間通信 (IPC) 基礎(chǔ)架構(gòu)以分擔(dān)計(jì)算工作負(fù)荷,需要采用經(jīng)過改善的新軟件功能和方法。

Mentor Graphics 公司的 Mentor 嵌入式多核框架是一種軟件框架,能夠?yàn)?/span> AMP 系統(tǒng)開發(fā)人員提供兩大重要功能:用于對(duì)遠(yuǎn)程處理器及其相關(guān)軟件環(huán)境進(jìn)行生命周期管理的 remoteproc 組件和 API;用于在 AMP 環(huán)境中的操作系統(tǒng)之間實(shí)現(xiàn) IPC  rpmsg 組件和 API。該框架為用戶提供了簡(jiǎn)化的應(yīng)用級(jí)接口,從而消除了管理異構(gòu)硬件和軟件環(huán)境的復(fù)雜性。

讓我們?cè)敿?xì)了解一下如何使用這種新的開發(fā)框架來管理 AMP 系統(tǒng)中的異構(gòu)計(jì)算。

兼容性和起源

在為 Mentor 嵌入式多核框架選擇合適的 API 時(shí),對(duì)開放標(biāo)準(zhǔn)的兼容性以及在 Linux 社區(qū)中的應(yīng)用情況是重要的考量指標(biāo)。Mentor選用了 Linux 3.4.x 內(nèi)核以及更新版本中的 remoteproc  rpmsg APILinux remoteproc  rpmsg 基礎(chǔ)架構(gòu)最初由 Texas Instruments 設(shè)計(jì)開發(fā),并專門用于 Linux 內(nèi)核。該基礎(chǔ)架構(gòu)允許主處理器上的 Linux 操作系統(tǒng)管理遠(yuǎn)程處理器上遠(yuǎn)程軟件環(huán)境的生命周期和通信。

然而,Linux 提供的基礎(chǔ)架構(gòu)存在一些限制。 首先,Linux rpmsg 隱式地假設(shè) Linux 總是主操作系統(tǒng),而且不支持將 Linux 作為 AMP 配置中的遠(yuǎn)程操作系統(tǒng)。 此外,remoteproc  rpmsg API 只能從 Linux 內(nèi)核空間獲得,沒有可用于其它操作系統(tǒng)和運(yùn)行時(shí)間的等效 API 或庫(kù)。

Mentor 嵌入式多核框架是一種用 C 語(yǔ)言編寫的獨(dú)立庫(kù)。它能干凈地實(shí)現(xiàn)在 RTOS 或裸機(jī)軟件環(huán)境中使用的 remoteproc  rpmsg 功能,并具備與 Linux 中對(duì)應(yīng)的 remoteproc  rpmsg  API 級(jí)兼容性和功能對(duì)稱性。圖 1a 顯示了 Mentor 嵌入式多核框架的軟件棧圖及其在 RTOS 或裸機(jī)環(huán)境中的使用。如圖所示,該框架經(jīng)過抽象的移植層由硬件接口層和操作系統(tǒng)抽象(環(huán)境)層構(gòu)成,讓用戶能夠方便地將框架移植到其它處理器和操作系統(tǒng)。

 1 – RTOS 和裸機(jī)環(huán)境中的 Mentor 嵌入式多核框架 (a),以及 Linux 內(nèi)核中的 remoteproc  rpmsg (b)

 2 – Mentor 多核框架支持的 AMP 配置

 1b 顯示了 Linux 內(nèi)核中的 remoteproc  rpmsg 基礎(chǔ)框架。remoteproc  rpmsg 內(nèi)核空間驅(qū)動(dòng)程序?yàn)?/span> remoteproc 平臺(tái)驅(qū)動(dòng)程序和 rpmsg 用戶設(shè)備驅(qū)動(dòng)程序提供服務(wù)。remoteproc 平臺(tái)驅(qū)動(dòng)程序支持遠(yuǎn)程生命周期管理;rpmsg 用戶設(shè)備驅(qū)動(dòng)程序向用戶空間應(yīng)用提供 IPC 服務(wù)。

除了能在 AMP 架構(gòu)中實(shí)現(xiàn) RTOS 和裸機(jī)環(huán)境與 Linux remoteproc/rpmsg 基礎(chǔ)架構(gòu)的互操作外,Mentor 嵌入式多核框架還提供相應(yīng)的工作流程和運(yùn)行時(shí)間基礎(chǔ)架構(gòu),用于將 Linux 進(jìn)行封裝并作為 AMP 配置中的遠(yuǎn)程操作系統(tǒng)啟動(dòng)。圖 2 顯示了該框架支持的各種 AMP 配置。

用例與應(yīng)用

Mentor 嵌入式多核框架非常適合無監(jiān)督和有監(jiān)督的 AMP 架構(gòu)。

無監(jiān)督的 AMP (uAMP) 架構(gòu)適用于不需要對(duì)參與的操作系統(tǒng)環(huán)境進(jìn)行嚴(yán)格分離的應(yīng)用。在該架構(gòu)中,參與的操作系統(tǒng)在系統(tǒng)中的處理器上本地運(yùn)行。如圖 3a 所示,Mentor 嵌入式多核框架提供一種簡(jiǎn)單有效的基礎(chǔ)架構(gòu),其中,主(引導(dǎo))處理器上的主軟件環(huán)境可以管理生命周期,并將計(jì)算任務(wù)分配給 SoC 中的其它計(jì)算資源。

有監(jiān)督的非對(duì)稱多處理 (sAMP) 架構(gòu)最適合需要對(duì)軟件環(huán)境和系統(tǒng)資源虛擬化進(jìn)行隔離的應(yīng)用。在 sAMP 中,參與的客戶操作系統(tǒng)運(yùn)行在客戶虛擬機(jī)中,而客戶虛擬機(jī)由管理程序(也稱為虛擬機(jī)監(jiān)視程序)進(jìn)行管理和調(diào)度。管理程序?yàn)樘摂M機(jī)提供隔離和虛擬化服務(wù)。Mentor 嵌入式多核框架使 sAMP 架構(gòu)能夠管理 SoC 中異構(gòu)計(jì)算資源的計(jì)算任務(wù)。

如圖 3b 所示,該框架有兩種應(yīng)用方式:在客戶操作系統(tǒng)環(huán)境下,進(jìn)行無監(jiān)督的異構(gòu)計(jì)算資源管理;在管理程序中,進(jìn)行有監(jiān)督的異構(gòu)計(jì)算資源管理,使管理程序能夠監(jiān)督客戶操作系統(tǒng)與遠(yuǎn)程環(huán)境之間的交互。

總之,Mentor 嵌入式多核框架最適合需要將計(jì)算功能按照需求分配給多處理芯片中專用內(nèi)核的應(yīng)用。對(duì)于功率受限的器件,該框架能夠根據(jù)需要開啟和關(guān)閉計(jì)算資源,實(shí)現(xiàn)最佳功率利用率。

該框架還便于將傳統(tǒng)的單核嵌入式系統(tǒng)整合到功能更強(qiáng)大的多處理 SoC 上。此外,該框架能夠輕松地移植針對(duì)單核芯片而開發(fā)的傳統(tǒng)軟件,以便與更新、更強(qiáng)大的多處理芯片上的增強(qiáng)系統(tǒng)功能進(jìn)行互操作。

最后,該框架還有助于實(shí)現(xiàn)容錯(cuò)型系統(tǒng)架構(gòu)。例如,該框架能支持處理關(guān)鍵系統(tǒng)功能的 RTOS 環(huán)境(主機(jī))來管理負(fù)責(zé)非關(guān)鍵系統(tǒng)功能的 Linux 環(huán)境。當(dāng) Linux 子系統(tǒng)出故障時(shí),RTOS 可重啟故障子系統(tǒng),而且不會(huì)對(duì)關(guān)鍵系統(tǒng)功能產(chǎn)生任何不利影響。

 3 – Mentor 嵌入式多核框架用例,包括 uAMP (a)  sAMP (b) 架構(gòu)

系統(tǒng)級(jí)考慮因素

Mentor 嵌入式多核框架 API 提供所需的軟件基礎(chǔ)架構(gòu),以管理 AMP 系統(tǒng)中的計(jì)算。然而在使用上述 API 開發(fā)應(yīng)用軟件之前,設(shè)計(jì) AMP 系統(tǒng)必須考慮特定的系統(tǒng)級(jí)考慮因素。

在初始設(shè)計(jì)階段,您需要確定 AMP 拓?fù)浣Y(jié)構(gòu)。該框架可在星形拓?fù)?/span>(單個(gè)主機(jī)管理多個(gè)遠(yuǎn)程機(jī))或鏈?zhǔn)酵負(fù)?/span>(主機(jī)和遠(yuǎn)程節(jié)點(diǎn)鏈接在一起)中使用。當(dāng)您選擇合適的拓?fù)浣Y(jié)構(gòu)后,下一步是確定存儲(chǔ)器布局。應(yīng)為每個(gè)參與的操作系統(tǒng)運(yùn)行時(shí)間分配存儲(chǔ)區(qū)域,并為操作系統(tǒng)實(shí)例之間的 IPC 分配共享存儲(chǔ)區(qū)域。在存儲(chǔ)器布局最終確定后,您需要更新框架提供的、用于反映所選存儲(chǔ)器架構(gòu)的特定平臺(tái)配置數(shù)據(jù)。

現(xiàn)成的操作系統(tǒng)通常假定其擁有整個(gè) SoC,因此無法直接在無監(jiān)督的 AMP 環(huán)境中運(yùn)行,因?yàn)樵摥h(huán)境要求合作使用共享資源,并且互斥地使用非共享資源。AMP 系統(tǒng)中每個(gè)參與的操作系統(tǒng)都要進(jìn)行修改,以便通過合作方式使用共享資源。例如,遠(yuǎn)程操作系統(tǒng)不應(yīng)復(fù)位和重新初始化已經(jīng)在主機(jī)環(huán)境中使用的共享全局中斷控制器;也不能修改共享時(shí)鐘樹或外設(shè),以免導(dǎo)致沖突。這些變更通常包括對(duì)參與的操作系統(tǒng)內(nèi)核或 BSP 源文件(或二者皆有)進(jìn)行修改。

下一步是執(zhí)行系統(tǒng)分區(qū)。必須在參與的操作系統(tǒng)之間對(duì)系統(tǒng)資源(例如存儲(chǔ)器和非共享 I/O 器件)進(jìn)行分區(qū),這樣,每個(gè)操作系統(tǒng)都只能顯示和訪問所分配的資源。為實(shí)現(xiàn)上述任務(wù),您可以對(duì)提供給操作系統(tǒng)的平臺(tái)數(shù)據(jù)(器件和存儲(chǔ)器定義進(jìn)行修改。例如,修改 Linux OS  Linux器件樹源文件 (DTS) 中的存儲(chǔ)器和器件定義;Nucleus RTOS 的平臺(tái)定義文件中的存儲(chǔ)器和器件定義;裸機(jī)環(huán)境中平臺(tái)專用報(bào)頭文件的存儲(chǔ)器和器件定義。

使用 REMOTEPROC 進(jìn)行生命周期管理

在完成系統(tǒng)級(jí)設(shè)計(jì)決策以及針對(duì)參與操作系統(tǒng)的修改后,就可使用應(yīng)用軟件的 Mentor 嵌入式多核框架。該框架提供相應(yīng)的工作流程,用來封裝 LinuxRTOS 或裸機(jī)軟件映像以及所需的引導(dǎo)程序固件,從而生成 ELF 格式的遠(yuǎn)程固件映像。

遠(yuǎn)程固件 ELF 映像包含一個(gè)名為資源表的特殊區(qū)域。資源表是一個(gè)預(yù)先定義捆綁的靜態(tài)數(shù)據(jù)結(jié)構(gòu),用戶可在這里指定遠(yuǎn)程固件所需的資源。資源表提供的一些重要定義內(nèi)容包括遠(yuǎn)程固件所需的存儲(chǔ)器以及遠(yuǎn)程固件所支持的 IPC 功能。主軟件環(huán)境中的 remoteproc 組件使用資源表定義來分配資源并建立與遠(yuǎn)程環(huán)境的通信。

框架主機(jī)使用 remoteproc_init API 初始化遠(yuǎn)程處理器環(huán)境。在調(diào)用時(shí),remoteproc 主機(jī)取出遠(yuǎn)程固件映像、解碼、獲得資源表、并對(duì)其解析,以確定遠(yuǎn)程固件的資源要求。remoteproc 根據(jù)資源表定義建立遠(yuǎn)程固件所需的物理存儲(chǔ)器,并執(zhí)行 rpmsg/VirtIO IPC 的特定初始化功能。

 remoteproc 完成初始化后,可使用 remoteproc_boot API 啟動(dòng)相關(guān)軟件環(huán)境中的遠(yuǎn)程處理器。在調(diào)用時(shí),找到固件映像以便在存儲(chǔ)器中適當(dāng)執(zhí)行,同時(shí),遠(yuǎn)程處理器解除復(fù)位狀態(tài)以執(zhí)行該映像。remoteproc_shutdown  remote- proc_deinit API 允許應(yīng)用關(guān)閉遠(yuǎn)程處理器,并分別解除各類資源的初始化。( 5 中的偽代碼模塊給出了 remoteproc API 在主機(jī)環(huán)境中的使用實(shí)例。)

在遠(yuǎn)程環(huán)境中,啟動(dòng)和關(guān)閉 API 不適用。為了對(duì) remoteproc 組件進(jìn)行初始化和解除初始化,必須使用 remoteproc_resource_init API  remoteproc_resource_deinit API。如欲了解在 Linux 環(huán)境中如何使用 remoteproc,敬請(qǐng)參見 Linux 內(nèi)核文檔。

RPMSG 和處理器間通信

一旦遠(yuǎn)程固件啟動(dòng)并在遠(yuǎn)程處理器上運(yùn)行,就可使用 rpmsg API 在主機(jī)與遠(yuǎn)程軟件環(huán)境之間實(shí)現(xiàn)處理器間通信。當(dāng)使用 rpmsg 時(shí)需要理解的關(guān)鍵抽象和概念如下:

從主機(jī)角度看,rpmsg 器件代表一個(gè)遠(yuǎn)程處理器。

? rpmsg 通道是主機(jī)與遠(yuǎn)程處理器(也稱為 rpmsg 設(shè)備)之間的雙向通信通道。

? rpmsg 端點(diǎn)是可出現(xiàn)在 rpmsg 通道任意一側(cè)的邏輯抽象。

端點(diǎn)提供用于在主機(jī)與遠(yuǎn)程環(huán)境之間發(fā)送目標(biāo)消息的基礎(chǔ)架構(gòu)。

當(dāng)創(chuàng)建端點(diǎn)時(shí),用戶提供唯一的端點(diǎn)索引或允許 rpmsg 組件為端點(diǎn)分配一個(gè)索引。此外,用戶提供應(yīng)用定義的回調(diào),并將其與正在創(chuàng)建的端點(diǎn)關(guān)聯(lián)。

當(dāng)收到針對(duì)給定端點(diǎn)索引的消息時(shí),rpmsg 會(huì)參考所收到的數(shù)據(jù)負(fù)荷調(diào)用相關(guān)的接收回調(diào)。

用戶可在 rpmsg 通道的任意一側(cè)創(chuàng)建任意數(shù)量的端點(diǎn)。

沒有明確指向目標(biāo)端點(diǎn)索引的消息會(huì)到達(dá)與 rpmsg 通道相關(guān)聯(lián)的默認(rèn)端點(diǎn)。

? rpmsg 組件利用在初始化過程中注冊(cè)的、用戶提供的回調(diào)為用戶應(yīng)用通知通道創(chuàng)建和刪除等事件。

 4 – rpmsg 通道和端點(diǎn)抽象

 4 所示為 rpmsg 通道和端點(diǎn)抽象及其使用情況。rpmsg 組件與 remoteproc 協(xié)同建立并管理主機(jī)與遠(yuǎn)程環(huán)境之間的 rpmsg 通信通道。一旦主機(jī)上的 remoteproc 啟動(dòng)遠(yuǎn)程環(huán)境,遠(yuǎn)程環(huán)境上的 rpmsg 就會(huì)發(fā)送名稱服務(wù)公告。收到名稱服務(wù)公告后,主機(jī)會(huì)注冊(cè)已宣布的 rpmsg 器件,并建立 rpmsg 通道。通道建立后,在兩側(cè)調(diào)用由 rpmsg 通道創(chuàng)建的回調(diào),通知主機(jī)和遠(yuǎn)程應(yīng)用通道已建立。

此時(shí),主機(jī)和遠(yuǎn)程環(huán)境可利用分別針對(duì)分塊和不分塊傳輸請(qǐng)求的 rpmsg_sendxx API  rpmsg_trysendxx API 相互傳輸數(shù)據(jù)。當(dāng)遠(yuǎn)程環(huán)境調(diào)用 remoteproc_resource_deinit 時(shí),由 rpmsg 通道刪除的回調(diào)向主機(jī)應(yīng)用通知該事件,以平穩(wěn)終止基于 rpmsg 的通信鏈路。在遠(yuǎn)程環(huán)境無法響應(yīng)的情況下,主機(jī)可選擇使用 remoteproc_shutdown API 異步地關(guān)閉遠(yuǎn)程處理器。圖 5 中的偽代碼段給出了在主機(jī)環(huán)境中 rpmsg API  remoteproc API 的協(xié)同使用情況。

rpmsg 組件將 VirtIO 作為共享存儲(chǔ)器傳輸抽象層。VirtIO 有自己的根,可用作 lguestKVM  Mentor 嵌入式管理程序中客機(jī)到主機(jī)通信的 I/O 虛擬化標(biāo)準(zhǔn)。rpmsg 驅(qū)動(dòng)程序使用 VirtIO 層提供的服務(wù)與對(duì)方實(shí)現(xiàn)共享存儲(chǔ)器通信。rpmsg 驅(qū)動(dòng)程序?qū)嵗粋€(gè) rpmsg VirtIO 器件,并使用 VirtQueue 接口推送和消耗其通信另一方的數(shù)據(jù)。

用于開發(fā) AMP 系統(tǒng)的工具

AMP 應(yīng)用軟件的開發(fā)會(huì)產(chǎn)生一些獨(dú)特的挑戰(zhàn)。系統(tǒng)開發(fā)人員通常不得不同時(shí)調(diào)試異構(gòu) SoC 上部署在不同處理器的不同操作系統(tǒng)環(huán)境。采用可感知操作系統(tǒng)的統(tǒng)一調(diào)試環(huán)境不僅能改善調(diào)試體驗(yàn),還能提高生產(chǎn)力。Mentor Embedded Sourcery CodeBench 工具提供可感知所有受支持操作系統(tǒng)環(huán)境(包括Mentor Embedded Linux  Nucleus RTOS)的統(tǒng)一 IDE。此外,Sourcery CodeBench 還支持多種調(diào)試選項(xiàng),包括用于調(diào)試 Linux 內(nèi)核空間、Nucleus RTOS 和裸機(jī)環(huán)境的 JTAG 調(diào)試;以及針對(duì) Linux 用戶空間和 Nucleus RTOS 應(yīng)用的 GDB 調(diào)試。


 5 – 偽代碼給出了主機(jī)環(huán)境下關(guān)鍵 remoteproc  rpmsg API 的使用情況

在開發(fā) AMP 系統(tǒng)時(shí),軟件特性分析工具很有用,可用來了解異構(gòu)操作系統(tǒng)上部署的各種應(yīng)用在運(yùn)行時(shí)間的相互交互情況。每個(gè)操作系統(tǒng)實(shí)例通常使用一個(gè)獨(dú)立時(shí)鐘參考,而且給定操作系統(tǒng)環(huán)境中收集的任何特性分析數(shù)據(jù)都以操作系統(tǒng)本地的時(shí)基為基礎(chǔ)。Mentor Embedded Sourcery Analyzer 主機(jī)工具和 Mentor 的操作系統(tǒng)包含內(nèi)置算法,使用戶能夠以圖形方式查看和分析從統(tǒng)一時(shí)間參考的不同操作系統(tǒng)資源中收集到的跟蹤數(shù)據(jù)。該功能使用戶能夠深入了解復(fù)雜交互情況以及開發(fā) AMP 軟件時(shí)難以發(fā)現(xiàn)的時(shí)序問題。

開源運(yùn)行時(shí)間組件

Mentor 嵌入式多核框架與 Mentor 的開發(fā)工具和操作系統(tǒng)緊密集成。它支持各種不同的基于 ARM  SoC 和平臺(tái)。通過使用具有 Mentor 工具和操作系統(tǒng)的框架,用戶不必從頭設(shè)計(jì) AMP 系統(tǒng),而是只需執(zhí)行系統(tǒng)級(jí)考慮因素一節(jié)中所討論的任務(wù)。用戶可利用其中一種參考配置開始 AMP 應(yīng)用的開發(fā)工作,然后對(duì)系統(tǒng)配置進(jìn)行定制化處理,以滿足不同需求。

對(duì)于 AMP 系統(tǒng)設(shè)計(jì)而言,亟需一種標(biāo)準(zhǔn)化的軟件框架,使開發(fā)出的 RTOS 或裸機(jī)軟件能夠與開源 Linux 社區(qū)所采用的接口進(jìn)行互操作。為滿足該需求并促進(jìn)在行業(yè)中的應(yīng)用,Mentor Graphics 與賽靈思共同通過 OpenAMP 開源項(xiàng)目開放了 Mentor 嵌入式多核框架的運(yùn)行時(shí)間組件源代碼,并提供針對(duì) Zynq-7000 All Programmable SoC 的平臺(tái)支持。該項(xiàng)目目前由 Mentor Graphics 和賽靈思共同維護(hù)。


聲明: 聲明:凡本網(wǎng)注明"來源:儀商網(wǎng)"的所有作品,版權(quán)均屬于儀商網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編使用。
經(jīng)本網(wǎng)授權(quán)使用,并注明"來源:儀商網(wǎng)"。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,歸原版權(quán)所有人所有。目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如有作品的內(nèi)容、版權(quán)以及其它問題的,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
本網(wǎng)轉(zhuǎn)載自其它媒體或授權(quán)刊載,如有作品內(nèi)容、版權(quán)以及其它問題的,請(qǐng)聯(lián)系我們。相關(guān)合作、投稿、轉(zhuǎn)載授權(quán)等事宜,請(qǐng)聯(lián)系本網(wǎng)。
QQ:2268148259、3050252122。

久久中文久久字幕_国产精品99久久久久久www_国产亚洲精品自在久久_国产精品一区视频
日本不卡一二三区| 91国产精品电影| 一区二区在线不卡| 不卡av在线播放| 国产精品情侣自拍| zzjj国产精品一区二区| 久在线观看视频| 91av中文字幕| 久久久人成影片一区二区三区观看| 99在线热播| 福利在线一区二区| 9a蜜桃久久久久久免费| www..com日韩| 91黄在线观看| 久草精品电影| 久久最新资源网| 国产精品精品软件视频| 美女福利视频一区| 亚洲精品在线观看免费| 五月天色婷婷综合| 日本精品久久电影| 热久久美女精品天天吊色| 日韩视频免费播放| 欧美日韩一区二区三区在线观看免 | 黄网站色视频免费观看| 免费一区二区三区| 国产美女作爱全过程免费视频| 国产久一道中文一区| 91久久久一线二线三线品牌| 久久人91精品久久久久久不卡| 国产精品9999久久久久仙踪林| 久久久久久久久亚洲| 国产精品老女人视频| 国产精品国产亚洲精品看不卡 | 欧美精品做受xxx性少妇| 中文字幕久久综合| 日韩在线综合网| 日韩人妻精品一区二区三区 | 久久全国免费视频| 久久天堂电影网| 色综合久久精品亚洲国产| 视频一区二区在线观看| 韩国精品久久久999| 国产精品揄拍500视频| 国产高清不卡无码视频| 国产精品欧美一区二区三区奶水| 在线天堂一区av电影| 日韩欧美电影一区二区| 国产欧美日韩综合一区在线观看| 国产精品91一区| 国产精品国产精品国产专区蜜臀ah| 亚洲综合日韩中文字幕v在线| 色婷婷综合久久久久中文字幕| 欧美日本韩国一区二区三区| 北条麻妃av高潮尖叫在线观看| 久久久人成影片一区二区三区观看| 国产精品毛片一区视频| 亚洲免费精品视频| 欧美一级大片视频| 91九色精品视频| 精品久久久久久久久久中文字幕| 日韩av一级大片| 国产伦精品一区二区三区视频孕妇| 国产a级片免费看| 精品久久中出| 青草青草久热精品视频在线观看| 阿v天堂2017| 国产精品国产三级国产专区53| 欧美一区二区三区在线播放| 国内精品视频一区| 色老头一区二区三区| 亚洲在线www| 国产一区视频免费观看| 久久综合福利| 久久久久久av| 蜜桃av噜噜一区二区三| 日日噜噜噜夜夜爽亚洲精品| 午夜精品在线视频| 国产欧美久久久久| 国产精品国产对白熟妇| 欧美在线www| 久久精品五月婷婷| 亚洲国产一区二区精品视频| 国产视频99| 国产精品网红福利| 日韩免费观看av| 久久久人成影片一区二区三区| 久久久久成人精品| 韩国成人一区| 国产精品人人妻人人爽人人牛| 日韩视频在线播放| 久久艹国产精品| 日韩av免费看网站| 91精品91久久久久久| 亚洲va韩国va欧美va精四季| 91免费在线观看网站| 亚洲人成网站在线观看播放| 成人免费观看a| 在线视频一区观看| www.av中文字幕| 一区二区传媒有限公司| 成人毛片网站| 亚洲欧美日韩综合一区| 粉嫩av一区二区三区免费观看| 在线日韩av永久免费观看| 国产精品亚洲自拍| 亚洲自拍中文字幕| 91麻豆蜜桃| 亚洲高清视频一区| 久久免费视频网站| 日韩中文字幕在线免费| 久久国产乱子伦免费精品| 日韩欧美电影一区二区| 久久久久久国产三级电影| 欧美一级黑人aaaaaaa做受| 久久精品中文字幕免费mv| 激情内射人妻1区2区3区| 欧美成年人视频网站| 国产日韩亚洲欧美在线| 欧美精品video| 国产经典一区二区三区| 欧美日韩视频免费| 免费97视频在线精品国自产拍| 国产日韩亚洲精品| 亚洲v日韩v欧美v综合| 日韩午夜在线视频| 国产免费人做人爱午夜视频| 一区二区在线观看网站| 久久精品国产综合精品| 国内视频一区二区| 一区二区三区免费看| 国产av天堂无码一区二区三区| 秋霞无码一区二区| 国产精品视频免费一区| 成人h视频在线| 青春草国产视频| 一区二区不卡在线| 色偷偷88888欧美精品久久久| 国产欧美在线看| 婷婷五月色综合| 国产精品日本一区二区| 8050国产精品久久久久久| 欧美日韩大片一区二区三区| 亚洲最大福利视频网| 日韩色av导航| 国产精自产拍久久久久久| 日韩久久久久久久久久久久久| 欧美精品在线第一页| 久久久人人爽| 国产男女猛烈无遮挡91| 日韩男女性生活视频| 中文字幕久精品免| 久久九九国产精品怡红院| 99国产精品久久久久老师| 黄色网在线视频| 亚洲欧洲精品一区二区| 久久亚洲精品国产亚洲老地址| 国产成人一区二区在线| 国产精品一区二区av| 欧美精品一区二区三区在线四季| 亚洲综合第一页| 精品久久精品久久| 久久精品国产电影| 国产精品99免视看9| 国产人妻互换一区二区| 欧美成ee人免费视频| 日产国产精品精品a∨| 亚洲中文字幕无码专区| 欧美成人精品一区| 日韩在线不卡视频| 91极品视频在线| 国产精品亚洲第一区| 国内精品视频久久| 日本一区二区三区www| 亚洲熟妇无码另类久久久| 蜜臀久久99精品久久久久久宅男 | 日韩免费黄色av| 亚洲va久久久噜噜噜久久天堂| 精品免费二区三区三区高中清不卡| 日韩三级成人av网| 久久99精品久久久久久久久久| 91成人在线视频观看| 国产精品制服诱惑| 国产男女在线观看| 国产美女久久精品香蕉69| 免费国产成人av| 国产原创中文在线观看| 黄色一级二级三级| 欧美少妇一级片| 人妻无码一区二区三区四区| 五月天在线免费视频| 亚洲va久久久噜噜噜| 亚洲欧洲三级| 天天干天天色天天爽| 欧美一区二区三区精品电影| 亚洲精品天堂成人片av在线播放| 亚洲国产精品影视| 岛国视频一区免费观看| 午夜欧美性电影| 日韩欧美黄色大片|