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

    嵌入式系统原理复习题及答案(共11页).doc

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

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

    嵌入式系统原理复习题及答案(共11页).doc

    精选优质文档-倾情为你奉上嵌入式系统原理复习题1、 嵌入式系统的概念广义上讲,凡是带有微处理器的专用软硬件系统都可称为嵌入式系统。如各类单片机和DSP系统。这些系统在完成较为单一的专业功能时具有简洁高效的特点。但由于他们没有操作系统,管理系统硬件和软件的能力有限,在实现复杂多任务功能时,往往困难重重,甚至无法实现。从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的嵌入式系统。本书所谓的嵌入式系统是指狭义上的嵌入式系统。根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。2、 嵌入式系统的特点1) 系统内核小2) 专用性强3) 运行环境差异大4) 可靠性要求高5) 系统精简和高实时性操作系统6) 具有固化在非易失性存储器中的代码7) 无自举开发能力3、 嵌入式系统的硬件平台由哪些部分组成嵌入式系统的微硬件包括嵌入式核心芯片、存储器系统及外部接口4、 什么是分时系统、软实时系统、硬实时系统,它们的区别是什么?分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。这样的系统无法实时响应外部异步事件。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。 软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,仅仅是轻微的降低了系统的吞吐量。5、 嵌入式系统的分类按嵌入式微处理器的位数分类a) 4位b) 8位c) 16位d) 32位e) 64位按软件实时性需求分类a) 非实时系统b) 软实时系统c) 硬实时系统按嵌入系统的复杂程度分类b) 小型嵌入式系统c) 中型嵌入式系统d) 复杂嵌入式系统6、 ARM9处理器的工作状态有哪些ARM状态,Thumb状态 7、 ARM9处理器的内部寄存器结构ARM处理器总共有37个寄存器,可以分为以下两类寄存器 :1) 31个通用寄存器 :R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_frq-R14_frq。 2)6个状态寄存器 CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq 。8、 ARM9处理器的工作模式有哪些用户,FIQ,IRQ,SVC,中止,未定义,系统9、 CPSR寄存器各数据位的作用CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。10、 如何实现ARM状态和Thumb状态的切换ARM处理器在两种工作状态之间切换方法:进入Thumb状态:当操作数寄存器Rm的状态位bit0为1时,执行BX Rm指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ,FIQ,Undef,Abort和SWI)返回时,自动切换到Thumb状态。进入ARM状态:当操作数寄存器Rm的状态位bit0为0时,执行BX Rm指令进入ARM状态。如果处理器进行异常处理(IRQ,FIQ,Undef,Abort和SWI),在此情况下,把PC放入异常模式链接寄存器LR中,从异常向量地址开始执行也可以进入ARM状态。 11、 ARM为何集成了32位的ARM指令集和16位的Thumb指令集ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题,ARM体系结构又增加了变种,开发了一种新的指令体系,这就是Thumb指令集。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度。12、 ARM指令寻址方式与ARM指令集中各类常用指令的用法(内容太多,第三章全部内容!)13、 什么是交叉编译,为什么要进行交叉编译在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,这个编译过程就叫交叉编译。原因:有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。14、 简述构建交叉编译链的主要步骤1) 获取相关的源代码和补丁包2) 它们都存放在src目录下3) 安装binutils4) 安装Linux header5) 安装Glibc 头文件6) 编译GCC Stage17) 使用刚编译出的GCC编译Glibc8) 重新编译GCC,即GCCStage215、 简述嵌入式系统的开发流程主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最终得到最终产品。16、 嵌入式系统与通用计算机的区别一是能力不同。通用计算机系统通常什么都能做,我们买个电脑,上网、听音乐、看电影、做软件都不在话下。一般面向某一特定应用,不是什么都能干。例如鼠标里的嵌入式系统任务只是监视鼠标的按键,并向主CPU发送键码,数码相机里面的嵌入式系统主要进行图像处理,让它们什么都能做,有点难也没必要。   二是大小不同。通用计算机系统通常对个头没有要求,台式机占据一张桌子,大型服务器可以占据一个房间,笔记本放到膝盖上就行。嵌入式系统由于要嵌入到它服务的主体里面,一般都比较小,而且要与服务的主体有机结合成为一个整体。   三是实时性要求不同。实时性指完成任务的时间要求。通用计算机系统一般实时性要求不高,但嵌入式系统往往实时性要求很高。比如汽车里的嵌入式系统,如果发动机过热,必须要求在规定的时间内作出反应,如果像PC那样不紧不慢的,后果可想而知。   四是可靠性要求不同。电脑死机估计每个人都经常遇到,死机了怎么办?重启就是。但是如果火箭发射时里面的嵌入式系统死机了.,   五是二次开发能力不同。我们买来个电脑,通常也就装了个操作系统,其它的程序我们需要什么就可以装什么,我们甚至可以打开机箱,加几条内存。但嵌入式系统通常买来后就那样了,软件和硬件都不变了。数码相机相信多数人没有打开过,也没有再安装什么新软件。倒是智能手机可以装一些软件,但能力有限。       六是数量不同。嵌入式系统的数量远大于通用计算机系统的数量。因为一个通用计算系统中至少包括数十个嵌入式系统。更别说其它的嵌入式系统了。       17、 常见的嵌入式操作系统有哪些,各自有什么特点1) VxWorks:性能优越,开发调试便利,强大的技术支持,但是昂贵的价格让开发者望而却步。2) Windows CE:精简的模块化操作系统多硬件平台支持支持有线和无线的网络连接稳健的实时性支持丰富的多媒体和多语言支持强大的开发工具3) Palm OS:3Com公司产品,专门为掌上电脑开发的32位的嵌入式操作系统占有非常小的内存,基于Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB)Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其它外部设备通信、传输数据拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序具有强开放性,现在有大约数千种专门为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基于Palm OS的掌上电脑功能得以不断扩展。操作系统的节能功能。在Palm OS的应用程序中,如果没有事件运行,则系统设备进入半休眠(doze)的状态;如果应用程序停止活动一段时间,则系统自动进入休眠(sleep)状态。合理的内存管理。Palm的存储器全部是可读写的快速RAM,动态RAM(Dynamic RAM)类似于PC机上的RAM,它为全局变量和其它不需永久保存的数据提供临时的存储空间;存储RAM(Storage RAM)类似于PC机上的硬盘,可以永久保存应用程序和数据。Palm OS的数据是以数据库(database)的格式来存储的。4) 嵌入式Linux:嵌入式Linux OS逐渐形成了可与Windows CE等EOS相抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作系统的理想选择。开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。精简的内核,性能高、稳定,多任务。适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。能够提供完善的嵌入式GUI以及嵌入式X-Windows。提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等应用程序。提供完整的开发工具和SDK,同时提供PC上的开发版本。用户可定制,可提供图形化的定制和配置工具。常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。完善的中文支持,强大的技术支持,完整的文档。18、 什么是Boot Loader,ARM系统中Boot Loader的主要作用是什么Boot Loader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们能初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。作用:硬件初始化,操作系统引导。19、 简述Boot Loader的启动过程 大多数 BootLoader 都包含两种不同的操作模式:启动加载模式和下载模式。启动加载模式也称为自主模式,即 BootLoader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。而下载模式则是目标机上的 BootLoader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件。从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中。这种模式通常在第一次安装内核与根文件系统时被使用,或系统更新时使用。一般嵌入式系统的Boot Loader较为常用的是启动加载模式,它的加载流程也是我们要重点讨论的内容。    (1)启动部分   启动部分主要是实现初始化硬件的功能。在参考板的BootLoader目录下,会发现一些.s文件,可能会是init.s或者是reset.s等,这样的文件是CPU加电后最先执行的代码。接着Oal.exe通过Startup函数完成硬件的初始化,StartUp 函数是Boot Loader的入口函数。该函数一般是使用汇编语言编写,与CPU关系非常紧密,能完成初始化CPU、内存等核心硬件。    Startup.s代码与硬件平台的Bootloader启动代码共用。如果是热启动,即在该函数调用之前已经启动了Bootloader程序,相当基本硬件初始化已经完成,则直接跳转到OALStartUp函数中;否则需要进行硬件中断屏蔽、内存、系统时钟频率、电源管理等硬件的基本初始化过程。在系统硬件初始化完毕之后,Startup调用OALStartUp函数,OALStartUp函数主要完成将OEMAddressTable表传递给内核,然后调用KernelStart函数跳转到内核。因此,这部分工作是BootLoader的一大重点。    (2)主控部分 StartUp 函数初始化CPU等核心硬件并跳转到Main函数后,系统就会转入C语言代码执行环境。这时函数分为3个模块:BLCOMMON、Download 、FLASH 。其中BLCOMMON模块是由微软提供的,执行一些逻辑上的功能,因此建议开发人员不要对其进行修改。而Download 、FLASH 中的函数与硬件平台息息相关,因此对于每种硬件平台都要将函数的实现进行修改。    其中,BLCOMMON库是与BootLoader程序链接在一起的,BLCOMMON库的入口点为BootloaderMain函数,它是Startup汇编函数完成后跳转至该入口的。Main函数的主要任务时调用BLCommon中的 BootloaderMain()函数,这是BootLoader的主控函数,它控制了BootLoader的完整执行流程。这部分代码由C语言实现,是BLCOMMON代码的一部分,它可以用来执行比较复杂的操作。比如检测内存和Flash的有效性、检测外部设备接口、检测串口并且向已经连接的主机发送调试信息、通过串口等待命令、启动网络接口、建立内存映射等汇编无法完成的工作。     (3)下载部分   一般在平台调试完毕后,可以在不用人工干预的情况下自动加载CE,这也是BootLoader的功能之一。而在调试阶段时,这需要通过Loader所支持的命令来进行操作的,借助于这些命令不仅可以完成硬件平台的部分测试,还能完成CE的BootLoader程序最为重要的一个功能-下载CE映像。如果说硬件调试功能可以由其它的程序代替而不放入BootLoader中,但是下载映像文件却是BootLoader必需的功能。    CE映像文件通常叫做nk.bin,它是Windows CE二进制数据格式文件,不仅包含了有效的程序代码,还有按照一定规则加入的控制信息。当然,也可以选择生成.sre格式的代码文件,但是相于对前一种格式,它的代码要长很多,所需要的下载时间也更长。    (4)支持DOC部份 对于WinCE操作系统而言,丰富的多媒体功能是其一大特点。但是随之而来的问题是,如果选择了图形界面和中文支持,系统很容易大大超出嵌入式系统上百KB的数量级。而DOC(Disk On Chip)则提供了一种相对廉价的大存储容量的解决方案。    DOC本质上是一种加以软件控制的NAND格式的Flash,通过TFFS这一软件层提供对WinCE的支持。由于DOC不能像内存一样被直接访问,所以其加载WinCE的过程有些特殊,必须要在BootLoader中加入专门的代码,才能使用DOC来存放WinCE映像文件20、 Linux内核源码是如何组织的,主要的目录文件有哪些?arch包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录 下,其中比较重要的包括:kernel  内核核心部分mm      内存管理 math-emu    浮点单元仿真lib   硬件相关工具函数boot    引导程序pci      PCI总线和power CPU相关状态 block 部分块设备驱动程序       crypto 常用加密和散列算法如 AES、SHA等 还有一些压缩和CRC校验算法。 /*/ drivers     放置系统所有的设备驱动程序;每种驱动程序又各占用一个子目录:如,/block 下为块设备驱动程序,比如 ide(ide.c)。如果你希望查看所有可能包含文件系统的设备是如何初始化的,你可以看drivers/block/genhd.c中的device_setup()。它不仅初始化硬盘,也初始化网络,因为安装nfs文件系统的时候需要网络;fs      文件系统代码,每个支持的文件系统有相应的子目录,如cramfs,yaffs,jffs2等 。 include      包括编译内核所需的大部分头文件,与平台无关的头文件放在include/linux子目录下,平台相关的头文件如include/asm-arm init        这个目录包含核心的初始化代码(注:不是系统的引导代码),包含两个文件main.c和Version.c,这是研究核心如何工作的好的起点之一。 kernel       主要的核心代码,此目录下的文件实现了大多数linux系统的内核函数,其中最重要的文件当属sched.c;同样,和体系结构相关的代码在arch/*/kernel中。 Lib库函数代码。Mm        这个目录包括所有独立于 cpu 体系结构的内存管理代码,如页式存储管理内存的分配和释放等;而和体系结构相关的内存管理代码则位arch/*/mm/,例如arch/i386/mm/Fault.c;   Net网络支持代码sound        音频设备驱动代码Scripts         描述文件,脚本,用于对核心的配置;documentation        关于内核各部分的通用解释和注释ipc        进程间通信的代码。security        主要是一个SELinux的模块。Modules       模块文件目录,是个空目录,用于存放编译时产生的模块目标文件。 /*/ 在每个子目录下,都有一个 Makefile 和一个Readme 文件,仔细阅读这两个文件,对内核源码的理解很有用。 其中顶层目录下的 Makefile 负责整个内核的编译,编译的时候递归的调用各个目录下的 Makefile 文件,最终将产生内核的可执行映像文件。    Makefile:分布在Linux内核源码中的Makefile定义了Linux内核编译的规则。Makefile  决定编译哪些文件、 怎样编译这些文件 、按什么顺序连接这些文件。config:在配置内核时生成的一个文件,根据.config来决定使用哪些Makefile。  21、 内核移植的一般步骤第一阶段:1、获取源码解压2、在系统中添加对平台(ARM)的支持:toplevel Makefile 改交叉编译器路径3、改平台输入:arch/arm/mach-s3c2440/mach-smdk2440.c4、改机器码,与U-Boot配合才能启动:arch/arm/tools/mach-types5、改镜像的存放地:arch/arm/boot>Makefile默认镜像存在arch/arm/boot6、做自己的配置单:#make menuconfig加载2410的配置单修改System type修改版本信息:general setup使支持交叉编译器kernel features7、保存.config并复制一个配置单的备份8、编译镜像:#make distclean#make zImage9、启动内核看console信息第二阶段:1、移植NandFlash驱动:(驱动内核已做好,只修改几个地方)arch/arm/plat-s3c24xx/common-smdk.c改分区信息改读写匹配时间Drivers/mtd/nand/s3c2410.c去掉ECC校验(内核与U-Boot校验不同)#make menuconfig添加NandFlash支持2、完善串口驱动(内核只支持两个串口,可把红外接口修改为串口)(可选操作)红外改串口:arch/arm/mach-smdk2440.cdrivers/serial/s3c2410.c和samsung.c配置菜单3、移植文件系统1、获得yaffs文件系统源码和yaffs文件系统补丁解压2、内核中添加yaffs支持 打补丁 改配置单Device Drivers、File system3、编译BusyBox:目的是生成文件系统所需要的一些目录和文件3.1、解压BusyBox源码进入源码目录添加编译器路径改Makefile3.2、改BusyBox配置单#make menuconfig保存配置单3.3、编译安装BusyBox#make; make install生成文件系统部分源码在_install4、构建文件系统:目的是构建一个比较完整的文件系统4.1、构建框架主目录:root_2.6.30.4子目录:复制:BusyBox生成的_install目录下的目录新建:#mkdir dev etc home lib mnt opt proc root sddisk systmp udisk var web usr/lib usr/share4.2、添加文件dev设备目录/etc配置文件目录/home用户目录/lib库目录/mnt移动设备挂载目录/opt与QT等相关/proc虚拟文件系统和目录/root超级用户目录/sys可能mdev建目录/tmp临时文件目录/var临时文件目录/usr/bin串口有关5、编译文件系统镜像:#mkyaffs2image root_2.6.30.4 root_2.6.30.4.bin得到文件系统镜像第三阶段:1、移植网卡驱动2、移植USB驱动3、移植LCD驱动4、移植触摸驱动5、移植声卡驱动6、移植SD卡驱动7、移植IIS驱动8、移植RTC驱动9、移植看门狗驱动22、 嵌入式系统中根文件系统架构是如何组织的1./bin目录 该目录下存放所有用户都可以使用的、基本的命令,这些命令在挂接其它文件系统之前就可以使用,所以/bin目录必须和根文件系统在同一个分区中。2./sbin 目录 该目录下存放系统命令,即只有管理员能够使用的命令,系统命令还可以存放在/usr/sbin,/usr/local/sbin目录下,/sbin目录中存放的是基本的系统命令,它们用于启动系统,修复系统等,与/bin目录相似,在挂接其他文件系统之前就可以使用/sbin,所以/sbin目录必须和根文件系统在同一个分区中。3、/dev目录 该目录下存放的是设备文件,设备文件是Linux中特有的文件类型,在Linux系统下,以文件的方式访问各种设备,即通过读写某个设备文件操作某个具体硬件。比如通过"dev/ttySAC0"文件可以操作串口0,通过"/dev/mtdblock1"可以访问MTD设备的第2个分区。4./etc目录 该目录下存放着各种配置文件,对于PC上的Linux系统,/etc目录下的文件和目录非常多,这些目录文件是可选的,它们依赖于系统中所拥有的应用程序,依赖于这些程序是否需要配置文件。在嵌入式系统中,这些内容可以大为精减。5./lib目录 该目录下存放共享库和可加载(驱动程序),共享库用于启动系统。运行根文件系统中的可执行程序,比如:/bin /sbin 目录下的程序。6、/home目录 用户目录,它是可选的,对于每个普通用户,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置文件。7./root目录 根用户的目录,与此对应,普通用户的目录是/home下的某个子目录。8./usr目录 /usr目录的内容可以存在另一个分区中,在系统启动后再挂接到根文件系统中的/usr目录下。里面存放的是共享、只读的程序和数据,这表明/usr目录下的内容可以在多个主机间共享,这些主要也符合FHS标准的。/usr中的文件应该是只读的,其他主机相关的,可变的文件应该保存在其他目录下,比如/var。/usr目录在嵌入式中可以精减。9、 /var目录 与/usr目录相反,/var目录中存放可变的数据,比如spool目录(mail,news),log文件,临时文件。10、/proc目录 这是一个空目录,常作为proc文件系统的挂接点,proc文件系统是个虚拟的文件系统,它没有实际的存储设备,里面的目录,文件都是由内核临时生成的,用来表示系统的运行状态,也可以操作其中的文件控制系统。11、 /mnt目录 用于临时挂载某个文件系统的挂接点,通常是空目录,也可以在里面创建一引起空的子目录,比如/mnt/cdram /mnt/hda1 。用来临时挂载光盘、硬盘12. /tmp目录 用于存放临时文件,通常是空目录,一些需要生成临时文件的程序用到的/tmp目录下,所以/tmp目录必须存在并可以访问。23、 设备驱动程序的功能,设备驱动程序的分类设备驱动程序的功能:1) 设备驱动程序将复杂的硬件抽象成一个结构良好的设备,并通过提供统一的程序接口为系统的其它部分提供使用设备的能力和方法。2) 设备驱动程序(应该只是)为系统的其它部分提供各种使用设备的能力,使用设备的方法应该由应用程序决定。设备驱动程序的分类:1) 字符设备驱动程序各种串行接口,并行接口等。2) 块设备驱动程序磁盘设备等3) 网络设备驱动程序网卡等。4) 杂项设备驱动程序不属于上述三种设备之外的一些设备,如SCSI,时钟等。24、 简述字符设备驱动程序的主要组成部分1) 模块初始化2) 添加设备3) 激活设备4) 实现file_operation中需要的几个函数(其中包括对中断的处理)5) 释放资源专心-专注-专业

    注意事项

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

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




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

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

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

    收起
    展开