欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    嵌入式系统及应用优秀PPT.ppt

    • 资源ID:73771865       资源大小:4.71MB        全文页数:105页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式系统及应用优秀PPT.ppt

    嵌入式系统及应用嵌入式系统及应用你现在浏览的是第一页,共105页核心内容核心内容n交叉开发技术 n仿真开发技术n开发环境提供的主要工具nGNU的嵌入式开发环境nWindriver的集成开发环境n仿真开发工具ARMulator你现在浏览的是第二页,共105页9.1 概述概述 需要协调管理特殊的硬件资源 软件具有可配置裁剪特性 需要交叉编译环境 需要交叉调试环境 需要交叉测试环境 需要软件固化工具嵌入式软件开发的特点:你现在浏览的是第三页,共105页9.2 交叉开发技术交叉开发技术宿主机:开发系统目标机:运行平台你现在浏览的是第四页,共105页宿主机与目标机的差别宿主机与目标机的差别n硬件的差别:处理器不同n软件环境的差异:宿主机上有通用操作系统等系统软件提供软件开发支持,而目标机上除了调试代理没有其他用于嵌入式软件开发的软件资源你现在浏览的是第五页,共105页一、常用的交叉开一、常用的交叉开发方法发方法 1.Crash and Burn方式在宿主机上编写代码;在宿主机编译应用程序,生成可执行程序;固化到目标机的非易失存储器中;启动运行,若正常则转到;不正确则根据目标板上的信号显示估计错误位置,改写代码,纠正错误;返回重复操作;固化完成。你现在浏览的是第六页,共105页2.ROM Monitor方式 你现在浏览的是第七页,共105页优点优点:n实时控制目标机的内存单元、寄存器、设置断点等n调试采用目标机本身的串口、网口、USB口进行你现在浏览的是第八页,共105页ROM Monitor的缺点的缺点:目标机内存使用与运行时不一致 目标机CPU运行与正常运行时不一致 无法调试通讯占用端口的相关代码 若目标机CPU不支持硬件断点,则无法调试设置数据断点 无法调试系统启动初始化过程你现在浏览的是第九页,共105页3.ROM Emulator方式 ROM Emulator是一种用于替代目标机上ROM芯片的设备,插接到目标机的ROM插座上,取代ROM内存。你现在浏览的是第十页,共105页4.ICE方式 ICE是一种用于替代目标机上CPU的设备,可执行目标机CPU的指令,能将内部的信号输出到被控制的目标机,ICE上的内存也可以被映射到用户的程序空间。你现在浏览的是第十一页,共105页ICE方式 你现在浏览的是第十二页,共105页ICE方式的特殊调方式的特殊调试功能试功能 支持软件断点和硬件断点的设置设置复杂的断点和触发器实时跟踪目标程序的运行,并可实现选择性的跟踪支持“Time Stamp”允许用户设置“Timer”提供“Shadow RAM”,支持非干扰调试查询。你现在浏览的是第十三页,共105页5.OCD方式 采用两级CPU模式:正常运行模式 调试模式你现在浏览的是第十四页,共105页OCD方式的优点 性价比高 不占用目标机硬件资源 调试环境和运行环境一致 能调试底层系统软件你现在浏览的是第十五页,共105页OCD方式的缺点方式的缺点 调试的实时性不如ICE强 不支持非干扰调试查询 CPU必须有OCD功能 OCD标准不统一 你现在浏览的是第十六页,共105页BDM方方式式 你现在浏览的是第十七页,共105页二、交叉开发过二、交叉开发过程程 三个阶段:应用软件生成阶段 应用软件调试阶段 应用软件固化运行阶段你现在浏览的是第十八页,共105页交叉开发过程交叉开发过程 你现在浏览的是第十九页,共105页应用软件生成应用软件生成阶段阶段 你现在浏览的是第二十页,共105页应用软件调试应用软件调试阶段阶段 你现在浏览的是第二十一页,共105页应用软件固化应用软件固化阶段阶段 你现在浏览的是第二十二页,共105页三、交叉开发环境三、交叉开发环境 交叉编译环境 交叉调试环境 嵌入式开发支持环境 其他辅助工具你现在浏览的是第二十三页,共105页交叉开发环境交叉开发环境 你现在浏览的是第二十四页,共105页9.3 仿真开发技术仿真开发技术 利用计算机仿真技术模拟嵌入式硬件系统的真实运行,使软件开发和系统集成在虚拟平台上进行。你现在浏览的是第二十五页,共105页仿真开发结构图仿真开发结构图 你现在浏览的是第二十六页,共105页一、仿真开发分类一、仿真开发分类 纯软件仿真开发是利用宿主机上的资源模拟目标机实际硬件电路的运行,构建应用软件运行所需的虚拟硬件环境,提供嵌入式软件开发和调试的真正“软”平台。你现在浏览的是第二十七页,共105页纯软件仿真开发分纯软件仿真开发分类类 应用级仿真 编程接口级仿真 硬件级仿真你现在浏览的是第二十八页,共105页编程接口级仿真编程接口级仿真 你现在浏览的是第二十九页,共105页硬件级仿真开发硬件级仿真开发 你现在浏览的是第三十页,共105页二、仿真开发过程二、仿真开发过程 你现在浏览的是第三十一页,共105页三、仿真开发环境三、仿真开发环境 你现在浏览的是第三十二页,共105页四、仿真开发环境四、仿真开发环境的特点的特点 不需要提供实际的目标硬件环境;编译调试都在宿主机上进行;可以最大限度地保证软硬件同时开发。你现在浏览的是第三十三页,共105页9.4 开发环境提供的主开发环境提供的主要工具要工具 项目管理器 项目配置工具 源码编辑工具 C RTL(C Run-Time Library)RTOS开发支持包 交叉编译工具 交叉调试工具 交叉测试 性能分析工具等你现在浏览的是第三十四页,共105页一、项目管理一、项目管理 项目管理器一般采用通用的工作区、项目管理方式,这能较好的支持在不同硬件平台上的软件移植。你现在浏览的是第三十五页,共105页二、配置剪二、配置剪裁裁 编译参数配置工具 实时操作系统裁剪工具 内存配置工具你现在浏览的是第三十六页,共105页三、源码编辑三、源码编辑 标准的文本编辑功能 支持语法色彩 简单的语法检查功能 源程序函数索引、定位功能显示调试信息文本保存的多中备份机制你现在浏览的是第三十七页,共105页四、目标代码编译四、目标代码编译生成生成 嵌入式开发环境一般提供工具make,它利用编译器、汇编器、链接器和库管理器等工具,根据Makefile文件,将源代码转换成目标代码。你现在浏览的是第三十八页,共105页1.目标代码生成目标代码生成 设置目标代码生成选项;C源码预处理;C源码编译成汇编代码;汇编语言程序转换为可重定位目标代码;可重定位的目标模块链接成目标程序;文件格式转换。你现在浏览的是第三十九页,共105页2.目标代码优化目标代码优化 合并已有常量;公共子表达式删除;控制流优化;寄存器变量使用优化;循环优化;冗余指令删除;窥孔优化。你现在浏览的是第四十页,共105页3.编译提示信息编译提示信息 错误信息:致命错误、一般错误和警告。过程信息 状态信息你现在浏览的是第四十一页,共105页4.库的使用库的使用 在开发大中型软件时,常把一些编译好的模块统一放到一个库中。你现在浏览的是第四十二页,共105页5.常用文件后缀常用文件后缀.c或.cc 或.cxx 或.cpp.h或.hpp.s或.asm.S.o或.obj.a或.lib.elf.omf.hex.eepk.cofl.s19或.s2或.s3m.lstn.map你现在浏览的是第四十三页,共105页五、交叉调试五、交叉调试 硬件:连接线、仿真头、转换板等连接硬件。软件:宿主机端调试工具和目标机端ROM Monitor你现在浏览的是第四十四页,共105页交叉调试定义交叉调试定义 调试器能够通过某种方式远程控制目标机上被调试程序的运行模式,并且具备查看和修改目标机上的内存、寄存器以及被调试程序中的变量等功能。你现在浏览的是第四十五页,共105页交叉调试与非交叉调交叉调试与非交叉调试比较试比较交叉交叉交叉交叉调试调试调试调试本地本地本地本地调试调试调试调试DebuggerDebugger和和DebuggeeDebuggee运行在运行在不同的不同的计计算机算机DebuggerDebugger和和DebuggeeDebuggee运行在同运行在同一台一台计计算机算机运行运行时时不一定需要操作系不一定需要操作系统统的的调试调试支持支持运行运行时时需要操作系需要操作系统统的的调试调试支持支持DebuggeeDebuggee装装载载由由DebuggerDebugger或或LoaderLoader完成完成DebuggeeDebuggee的装的装载载是由是由专门专门的的LoaderLoader程序完成程序完成需要通需要通过过外部通信的方式来控外部通信的方式来控制制DebuggeeDebuggee不需要外部的通信方式来控制不需要外部的通信方式来控制DebuggeeDebuggee可以直接可以直接调试调试不同指令集的程不同指令集的程序序只能直接只能直接调试调试相同指令集的程序相同指令集的程序你现在浏览的是第四十六页,共105页1.交叉调试支持的交叉调试支持的功能功能 内存 寄存器 断点 程序执行 变量 显示模式 OS-aware你现在浏览的是第四十七页,共105页交交叉叉调调试试的的过过程程框框架架你现在浏览的是第四十八页,共105页2.任务级调试任务级调试 调试对象是一个用户任务(集),用户可以自定义调试范围。你现在浏览的是第四十九页,共105页任务级调试任务级调试你现在浏览的是第五十页,共105页3.系统级调试系统级调试 即内核级调试,调试对象是目标机上除调试代理外的所有程序,包括RTOS本身。你现在浏览的是第五十一页,共105页系统级调试系统级调试你现在浏览的是第五十二页,共105页六、测试工具六、测试工具 嵌入式系统采用交叉测试,即嵌入式软件测试必须由宿主机和目标机协作完成。你现在浏览的是第五十三页,共105页1.仿真测试仿真测试 仿真测试环境可分为两类:一类要求用户改写I/O部分代码。无须改动其源程序。你现在浏览的是第五十四页,共105页纯软件仿真测试结纯软件仿真测试结构框架构框架 你现在浏览的是第五十五页,共105页2.交叉测试交叉测试 目标机的测试分为两类:仿真信号测试 实物测试你现在浏览的是第五十六页,共105页仿真信号测试的结仿真信号测试的结构构 你现在浏览的是第五十七页,共105页3.实时性测试实时性测试 静态时间分析。不执行被测程序,通过分析估计执行时间。动态实时检测。实际执行程序测试程序的时间特性。包括:在线仿真器、模拟器、插桩技术。你现在浏览的是第五十八页,共105页七、版本管理工具七、版本管理工具 版本管理是用户对项目文件版本进行控制的工具软件。包括:版本库和临时工作区。你现在浏览的是第五十九页,共105页嵌入式软件版本管理工具嵌入式软件版本管理工具的功能结构的功能结构 你现在浏览的是第六十页,共105页9.5 GNU的嵌入式开的嵌入式开发环境发环境 C编译器gcc make工具GNU make 开发调试工具gdb你现在浏览的是第六十一页,共105页一、一、gcc编译器编译器 gcc前端支持多种高级语言,后端支持多种平台,它是一个交叉编译器,可以把源代码编译成在其他硬件平台上运行的可执行代码。你现在浏览的是第六十二页,共105页1.编译过程编译过程 预处理 编译 汇编 链接你现在浏览的是第六十三页,共105页预处理预处理 执行源代码的预处理,处理完后生成一个以“.i”为后缀名的临时文件。你现在浏览的是第六十四页,共105页编译编译 将预处理后生成的源代码编译为后缀名为“.s”的汇编文件。你现在浏览的是第六十五页,共105页汇编汇编 gcc调用as汇编程序,将汇编语言代码转换为以“.o”为后缀名的中间代码。你现在浏览的是第六十六页,共105页链接链接 它调用ld链接程序,把所有目标代码以及静态库,定位链接生成最后的可执行程序或其他格式的目标文件。你现在浏览的是第六十七页,共105页test.ctest.c的的gccgcc编编译过程译过程你现在浏览的是第六十八页,共105页2.交叉交叉gcc的生成的生成 gcc的缺省配置是本地使用。当需要交叉gcc时,可利用Linux环境下提供的一些交叉gcc生成工具来重新配置。你现在浏览的是第六十九页,共105页交叉交叉gcc的生成过程的生成过程 重新生成binutils。生成Llinux Headers 生成目标机的Glibc 生成交叉GCC你现在浏览的是第七十页,共105页二、二、项目编译管理工项目编译管理工具具make 自动查找已修改的源程序文件,并对它们进行编译;对未改动的源程序文件,如果已经存在中间代码文件(“.o”文件)则不再重新编译;将所有的中间代码文件和库链接成可执行文件或特定格式的目标文件。你现在浏览的是第七十一页,共105页1.Make命令命令一般语法规则是:make-f makefile文件名 其他选项 目标名说明:-f:makefile的文件名字。目标名:所要更新目标的名称。两个常用选项。:-n:只显示生成指定目标的各命令,并不 实际执行,可以用来检查make文件中的错误。-p:显示并检查make文件中的所有宏定义和所有内部规则。你现在浏览的是第七十二页,共105页2.目标目标 make文件中描述了目标依赖于哪些源程序文件,按照什么样的规则生成。目标的状态取决于所依赖的源程序文件状态。语法规则为:你现在浏览的是第七十三页,共105页3.宏宏宏的基本定义语法为:marco_name=string而已定义宏的引用语法规则为:$(marco_name)或者$marco_name你现在浏览的是第七十四页,共105页Make内部预定义内部预定义的宏的宏$,表示当前目标名。等价于语句:你现在浏览的是第七十五页,共105页Make内部预定义内部预定义的宏的宏$*,表示去掉后缀的当前目标名。$,表示目标所依赖文件名。你现在浏览的是第七十六页,共105页4.符号符号%,对应于具体的文件名,表示命令本身不在屏幕上显示。:=,变量定义,它不是“=”符号。你现在浏览的是第七十七页,共105页符号符号例如:结果是:你现在浏览的是第七十八页,共105页5.函数函数语法格式如下:$(funcname arg1,argn)例如:SOURCES=$(wildcard*.c)产生一个所有以“.c”为后缀名的文件的列表,然后存入变量SOURCES中。你现在浏览的是第七十九页,共105页6.注释注释 make文件的注释是用“#”开头的语句。你现在浏览的是第八十页,共105页示示例例你现在浏览的是第八十一页,共105页三、三、gdb调试器调试器 运行程序,给程序加所需的执行条件。使程序在断点处暂停运行,并可继续运行。显示程序暂停时的状态信息。允许在暂停的程序中改变运行数据。程序运行出错后可以事后分析。支持远程调试。支持源码级调试。支持反汇编调试,可调试无源码的可执行文件。你现在浏览的是第八十二页,共105页1.Gdb的调试的调试过程过程串口接收程序test.c你现在浏览的是第八十三页,共105页LinuxLinux环境下环境下test.ctest.c的的gdbgdb调试过程调试过程你现在浏览的是第八十四页,共105页2.Gdb远程远程调试调试 宿主机端 通讯系统 目标机端你现在浏览的是第八十五页,共105页宿主机端宿主机端 宿主机上运行gdb主程序。调试步骤为:设置目标机的类型、通讯断口及通讯协议 建立宿主机与目标机的连接,进行与本地调试相似的远程调试。你现在浏览的是第八十六页,共105页宿主机端宿主机端 gdb提供了target命令设置调试目标及其参数,建立连接,格式为:target TYPE PARAMETERSgdb的target命令支持多种类型的调试目标设备。你现在浏览的是第八十七页,共105页宿主机端宿主机端 在使用串口建立连接之前,须使用Set命令设置串口的波特率。如:set remotebaud 9600 再使用target remote命令指定与目标机进行串口通信端口。如:target remote/dev/ttyS0你现在浏览的是第八十八页,共105页通讯系统通讯系统 硬件上:串口、并口、以太网口及红外等。软件上:专门定义的远程串行通信协议(RSP)。你现在浏览的是第八十九页,共105页调试信息数调试信息数据包据包 调试信息,开始用“$”符号作为标记,结尾用“#”符号。校验码,调试信息中所有字符的ASCII码相加后取256的模。格式:$#你现在浏览的是第九十页,共105页常用调试命令及常用调试命令及参数参数 g:查看CPU寄存器的值。G:设置CPU寄存器的值。maddr,count:从addr位置开始读count字节的数据。Maddr,count:从addr位置开始写count字节的数据。你现在浏览的是第九十一页,共105页常用调试命令及常用调试命令及参数参数 c/caddr:在当前位置继续执行程序或从addr开始。s/saddr:单步执行当前的指令,或者执行到指定的addr位置.k:杀掉target进程。?:打印出最近的信号值。T:允许目标机的stub发送gdb需要的基本寄存器信息。你现在浏览的是第九十二页,共105页目标机目标机端端 目标机上嵌入式应用程序须预先加入了stub模块,由stub模块进行串口驱动,进行gdb远程串口通信协议的解析,完成与宿主机gdb的通讯。你现在浏览的是第九十三页,共105页目标机端目标机端你现在浏览的是第九十四页,共105页Stub种类种类 i386-stub.c:适用于Intel公司386系列及兼容处理器。m68k-stub.c:适用于Motorola公司68K系列处理器。sh-stub.c:适用于Hitachi SH结构的处理器。sparc-stub.c:适用于SPARC结构的处理器。sparcl-stub.c:适用于Fujitsugongsi的SPARCLITE结构的处理器。你现在浏览的是第九十五页,共105页stub的基本结构在被调试应用程序的main()函数的开头插入两行代码:利用breakpoint()函数在程序中插入一个断点,使gdb获得控制权。以i386-stub.c文件为例:你现在浏览的是第九十六页,共105页Set_debug_traps()函数的源码如下:你现在浏览的是第九十七页,共105页Breakpoint()函数的源码如下:BREAKPOINT宏定义如下:你现在浏览的是第九十八页,共105页 系统接到中断请求后,调用中断向量为3的中断处理函数,实现代码如下:你现在浏览的是第九十九页,共105页9.6 Windriver集成开发环境集成开发环境Tornado 内核配置程序WindConfig 装载器Loader 图形化的交叉调试器WDB 工程配置工具 集成仿真VxSim C/C+编译环境ObjectCenter 命令行执行工具WindSh 你现在浏览的是第一百页,共105页Tornado 软件逻辑分析仪WindView 对象浏览器Browser 显示软件包ScopePak 性能检测包PerformancePak 代码测试器CodeTest 编辑工具Visual SlickEdit for Tornado 你现在浏览的是第一百零一页,共105页Workbench 你现在浏览的是第一百零二页,共105页Tornado与与Workbench的的功能对比功能对比 表表表表9-2 Tornado9-2 Tornado与与与与WorkbenchWorkbench的功能的功能的功能的功能对对对对比比比比项目项目项目项目Tornado Tornado Workbench Workbench 工程管理工程管理基本的工程管理功能,对分级的工程支持有限,并需基本的工程管理功能,对分级的工程支持有限,并需要手工修改要手工修改makefilemakefile等,比较麻烦等,比较麻烦支持任意工程的分级控制,采用简单的支持任意工程的分级控制,采用简单的“拖拉拖拉”方式就方式就可完成工程项目的分级构造,非常方便可完成工程项目的分级构造,非常方便工程项目工程项目支持可下载的工程项目和客户化的支持可下载的工程项目和客户化的VxWorksVxWorks工程项目工程项目增加了对系统引导工程项目、实时进程工程项目、文件增加了对系统引导工程项目、实时进程工程项目、文件系统工程项目、用户定制工程项目等的支持系统工程项目、用户定制工程项目等的支持编辑器编辑器功能比较简单,只能完成一般的编辑功能功能比较简单,只能完成一般的编辑功能具有语法分析功能,可以进行语法着色显示、符号定义具有语法分析功能,可以进行语法着色显示、符号定义查找、符号补全、函数参数提示等功能,具有强大的符查找、符号补全、函数参数提示等功能,具有强大的符号查找和浏览能力号查找和浏览能力断点设置断点设置支持任务级断点和全局断点支持任务级断点和全局断点增加支持对处理器硬件断点等的支持,并且对各种断点增加支持对处理器硬件断点等的支持,并且对各种断点还提供多种控制手段还提供多种控制手段仿真环境仿真环境基本的基本的VxWorksVxWorks仿真环境,可以操作主机系统中的文仿真环境,可以操作主机系统中的文件和网络访问件和网络访问增强了仿真环境中的复杂组网功能,提供了调用主机系增强了仿真环境中的复杂组网功能,提供了调用主机系统统APIAPI的能力,并可模拟中断信号的产生的能力,并可模拟中断信号的产生目标连接目标连接支持网络、串口等连接方式支持网络、串口等连接方式增加了对硬件仿真器的连接增加了对硬件仿真器的连接下载的代码量下载的代码量下载的目标代码一般在下载的目标代码一般在10MByte10MByte之内,超过之内,超过10MByte10MByte会出现下载速度慢,系统不稳定的问题会出现下载速度慢,系统不稳定的问题设计能力为可下载设计能力为可下载750MByte750MByte的目标代码,充分满足开发的目标代码,充分满足开发和调试需要和调试需要目标操作系统目标操作系统只支持只支持VxWorksVxWorks操作系统操作系统增加了对增加了对LinuxLinux操作系统的支持,并且还可以扩展到其它操作系统的支持,并且还可以扩展到其它目标操作系统目标操作系统目标系统数目目标系统数目单一的目标系统,同一个开发环境中同时只能建立一单一的目标系统,同一个开发环境中同时只能建立一个连接,调试一种类型的单板个连接,调试一种类型的单板可以同时进行多目标板、多可以同时进行多目标板、多CPUCPU体系结构的调试体系结构的调试多任务调试多任务调试不支持,每次只能挂接一个任务,或者进行系统级调不支持,每次只能挂接一个任务,或者进行系统级调试试支持,同时可挂接目标系统的多个任务或进程进行调试支持,同时可挂接目标系统的多个任务或进程进行调试第三方工具第三方工具结构比较封闭,集成第三方工具比较困难结构比较封闭,集成第三方工具比较困难采用采用EclipseEclipse的开放架构,第三方工具容易集成,且资源的开放架构,第三方工具容易集成,且资源丰富丰富你现在浏览的是第一百零三页,共105页9.7 仿真开发工具仿真开发工具ARMulator 指令集模拟器 仿真ARM处理器的体系结构和指令集,还可仿真存储器和外围设备。支持全部标准C库函数。通过Semihosting方式来实现程序中I/O功能。你现在浏览的是第一百零四页,共105页ARMulator的的组成组成 ARM处理器核心模块 存储器模块。外设模块:中断控制器、定时器、看门狗、堆栈跟踪器、显示管。你现在浏览的是第一百零五页,共105页

    注意事项

    本文(嵌入式系统及应用优秀PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开