技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于EmJTAG的ARM嵌入式系統(tǒng)調(diào)試工具

基于EmJTAG的ARM嵌入式系統(tǒng)調(diào)試工具

時(shí)間:2007-12-24 09:44:00來源:caojing

導(dǎo)語:?設(shè)計(jì)實(shí)現(xiàn)一個(gè)適用于基于EmJTAG的ARM嵌入式系統(tǒng)調(diào)試工具。它首先定義了一個(gè)輕量級(jí)的遠(yuǎn)程調(diào)試協(xié)議EmRDI,用于PC機(jī)與基于EmJTAG的ARM目標(biāo)板之間的交互過程。
摘要:設(shè)計(jì)實(shí)現(xiàn)一個(gè)適用于基于EmJTAG的ARM嵌入式系統(tǒng)調(diào)試工具。它首先定義了一個(gè)輕量級(jí)的遠(yuǎn)程調(diào)試協(xié)議EmRDI,用于PC機(jī)與基于EmJTAG的ARM目標(biāo)板之間的交互過程;然后描述了用意法半導(dǎo)體公司(ST)的ST72651芯片實(shí)現(xiàn)一個(gè)協(xié)議轉(zhuǎn)換器EmJTAG的技術(shù)細(xì)節(jié)。EmJTAG的功能就是將PC機(jī)的調(diào)試命令轉(zhuǎn)換成目標(biāo)板的JTAG時(shí)序信號(hào),以達(dá)到控制PC機(jī)和調(diào)試目標(biāo)板的目的。 關(guān)鍵詞: EmRDI EmJTAG 邊界掃描 遠(yuǎn)程調(diào)試 協(xié)議轉(zhuǎn)換器 引言 ARM嵌入式系統(tǒng)的大致開發(fā)流程是:先在PC機(jī)上編寫程序源代碼;由ARM的交叉編譯器編譯、鏈接生成一個(gè)目標(biāo)文件;然后將目標(biāo)文件轉(zhuǎn)化成可以下載到目標(biāo)機(jī)運(yùn)行的二進(jìn)制代碼,在目標(biāo)機(jī)上調(diào)試運(yùn)行;最終將調(diào)試成功的二進(jìn)制文件固化在目標(biāo)機(jī)中。這一系列過程中,最關(guān)鍵的步驟就是在PC機(jī)上調(diào)試在目標(biāo)機(jī)上運(yùn)行的程序。這就需要采用遠(yuǎn)程調(diào)試的方式,即在PC機(jī)上運(yùn)行調(diào)試器軟件,被調(diào)試程序在目標(biāo)機(jī)上運(yùn)行。 本文描述了這樣一個(gè)遠(yuǎn)程調(diào)試系統(tǒng):利用USB批量傳輸?shù)目煽啃?,將遠(yuǎn)程調(diào)試協(xié)議EmRDI的報(bào)文封裝在USB數(shù)據(jù)包中;協(xié)議轉(zhuǎn)換器EmJTAG再根據(jù)接收到的USB數(shù)據(jù)包中的協(xié)議信息,轉(zhuǎn)換成適當(dāng)?shù)腏TAG信號(hào)來控制和調(diào)試ARM核。協(xié)議轉(zhuǎn)換器EmJTAG由ST公司的ST72651芯片外加一片接口驅(qū)動(dòng)芯片74LVC244來實(shí)現(xiàn)。ST72651內(nèi)部集成了USB模塊和數(shù)據(jù)傳輸協(xié)處理器部件(DTC),通過對(duì)DTC的編程來產(chǎn)生控制ARM核的邊界掃描序列,以產(chǎn)生相應(yīng)的JTAG信號(hào)。 文章最終實(shí)現(xiàn)了PC機(jī)對(duì)ARM核的目標(biāo)機(jī)的調(diào)試功能:PC機(jī)的調(diào)試器軟件可以下載程序至目標(biāo)機(jī),實(shí)時(shí)控制目標(biāo)機(jī)上代碼的單步/全速運(yùn)行或停止,以及設(shè)置斷點(diǎn)和觀察點(diǎn)、讀寫寄存器/存儲(chǔ)器等。 1 系統(tǒng)組成及原理
如圖1所示,整個(gè)調(diào)試系統(tǒng)包括三部分: PC機(jī)(調(diào)試器)、協(xié)議轉(zhuǎn)換器(EmJTAG)以及目標(biāo)板(基于ARM核)。調(diào)試的目的是實(shí)現(xiàn)在PC機(jī)上控制目標(biāo)板單步或全速運(yùn)行,并可以實(shí)時(shí)地察看或修改寄存器及存儲(chǔ)器的值。 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)遠(yuǎn)程調(diào)試協(xié)議EmRDI,它采用點(diǎn)對(duì)點(diǎn)的連接方式,以請(qǐng)求響應(yīng)的方式進(jìn)行交互。調(diào)試請(qǐng)求由PC機(jī)上的調(diào)試器軟件發(fā)出,經(jīng)由USB總線傳輸至協(xié)議轉(zhuǎn)換器EmJTAG;EmJTAG解讀該協(xié)議請(qǐng)求,在執(zhí)行相應(yīng)的操作之后,以USB數(shù)據(jù)包的形式發(fā)送回PC機(jī)(即響應(yīng)過程)。 EmRDI協(xié)議定義了如下一些調(diào)試請(qǐng)求: 讀/寫核寄存器、讀/寫存儲(chǔ)器、設(shè)置/清除硬件斷點(diǎn)、設(shè)置/清除軟件斷點(diǎn)、設(shè)置/清除數(shù)據(jù)觀察點(diǎn)、復(fù)位、停止運(yùn)行、全速/單步運(yùn)行和返回處理器狀態(tài)/設(shè)備標(biāo)識(shí)符。經(jīng)驗(yàn)證,這些請(qǐng)求的組合,可以實(shí)現(xiàn)PC機(jī)對(duì)目標(biāo)機(jī)上ARM核的調(diào)試和控制功能。 EmRDI協(xié)議請(qǐng)求格式(16字節(jié))如下:
EmRDI協(xié)議響應(yīng)格式(8字節(jié))如下:
ARM核的芯片基本上都遵循JTAG規(guī)范,并帶有邊界掃描功能,此類芯片內(nèi)集成了一個(gè)JTAG電路結(jié)構(gòu)。JTAG電路由TAP(測(cè)試訪問端口)、TAP控制器、指令寄存器、測(cè)試數(shù)據(jù)寄存器組成。另外,ARM7TDMI核還包含了一個(gè)提供在線調(diào)試支持的EmbeddedICE宏單元。 EmJTAG和PC機(jī)通過USB總線連接,與目標(biāo)板則遵循JTAG調(diào)試接口標(biāo)準(zhǔn)。JTAG規(guī)范中,使用稱為“邊界掃描單元”的基本結(jié)構(gòu)。邊界掃描單元將JTAG電路與處理器邏輯電路聯(lián)系起來,通過它可以將一個(gè)輸入信號(hào)加載到處理器邏輯中而不影響邏輯的其他電路,也可以將處理器邏輯的輸出信號(hào)采樣到邊界掃描單元中。若干個(gè)邊界掃描單元構(gòu)成邊界掃描寄存器(BSR),也稱為“邊界掃描鏈”。邊界掃描寄存器的數(shù)據(jù)通過JTAG接口的TDI引腳和TDO引腳串行移進(jìn)移出。 PC機(jī)上需要實(shí)現(xiàn):EmJTAG的USB驅(qū)動(dòng)程序和調(diào)試器軟件。 EmJTAG上需要實(shí)現(xiàn):USB固件程序和用于產(chǎn)生JTAG信號(hào)的邊界掃描程序。 2 硬件設(shè)計(jì)和實(shí)現(xiàn) 系統(tǒng)的硬件部分主要是指協(xié)議轉(zhuǎn)換器EmJTAG的實(shí)現(xiàn)。協(xié)議轉(zhuǎn)換器的功能,就是接收PC機(jī)上調(diào)試器軟件發(fā)送的遠(yuǎn)程調(diào)試協(xié)議信息,將它轉(zhuǎn)換成JTAG時(shí)序信號(hào)發(fā)送到目標(biāo)板,然后把目標(biāo)板的反饋信息或者數(shù)據(jù)返回給PC機(jī)的調(diào)試器軟件。 EmJTAG使用意法半導(dǎo)體(ST)公司的ST72651芯片,原理框圖如圖2所示。它集成了1個(gè)全速(12 Mbps)USB接口模塊,1個(gè)時(shí)鐘頻率為24 MHz的數(shù)據(jù)傳輸協(xié)處理器(DTC),32 KB程序存儲(chǔ)空間,5 KB RAM,硬件I2C和SPI接口,多達(dá)47個(gè)可編程I/O口;工作電壓為2.7~5.5 V,由USB直接供電。
與PC機(jī)通信方面,USB接口部分只需要將DP腳上拉一個(gè)電阻,使PC機(jī)識(shí)別到USB設(shè)備。DTC模塊產(chǎn)生4個(gè)時(shí)鐘信號(hào)作為JTAG時(shí)鐘信號(hào)(TDI、TDO、TMS和TCK),由I/O口引出,外部再加一個(gè)接口驅(qū)動(dòng)芯片74LVC244,將這4個(gè)信號(hào)連接到標(biāo)準(zhǔn)的JTAG接口上。TAP控制器復(fù)位信號(hào)nTRST和系統(tǒng)復(fù)位信號(hào)nSRST通過I/O邏輯直接控制。 EmJTAG采用USB供電方式,同時(shí)在TCK引腳上連接一個(gè)指示燈BUSY,顯示系統(tǒng)是否處于忙狀態(tài)。接口驅(qū)動(dòng)芯片74LVC244由內(nèi)部集成的電壓校準(zhǔn)器產(chǎn)生3.3 V來提供電壓。 3 軟件設(shè)計(jì)和實(shí)現(xiàn) 軟件部分主要包括: PC機(jī)上的調(diào)試器軟件,EmJTAG協(xié)議轉(zhuǎn)換器的PC端驅(qū)動(dòng)程序以及EmJTAG中的固件程序。 3.1 PC機(jī)上的調(diào)試器軟件 采用VC++ 6.0 MFC。其主要功能是與EmJTAG的PC端驅(qū)動(dòng)程序通信,將調(diào)試命令通過USB總線發(fā)送至EmJTAG。 3.2 EmJTAG的PC端驅(qū)動(dòng)程序 使用Driverstudio3.1開發(fā)Windows下的USB驅(qū)動(dòng)程序,使EmJTAG和PC機(jī)的應(yīng)用程序可以進(jìn)行數(shù)據(jù)交互。 3.3 EmJTAG中的固件程序 固件程序使用意法半導(dǎo)體(ST)開發(fā)工具STVD7 for InDART STX進(jìn)行開發(fā)。這一部分也是調(diào)試系統(tǒng)最重要的部分,即如何產(chǎn)生JTAG時(shí)序信號(hào)控制ARM核。EmJTAG中的固件分成以下多個(gè)模塊實(shí)現(xiàn)。 3.3.1 DTC軟件插件程序模塊
DTC功能框圖如圖3所示。DTC是ST72651內(nèi)部集成的數(shù)據(jù)傳輸協(xié)處理器,也是一個(gè)通用的串行/并行通信接口。通過改變其內(nèi)運(yùn)行的插件程序,DTC可以方便地完成不同的高速數(shù)據(jù)傳輸操作。插件程序(最大為256字節(jié))開始時(shí)存放在ST72651的Flash中,芯片運(yùn)行的程序會(huì)將插件程序加載到DTC SW RAM中,然后控制DTC運(yùn)行這段插件程序。ST7核也可以讀寫DTC的數(shù)據(jù)傳輸緩沖區(qū),因此需要有一個(gè)仲裁電路用于防止ST7核和DTC訪問該緩沖區(qū)時(shí)發(fā)生沖突。DTC有一套簡(jiǎn)單的指令集。ST7核通過DTC控制寄存器DTCCR控制DTC的操作,通過DTC狀態(tài)寄存器DTCSR查詢DTC的狀態(tài),通過DTC指針寄存器DTCPR改變DTC的操作指針。 DTC有4種操作狀態(tài): 空閑狀態(tài)(IDLE),加載插件程序狀態(tài)(RAMLOAD),運(yùn)行狀態(tài)(RUNNING)和改變操作指針狀態(tài)(POINTERCHANGE)。通過改變DTCCR寄存器的RUN、INIT和LOAD位可以實(shí)現(xiàn)4種狀態(tài)間的轉(zhuǎn)換。 將插件程序加載到DTC SW RAM中的步驟如下: ◆ 清除DTCCR寄存器的RUN位,使DTC進(jìn)入IDLE狀態(tài),停止DTC; ◆ 設(shè)置DTCCR寄存器的LOAD位,使DTC進(jìn)入RAMLOAD狀態(tài),以允許寫DTC RAM; ◆ 將插件程序復(fù)制到DTC SW RAM中; ◆ 清除DTCCR寄存器的LOAD位,使DTC返回到IDLE狀態(tài),恢復(fù)DTC RAM寫保護(hù)。 使DTC運(yùn)行其RAM(即DTC SW RAM)中的插件程序的步驟如下: ◆ 清除DTCCR寄存器的RUN位,使DTC進(jìn)入IDLE狀態(tài),停止DTC; ◆ 將插件程序的起始地址填入DTCPR寄存器中; ◆ 設(shè)置DTCCR寄存器的INIT位,使DTC進(jìn)入POINTERCHANGE狀態(tài),將DTCPR寄存器中的值復(fù)制到DTC中; ◆ 清除DTCCR寄存器的INIT位,使DTC返回到IDLE狀態(tài); ◆ 設(shè)置DTCCR寄存器的RUN位,使DTC進(jìn)入RUNNING狀態(tài),開始運(yùn)行。 DTC運(yùn)行的插件程序?qū)崿F(xiàn)的功能是: 將數(shù)據(jù)傳輸緩沖區(qū)內(nèi)的數(shù)據(jù)快速移出I/O口,或者從I/O快速移入數(shù)據(jù)到數(shù)據(jù)傳輸緩沖區(qū)中。DTC操作的I/O口作為4個(gè)JTAG信號(hào): TCK、TMS、TDI和TDO。TCK作為移入/移出數(shù)據(jù)的觸發(fā)時(shí)鐘;TDI作為移出數(shù)據(jù)出口;TDO作為移入數(shù)據(jù)進(jìn)口;TMS作為輸入信號(hào),與TCK一起決定TAP控制器狀態(tài)的轉(zhuǎn)移過程。插件程序用DTC匯編指令編寫,然后通過ST公司提供的一個(gè)簡(jiǎn)單匯編器將匯編源代碼轉(zhuǎn)化成DTC機(jī)器指令,燒寫到ST72651的Flash存儲(chǔ)器中。 3.3.2 掃描鏈操作模塊 掃描鏈操作模塊調(diào)用DTC軟件插件程序,完成初始化TAP控制器、掃描鏈1操作和掃描鏈2操作。 (1) 初始化TAP控制器 TAP控制器的基本功能是產(chǎn)生時(shí)鐘信號(hào)和控制信號(hào)。它包括一個(gè)帶有16個(gè)狀態(tài)的有限狀態(tài)機(jī): Test-Logic-Reset狀態(tài)、Run-Test/Idle狀態(tài)、Select-DR-Scan狀態(tài)、Select-IR-Scan狀態(tài)、Capture-DR狀態(tài)、Shift-DR狀態(tài)、Exit1-DR狀態(tài)、Pause-DR狀態(tài)、Exit2-DR狀態(tài)、Update-DR狀態(tài)、Capture-IR狀態(tài)、Shift-IR狀態(tài)、Exit1-IR狀態(tài)、Pause-IR狀態(tài)、Exit2-IR狀態(tài)和Update-IR狀態(tài)。 初始化TAP控制器的目的是使TAP控制器進(jìn)入Select-DR-Scan狀態(tài)。無論當(dāng)前TAP控制器處于什么狀態(tài),只要在TMS為1時(shí)產(chǎn)生5個(gè)TCK信號(hào),TAP控制器就進(jìn)入Test-Logic-Reset狀態(tài)。因此,使TAP控制器進(jìn)入Select-DR-Scan狀態(tài)的步驟為: 首先使TMS為1,產(chǎn)生5個(gè)TCK信號(hào),使TAP控制器進(jìn)入Test-Logic-Reset狀態(tài);然后使TMS為0,產(chǎn)生1個(gè)TCK信號(hào),使TAP控制器進(jìn)入Run-Test/Idle狀態(tài);最后使TMS為1,產(chǎn)生1個(gè)TCK信號(hào),使TAP控制器進(jìn)入Select-DR-Scan狀態(tài)。 (2) 掃描鏈1操作 掃描鏈1是JTAG電路中的一種測(cè)試數(shù)據(jù)寄存器,主要用于內(nèi)核測(cè)試和調(diào)試過程。 掃描鏈1有33位,按掃描先后順序依次為: BREAKPT位(輸入),D31~D0(輸入/輸出)。掃描鏈1操作的目的是移入BREAKPT位,同時(shí)向/從數(shù)據(jù)總線移入/移出 32位數(shù)據(jù)。操作步驟如下: ◆ 初始化TAP控制器,使TAP控制器進(jìn)入Select-D-RScan狀態(tài); ◆ 使TMS為1,產(chǎn)生1個(gè)TCK信號(hào),使TAP控制器進(jìn)入Select-IR-Scan狀態(tài); ◆ 使TMS為0,產(chǎn)生2個(gè)TCK信號(hào),使TAP控制器進(jìn)入Shift-IR狀態(tài); ◆ 往TAP控制器的指令寄存器移入JTAG指令SCAN_N(b0010); ◆ 使TAP控制器退出Shift-IR狀態(tài),進(jìn)入ShiftDR狀態(tài); ◆ 往掃描鏈選擇寄存器移入b0001,選擇掃描鏈1; ◆ 使TAP控制器退出Shift-DR狀態(tài),進(jìn)入Shift-IR狀態(tài); ◆ 往TAP控制器的指令寄存器移入JTAG指令I(lǐng)NTEST(b1100); ◆ 使TAP控制器退出Shift-IR狀態(tài),進(jìn)入Shift-DR狀態(tài); ◆ 移入BREAKPT位,移入數(shù)據(jù)D31~D0(或移出數(shù)據(jù)D31~D0); ◆ 使TAP控制器退出Shift-DR狀態(tài),進(jìn)入Select-DR-Scan狀態(tài)。 (3) 掃描鏈2操作 掃描鏈2也是一種測(cè)試數(shù)據(jù)寄存器,用于訪問EmbeddedICE宏單元的寄存器。 掃描鏈2有38位,按掃描先后順序依次為:EmbeddedICE寄存器的D0~D31,EmbeddedICE寄存器的A0~A4,讀/寫位。掃描鏈2操作的目的是讀寫EmbeddedICE宏單元的寄存器。操作步驟如下: ◆ 初始化TAP控制器,使TAP控制器進(jìn)入Select-DR-Scan狀態(tài); ◆ 使TMS為1,產(chǎn)生1個(gè)TCK信號(hào),使TAP控制器進(jìn)入Select-IR-Scan狀態(tài); ◆ 使TMS為0,產(chǎn)生2個(gè)TCK信號(hào),使TAP控制器進(jìn)入Shift-IR狀態(tài); ◆ 往TAP控制器的指令寄存器移入JTAG指令SCAN_N(b0010); ◆ 使TAP控制器退出Shift-IR狀態(tài),進(jìn)入Shift-DR狀態(tài); ◆ 往掃描鏈選擇寄存器移入b0010,選擇掃描鏈2; ◆ 使TAP控制器退出Shift-DR狀態(tài),進(jìn)入Shift-IR狀態(tài); ◆ 往TAP控制器的指令寄存器移入JTAG指令I(lǐng)NTEST(b1100); ◆ 使TAP控制器退出Shift-IR狀態(tài),進(jìn)入Shift-DR狀態(tài); ◆ 移入欲寫的數(shù)據(jù)D0~D31; ◆ 移入欲讀寫的EmbeddedICE寄存器的地址; ◆ 移入讀/寫位(讀為0,寫為1); ◆ 如果為讀,則移出讀到的EmbeddedICE寄存器的值D0~D31; ◆ 使TAP控制器退出Shift-DR狀態(tài),進(jìn)入Select-DR-Scan狀態(tài)。 3.3.3 EmbeddedICE寄存器操作模塊 EmbeddedICE寄存器的讀寫通過對(duì)掃描鏈2操作實(shí)現(xiàn)。讀時(shí),將欲讀的EmbeddedICE寄存器地址作為參數(shù)調(diào)用掃描鏈2操作函數(shù);寫時(shí),將欲寫的值和EmbeddedICE寄存器地址作為參數(shù)調(diào)用掃描鏈2操作函數(shù)。 3.3.4 高層調(diào)試命令模塊 通過調(diào)用掃描鏈操作模塊和EmbeddedICE寄存器操作模塊,實(shí)現(xiàn)了讀寫核寄存器、讀寫存儲(chǔ)器、斷點(diǎn)及觀察點(diǎn)操作、單步或全速運(yùn)行程序等高級(jí)調(diào)試控制命令。這些命令供主程序狀態(tài)機(jī)模塊調(diào)用。 3.3.5 USB接口驅(qū)動(dòng)模塊 USB接口驅(qū)動(dòng)模塊主要包含5個(gè)函數(shù): 函數(shù)InitUSB()用于初始化USB模塊;函數(shù)USB_Polling()處理USB主機(jī)發(fā)來的USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求,實(shí)現(xiàn)USB枚舉階段的傳輸過程,同時(shí)根據(jù)狀態(tài)寄存器的標(biāo)志位調(diào)用相應(yīng)的端點(diǎn)處理函數(shù);CTR(正確傳輸)中斷服務(wù)程序用于處理端點(diǎn)上發(fā)生的各種中斷;函數(shù)USB_RecvDataEP2(unsigned char *dp, uint8 len)和USB_SendDataEP2(unsigned char *dp, uint8 len)用于從端點(diǎn)2接收和發(fā)送USB包。 3.3.6 主程序狀態(tài)機(jī)模塊 主程序狀態(tài)機(jī)模塊循環(huán)調(diào)用USB接口驅(qū)動(dòng)模塊的USB_RecvDataEP2()函數(shù),接收調(diào)試器發(fā)來的命令報(bào)文,根據(jù)命令報(bào)文的主命令號(hào)和次命令號(hào)調(diào)用高層調(diào)試命令模塊的相應(yīng)命令函數(shù),并將命令函數(shù)返回的數(shù)據(jù)通過調(diào)用USB_SendDataEP2()函數(shù)返回給調(diào)試器,最終根據(jù)命令函數(shù)返回的狀態(tài)通過調(diào)用USB_SendDataEP2()函數(shù)發(fā)確認(rèn)報(bào)文給調(diào)試器。 結(jié)語 本文構(gòu)造了一個(gè)支持ARM核的嵌入式系統(tǒng)調(diào)試工具。它首先定義了一個(gè)輕量級(jí)的遠(yuǎn)程調(diào)試協(xié)議EmRDI,然后使用ST72651芯片實(shí)現(xiàn)了協(xié)議轉(zhuǎn)換器EmJTAG。目前該調(diào)試工具已經(jīng)應(yīng)用于實(shí)際嵌入式系統(tǒng)開發(fā)中,PC機(jī)上的調(diào)試器軟件可以通過EmJTAG下載程序到基于ARM核的目標(biāo)機(jī)上,并實(shí)現(xiàn)設(shè)置/清除斷點(diǎn)、設(shè)置/清除觀察點(diǎn)、全速/單步/停止運(yùn)行程序等基本的調(diào)試功能。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:嵌入式應(yīng)用軟件任務(wù)劃分的原則

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)