ARM调试方案-某科技公司arm培训.ppt

上传人:wuy****n92 文档编号:70746445 上传时间:2023-01-27 格式:PPT 页数:53 大小:2.51MB
返回 下载 相关 举报
ARM调试方案-某科技公司arm培训.ppt_第1页
第1页 / 共53页
ARM调试方案-某科技公司arm培训.ppt_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《ARM调试方案-某科技公司arm培训.ppt》由会员分享,可在线阅读,更多相关《ARM调试方案-某科技公司arm培训.ppt(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1TMT H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R L DARM 调试方案调试方案2TM2122v01 ARM Debug Solutions议程议程n基本的调试需求基本的调试需求n你需要什么样的功能?nARM公司的调试和开发工具。n嵌入式核的调试嵌入式核的调试n实现和利用JTAG的调试方案n停止模式和监控模式n嵌入式跟踪嵌入式跟踪n使用ETMnARM 开发板开发板3TM3122v01 ARM Debug Solutions?基本的调试需求基本的调试需求n运行控制运行控制n设置数据访问断点n设置指令断点n代码的单步执

2、行n状态控制状态控制n处理器状态n读写寄存器值n系统状态n系统内存访问n下载代码n执行历史执行历史n执行跟踪信息n内存访问历史4TM4122v01 ARM Debug SolutionsARM 调试系统组件调试系统组件执行AXD调试器的主机(ADS的一部分)和 Multi-ICE server协议转换器(Multi-ICE)跟踪接口单元(MultiTrace)开发板(Integrator Core Module)Trace PortJTAG Port并口串口l/以太网5TM5122v01 ARM Debug Solutions议程议程n基本的调试需求基本的调试需求n你需要什么样的功能?nARM

3、公司的调试和开发组成工具。n嵌入式核调试嵌入式核调试n实现和利用JTAG的调试方案n停止模式和监控模式n嵌入式跟踪嵌入式跟踪n整体化和利用ETMnARM 开发板开发板6TM6122v01 ARM Debug Solutions嵌入式核调试嵌入式核调试5 线JTAGn被调试的系统可以是最终的系统!n也可以用第三方的协议转换工具:nDevSupp/ICE_Analyz/DataAddressControlBREAKPTCPUARM调试器和Multi-ICE server(可以运行在不同的机器上)TAPEmbeddedICELogic-RT7TM7122v01 ARM Debug Solutions

4、嵌入式嵌入式ICE逻辑逻辑n两个观察点单元两个观察点单元n可以通过监控地址总线,数据总线和控制信号来探测观察点(watchpoint)和断点。n每个单元可以用来提供n1 观察点,或n1个 ROM或RAM里的硬件断点,或nRAM里的多个软件断点n调试控制和状态寄存器调试控制和状态寄存器n调试通讯通道调试通讯通道n注意:注意:ARM10nARM10家族的调试结构是不同的,虽然原理是一样的。n一共包括8个观察点单元n6 个在指令地址总线上n2个在数据地址总线上 n这个将在另外一个课题中讲解8TM8122v01 ARM Debug Solutions观察点观察点ControlAddrValueData

5、ValueControlValueAddrMaskDataMaskControlMaskA31:0ComparatorWatchpointD31:00 xF0000 x00 xffffffffData write0 xF000MemoryLocation to be watched一个观察点观察点就是一个断点,这个断点在当以某种方式访问特定内存区域时被触发这个例子里,当向地址0 xF000 写时,将触发这个观察点每一个观察点单元可以设置成一个观察点观察点,而且只能设置一个9TM9122v01 ARM Debug Solutions硬件断点硬件断点0 x8000ARM-0 x3Thumb-0 x

6、10 xffffffffOpcode fetch0 x8000MemoryBreakpoint to be set hereControlAddrValueDataValueControlValueAddrMaskDataMaskControlMaskA31:0ComparatorBreakpointD31:0当内核试图执行内存里一个特定地址的指令时,将会触发一个硬件断点硬件断点这个例子里,当要执行从地址0 x8000索取的指令时,将会触发一个硬硬件断点件断点硬件断点硬件断点可以在RAM或ROM里设置每个观察点单元可以被用来设置一个硬件断点硬件断点,而且只能一个10TM10122v01 ARM

7、 Debug Solutions软件断点软件断点Memory0 xffffffff0 xeeeeeeee0 x0Opcode fetchControlAddrValueDataValueControlValueAddrMaskDataMaskControlMaskA31:0ComparatorBreakpointD31:01.Read and store opcode2.Write“special”value一个软件断点软件断点是当一个特定的指令从任何地址被预取时触发的一个断点这个例子表明了观察点单元的配置 这对所有的软件断点都是一样的为了设置一个断点,可以使用Multi-ICE在特定的地方写

8、一个特别的指令这些只能在RAM里在操作每一个观察点单元可以用来设置无数的软件断点软件断点.(The“special”value)11TM11122v01 ARM Debug Solutions命中一个断点命中一个断点n停止模式调试停止模式调试n由标准的 EmbeddedICE&EmbeddedICE-RT支持n内核进入调试状态和停止状态n内核与系统的其余部分分离n发出DBGACK信号(调试器通过JTAG而检测到)n没有中断处理,除非调试器重新启动执行代码n处理器和系统的状态可以通过扫描内核的指令来察看和修改,紧接着执行它们n监控模式调试监控模式调试n只由增强功能的 EmbeddedICE-RT

9、支持n在ARM9E,ARM10 和稍后的ARM7TDMI版本上有n内核通过一个异常中断而进入常驻软件监控程序n可以连续处理中断n处理器和系统的状态可以通过监控程序的调试命令来察看和修改12TM12122v01 ARM Debug Solutions读系统状态读系统状态(在停止模式在停止模式)从地址0 x8000 向后读 10 个字MOV r0,#0 x8000LDMIA r0!,r1-r10-system speedSTMIA r0,r1-r10-debug speedTDITCKDatabusARMxDTCKregistersDebugspeedDatabusARMxDTDOr1-r1013

10、MCLKregistersSystemspeedDatabusARMxD2F DE13TM13122v01 ARM Debug SolutionsDebuggerRMHost(RealMonitor.dll)主机主机RMTargetApplicationCode+Data目标板目标板经过经过DCC传送的传送的实时监控协议实时监控协议监控模式调试监控模式调试n主机-在AXD 和 Multi-ICE之间的控制器n实时监控协议 n非常简单的协议n快速 没有出错检查n允许后台命令n实际目标板n小的调试监控程序(2.0V时工作时工作n在3.3V时,启动电流是400mA,一般操作时是 120mAnMult

11、i-ICE 2.1 出售时跟随一个适当的电源nMulti-ICE用用20-针针 连接器连接器n多个接地点n灵活的时钟配置n可以与不同的时钟速度设备同步n 长 JTAG 电缆n也可以仅仅利用5 个信号来调试n请小心停止系统时钟请小心停止系统时钟n复位考虑复位考虑.24TM24122v01 ARM Debug SolutionsTCK,TDI,TMS,TDO协议转换接口TCK,.nTRSTnRESETARMReset Circuit复位复位nSRSTnTRSTnnTRST 和 nSRST 必须通过一个上拉电阻来连接nMulti-ICE 在 nTRST 有开放的连接25TM25122v01 ARM

12、Debug Solutions测验测验1)EmbeddedICE 逻辑一共包括多少个观察点单元?2)ROM上可以设置多少个断点?3)利用DCC semihosting比一般的 semihosting有什么优势?4)为了激活ARM的调试功能,DBGEN 的信号应该怎么连接?5)为什么Multi-ICE需要半字访问内存?6)EmbeddedICE-RT 提供了哪些额外的调试功能?26TM26122v01 ARM Debug Solutions议程议程n基本调试需求基本调试需求n你需要什么样的功能?nARM公司的调试和开发集成工具。n嵌入式核调试嵌入式核调试n实现和利用JTAG的调试方案n停止模式和

13、监控模式n嵌入式跟踪嵌入式跟踪n整体化和利用ETMnARM 开发板开发板27TM27122v01 ARM Debug SolutionsETM的机制的机制(嵌入式跟踪宏单元嵌入式跟踪宏单元)n为什么需要实时跟踪功能?为什么需要实时跟踪功能?n实时系统不允许停止!n传统的调试(断点和单步执行)不能满足n必须利用捕获的实际代码运行来调试n为什么不用其它的调试工具而用为什么不用其它的调试工具而用ETM?nEmbeddedICE-RT为调试通讯通道提供了低的带宽n只适用于程序状态信息n外部的指令需要写到通讯通道里n独立的处理器比嵌入式处理器容易调试独立的处理器比嵌入式处理器容易调试n一个独立的处理器,

14、或者:n用外部的ICE单元代替处理器,或者n用逻辑分析仪探测处理器的信号n当用嵌入式ARM内核时两个都不可能时怎么办啊?28TM28122v01 ARM Debug Solutions16 bit wideRAM8 bit wideROM20 bit Address16 bit Data带嵌入式处理器的典型带嵌入式处理器的典型ASICSerialPortsARMDataAddressDisplayControlTimer32 bit wideInternalMemoryExternalBusInterface29TM29122v01 ARM Debug Solutions问题问题n没有外部可见

15、的片上没有外部可见的片上ASIC 总线总线n带缓存的处理器(例如,ARM920T)带有与设备内部相连的核/缓存总线nICE 版本必须在全速系统速度下运行版本必须在全速系统速度下运行n随着处理器速度的增加,ICE越来越难n同时必须提供ICE 工具(例如,触发器)n实时跟踪需要确定的实时跟踪需要确定的高带宽的接口高带宽的接口 n需要地址总线,数据总线和控制信号n对于 ARM7TDMI,有80多个 引脚n很多很多 ASICs 使用相同的处理器核使用相同的处理器核nICE必须为每一个 ASIC定做30TM30122v01 ARM Debug SolutionsARM 实时跟踪实时跟踪n嵌入式跟踪单元(

16、ETM)n实时指令跟踪n实时数据访问跟踪n包含 ICE功能(触发和过滤逻辑)nMultiTrace 跟踪端口分析器(TPA)n深度缓冲器捕获跟踪n跟踪调试工具n通过JTAG/Multi-ICE 配置ETM跟踪n从ETM/MultiTrace里接收压缩的跟踪数据n利用拷贝原代码映象来对ETM跟踪5ARMcoreETMRAMROMTAPcontrollerTraceTrigger/Filter9,13,21 线 跟踪接口5 线 JTAG 接口串口/以太网口并口运行跟踪调试工具的主机(ADS的附件)31TM31122v01 ARM Debug SolutionsETM 结构结构TRACECLK3(E

17、TM v1)4(ETM v2)PIPESTAT 2:0(ETM v1)PIPESTAT 3:0(ETM v2)ARM Core到和来自ARM的数据可综合的可综合的 ETM 块块n=4,8 or 16跟踪端口(9,13 or 21引脚)nETM 监控器和简要的监控器和简要的ARM 总线信号总线信号JTAG 接口Trigger&Filter LogicPipelineStatusGenerationTracePacketCapturenTRACEPKTn-1:0TRACESYNC(ETMv1 only)FIFOTAP Controller5到ARM的控制来自ARM的控制来自ARM的地址确定的ETM

18、-ARM 接口(只在ETM v2)32TM32122v01 ARM Debug Solutions跟踪端口说明跟踪端口说明nTRACECLK:与处理器时钟有相同的频率与处理器时钟有相同的频率nPIPESTAT(流水线状态流水线状态)表明表明:n程序流n是否有一个相关联的TRACEPKTnETM 状态nTRACEPKT(跟踪包跟踪包)可能包含以下一个或多个特征:n数据地址n数据值n指令地址nTRACESYNC(只在只在ETM v1有有):n用来在ETM和TPA之间进行同步*可以参考可以参考ETM规范得到更多的信息规范得到更多的信息n=4,8 or 16跟踪端口(9,13 or 21 引脚)TRA

19、CECLKPIPESTAT 2:0(ETM v1)PIPESTAT 3:0(ETM v2)TRACEPKTn-1:0TRACESYNC(ETMv1 only)33TM33122v01 ARM Debug Solutions指令跟踪指令跟踪n与指令跟踪有关的跟踪端口部分与指令跟踪有关的跟踪端口部分:nPIPESTAT 表明内核的流水线状态(例如,一个指令是否被执行)nTRACEPKT 当需要时,包含一个跳转目标地址n以上两条和代码映象相结合,就可以进行调试了n指令跟踪能够被高度压缩指令跟踪能够被高度压缩 n典型地,一个 9-位的跟踪端口可以处理只有指令的跟踪nETM v1 最好的情形:3位的跟踪

20、信息来跟踪32位的代码nETM v2 最好的情形:4位的跟踪信息来跟踪64位的代码n可以用过滤和触发器:可以用过滤和触发器:n只对内存地址和/或区域进行跟踪n只有在特定的ETM顺序状态,计数器等才进行跟踪n技术注解:技术注解:TraceEnable(一个一个 ETM 内部信号内部信号)可以激发指令跟踪。它是由触发可以激发指令跟踪。它是由触发器器/过滤器事件和资源控制的。过滤器事件和资源控制的。34TM34122v01 ARM Debug Solutions数据跟踪数据跟踪n与数据跟踪有关的跟踪端口部分与数据跟踪有关的跟踪端口部分:nTRACEPKT 包含数据地址或数据值n只有数据地址改变的位被

21、广播(目的是节省带宽)n每一次跟踪运行都可以配置每一次跟踪运行都可以配置 ETM:n数据地址或数据值(或两个都有)n读或写(或两个都有)n需要一个高的带宽跟踪所有数据需要一个高的带宽跟踪所有数据(有程序相关有程序相关)n一个带有45个字节FIFO的13-位跟踪端口可以跟踪大部分数据传输n如果想跟踪更多数据访问则需要一个21-位的跟踪端口n过滤器和触发器对保持跟踪数据的管理很重要过滤器和触发器对保持跟踪数据的管理很重要n如果在跟踪信息里有一个 FIFO 溢出标记,那么就表示有部分的跟踪信息被丢掉n推荐使用可编程的过滤器和触发逻辑n技术注解:技术注解:ViewData(一个一个ETM的内部信号的内

22、部信号)激发了数据跟踪激发了数据跟踪(如果如果TraceEnable是假时被忽略掉是假时被忽略掉).它是由触发器它是由触发器/过滤事件和资源控制的。过滤事件和资源控制的。35TM35122v01 ARM Debug Solutions跟踪例子跟踪例子0 x1010 MOV r0,#30 x1014 SUBS r0,r0,#10 x1018 BNE 0 x10140 x101C LDR r1,#0 x4000.0 x4000 0 x4321 dataIEIEIEr0=2IEIEIEINID.r0=1r0=00 x101C LDR r1,#0 x4000r1ID0 x1018 BNE 0 x101

23、40 x1010 SUBS r0,r0,#10 x1018 BNE 0 x10140 x1014 SUBS r0,r0,#10 x1018 BNE 0 x10140 x1014 SUBS r0,r0,#10 x1010 MOV r0,#3Corresponding InstructionnonenonenonenonenonenonenoneTRACEPKTbranch not takenINCommentPIPESTATr0=0IEdirect branch takenIEr0=1IEdirect branch takenIEr0=2IEr0=3IE 假设数据跟踪是激活的(ViewData

24、被声明了)n基本指令和直接跳转的基本指令和直接跳转的ETM跟踪跟踪由PIPESTAT=IE 或 IN来解码直接跳转直接跳转36TM36122v01 ARM Debug Solutions指令跟踪局限指令跟踪局限n调试器需要一个代码的拷贝来做参考调试器需要一个代码的拷贝来做参考n自动修改代码部分将不能和ETM一起工作n调试器必须知道代码映象的地址映射调试器必须知道代码映象的地址映射n代码必须在连接时的地址执行n带有固定代码地址的虚拟内存配置是可以的n现在不支持动态重定位代码n请注意请注意“覆盖覆盖”(例如:把代码调入片上例如:把代码调入片上RAM)n如果有很多代码段运行在相同的地址,跟踪不能区分

25、哪一部分在运行。这个例子里,跟踪解压是不可能的。n解决办法是给内存区域命名(见下一页)37TM37122v01 ARM Debug Solutions重叠和命名重叠和命名n硬件的命名将每一个段都映射到相同的实际存储器上n用不同的“别名”连接每一个重叠的段执行nPC值标识了哪一个段在执行AAAAAAABCBBBBABCCCCCABC外部外部ROM片上片上RAM(命名的命名的)注意:必须用命名的方法设计存储器系统AAA16K 片上RAM016K32K48K64K16K RAMA13:0A14A15ARMDecoderA31:16SELIGNORED38TM38122v01 ARM Debug So

26、lutions控制跟踪控制跟踪nETM里的资源是可以被过滤和控制的:里的资源是可以被过滤和控制的:n要跟踪的指令n要跟踪的数据访问n外部跟踪端口分析器的触发nETM的资源由以下部分组成:的资源由以下部分组成:n8 个数据比较器n8 对全范围地址比较器n16个地址解码器n4 个16-位计数器n1 个3-状态序列器n对于ASIC:最多 4用户输入,4个用户输出n一个事件可以由任何两个资源逻辑组成:例如一个事件可以由任何两个资源逻辑组成:例如“within address range 1 AND data value equals 0 xFFFFFFFF”n不同的不同的ETM 实现有不同数量的触发资

27、源实现有不同数量的触发资源n可以看技术文档得到更详细的资料39TM39122v01 ARM Debug Solutions哪一个哪一个ETM?n根据你的ARM内核来选择 ETM7,ETM9,或者 ETM10n选择小的,中等的或大的模式n选择跟踪端口的宽度(4/8/16)n如果高的吞吐率(数据跟踪)很重要的时候,可以选择更宽的端口n可以考虑与其它引脚的多路复用技术(例如GPIO)n调试时可以使用大的宽的,产品时可以使用简单的,窄的ETMn使用ATPG 和插入扫描来对产品进行测试nETM 提供了验证环境套件n下一页将总结配置和数据的大小40TM40122v01 ARM Debug Solution

28、sETM 配置配置4/8/164/8/164/8Port width4518 or 209 or 10FIFO Depth60k35k25kGate count大的大的中等的中等的小的小的ETM v1(ETM7,9)603015FIFO Depth4/8/164/8/164/8/16Port width75k50k35kGate count大的大的中等的中等的小的小的ETM v2(ETM10)16848411682Addr Comparators大的大的中等的中等的小的小的功能功能Range ComparatorsAddr DecodersCountersExt.Outputs12401482

29、0Data ComparatorsSequencers011Ext.Inputs24441TM41122v01 ARM Debug Solutions实现跟踪实现跟踪(1)n所有需要的信号连接到所有需要的信号连接到ARM 核核n没有缓存的内核与地址/数据总线和控制信号相连n有缓存的内核输出内核信号到宏单元边缘(例如:ARM920T 版本1)nASIC上提供跟踪端口上提供跟踪端口n经过基座上输出的最高频率是多少?nASIC上要支持多个ARM内核吗?n考虑跟踪端口与别的引脚多路复用吗?n最终产品中去除以减少引脚数量吗?nARM 跟踪捕获和跟踪捕获和JTAG的标准连接器的标准连接器n38-路的 AM

30、P MICTOR 连接器(高密度)ARM7TDMIARM7TDMI-SARM720T rev3ARM7EJARM9TDMIARM9E-S/9EJ-SARM920T rev1/922TARM966E-SARM946E-SARM926EJ-SETM7ETM9ARM1020EETM1042TM42122v01 ARM Debug Solutions实现跟踪实现跟踪(2)n对对 ARM7 和和 ARM9 内核内核:nCPU 时钟应该自由运行(利用 nWAIT,而不是时钟延长),但不是至关重要的nFIFO FULL 信号可以被用来停止处理器信号可以被用来停止处理器n但是如果FIFO 满了时,将影响实时性

31、能nETM设计的目标不是低功耗设计的目标不是低功耗n在正常运行操作(没有跟踪)模式下,ETM不应该被时钟驱动ETMCLKPWRDOWN(通过JTAG控制)ARMCLKJTAGn更多更详细的信息请看:更多更详细的信息请看:ETM 规范ETM7/9/10 技术参考手册(TRMs)ETMEN43TM43122v01 ARM Debug Solutions跟踪捕获跟踪捕获n需要一个外部的跟踪端口分析仪需要一个外部的跟踪端口分析仪(TPA)来捕获来捕获 ETM 的输出的输出nTPAs 可以在触发事件之前,发生时或之后来跟踪nTPAs 带有很深的跟踪捕获缓冲器nTPA 的缓冲器通过很高速度的上行连接(通常

32、是以太网)来把数据返回给主机 PCn当前可选择的当前可选择的TPA:nMulti-Trace*nAgilent 逻辑分析仪(需要 Multi-ICE 或者 Agilent JTAG 探测器)nAgilent ARM(E5904B)的跟踪端口分析仪 http:/ 逻辑分析仪*nhttp:/ Multi-ICE 2.0 或或 更新的更新的nLauterbach 也提供跟踪工具、仿真器、调试器也提供跟踪工具、仿真器、调试器nhttp:/ ARM Debug SolutionsARM MultiTracen与与 Multi-ICE(2.0+)连接一起工作连接一起工作n通过以太网跟踪,通过JTAG口控制

33、运行n支持 9,13 和 21 引脚的跟踪端口,频率可高达 200 MHzn1.0V-3.3V目标电压n支持将跟踪时钟速率降低一半,在上升和下降沿捕获数据n也可以从第三方那获得跟踪分析仪方案也可以从第三方那获得跟踪分析仪方案n访问:访问:MultiICEPCTargetBoardJTAGMultiTraceLAN45TM45122v01 ARM Debug Solutions跟踪调试工具概况跟踪调试工具概况nADS 1.1/1.2-TDT 1.1.1 作为附加工具加到作为附加工具加到 AXD里里n有额外的用户接口功能来支持跟踪n通过JTAG配置 ETMn收集跟踪信息n解码跟踪信息46TM461

34、22v01 ARM Debug Solutions跟踪配置跟踪配置nETM 寄存器设置的寄存器设置的 GUI 接口接口n对所有可能的跟踪和触发ETM配置进行全权访问n适合于已实现的资源对话窗口n存储存储/恢复恢复 触发器的例子触发器的例子47TM47122v01 ARM Debug Solutions跟踪输出跟踪输出n映射回执行窗口n产生交叉源码察看48TM48122v01 ARM Debug Solutions问题问题1)跟踪需要多少个引脚?2)跟踪输出应该使用什么样的物理连接器?3)跟踪端口(TRACECLK)的速度是多少?4)大量的数据跟踪需要什么大小的跟踪端口?5)怎么更好地减少跟踪引

35、脚的多少?6)什么类型的程序不能被跟踪?7)如果需要覆盖跟踪,应该需要什么样的硬件功能?49TM49122v01 ARM Debug Solutions议程议程n基本调试需求基本调试需求n你需要什么样的功能?nARM公司的调试和开发组成工具。n嵌入式核调试嵌入式核调试n实现和利用JTAG的调试方案n停止模式和监控模式n嵌入式跟踪嵌入式跟踪n整体化和利用ETMnARM 开发板开发板50TM50122v01 ARM Debug SolutionsEvaluator-7TnARM技术的简单介绍,价格低技术的简单介绍,价格低n包括包括:nSamsung KS32C50100控制器n512k 闪存,51

36、2k SRAMn2 串口,7个 LED 显示n复位和中断开关nMulti-ICE 连接器n板上Angel 调试监控工具nADS评估版n电压和电缆线可以从网上购买可以从网上购买51TM51122v01 ARM Debug SolutionsIntegrator 平台平台n核模块核模块n ARM 内核n 至少 256kb SSRAMn 多达 256Mb SDRAMn 可以叠 4 层n逻辑模块逻辑模块n多达 2M门的FPGAn1Mb SRAMn分析仪/跟踪 连接器n时钟发生器nASIC 平台平台n可达5 个核/逻辑 模块n系统总线时钟n32Mb 闪存nFPGA系统控制器nAMBA 和PCI 扩展还有

37、接口模块,还有接口模块,分析器模块和分析器模块和 移植模块移植模块请访问:请访问:52TM52122v01 ARM Debug Solutions参考资料参考资料nMulti-ICEnMulti-ICE 用户手册,附录,readme.txt 和 troubleshoot.txtnADS 1.2:AXD 和 armsd 调试器手册nADS 1.2:调试目标手册(第5章:Semihosting SWIs)n应用注释 31:使用 EmbeddedICEnMultiTracenETM7,ETM9,ETM10 技术参考手册n嵌入式跟踪宏单元规范nMultiTrace 用户手册n跟踪调试工具用户手册n通用通用n你使用的 ARM 内核的调试信息n开发板开发板

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com