书签 分享 收藏 举报 版权申诉 / 36
上传文档赚钱

类型单片机与嵌入式系统原理第11章-嵌入式操作系统及软件开发课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3504470
  • 上传时间:2022-09-08
  • 格式:PPT
  • 页数:36
  • 大小:1.27MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机与嵌入式系统原理第11章-嵌入式操作系统及软件开发课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机 嵌入式 系统 原理 11 操作系统 软件 开发 课件
    资源描述:

    1、11.1 嵌入式操作系统的概述嵌入式操作系统的概述11.2 嵌入式操作系统内核基础嵌入式操作系统内核基础11.3 嵌入式操作系统嵌入式操作系统C/OS简介简介11.4 嵌入式操作系统嵌入式操作系统C/OS在在ARM上的移植上的移植11.5嵌入式系统软件开发嵌入式系统软件开发11.1 嵌入式操作系统的概述嵌入式操作系统的概述(1)嵌入式操作系统的特点)嵌入式操作系统的特点 可移植;可移植;强调实时性能;强调实时性能;内核精简,所占空间小;内核精简,所占空间小;抢占式内核;抢占式内核;可配置;可配置;可裁剪;可裁剪;高可靠性。高可靠性。(2)嵌入式操作系统的分类)嵌入式操作系统的分类 按照源代码分

    2、类,可分为商用型和开源型按照源代码分类,可分为商用型和开源型按照实时性能分类,可分为强实时型和普通实时型按照实时性能分类,可分为强实时型和普通实时型 按照内核结构分类,可分为单内核型和微内核型按照内核结构分类,可分为单内核型和微内核型b)微内核操作系统的模块架构)微内核操作系统的模块架构a)单内核操作系统的模块架构)单内核操作系统的模块架构基于微内核结构的操作系统和传统操作系统相比,具有五个突出的特点:基于微内核结构的操作系统和传统操作系统相比,具有五个突出的特点:内核小巧内核小巧 接口一致接口一致 各个功能模块之间松散耦合各个功能模块之间松散耦合 基于客户基于客户/服务器体系结构。服务器体系

    3、结构。微内核功能扩充方便,但是各个功能之间的切换而引起的开销非常大微内核功能扩充方便,但是各个功能之间的切换而引起的开销非常大 属于微内核的典型嵌入式操作系统有属于微内核的典型嵌入式操作系统有VxWorks、QNX、Hopen、C/OSII、Symbian等。等。(3)使用嵌入式操作系统的必要性)使用嵌入式操作系统的必要性 嵌入式实时操作系统提高了系统的可靠性。嵌入式实时操作系统提高了系统的可靠性。提高了开发效率,缩短了开发周期。提高了开发效率,缩短了开发周期。嵌入式实时操作系统充分发挥了嵌入式实时操作系统充分发挥了32位位CPU的多任务潜力。的多任务潜力。但是,使用嵌入式实时操作系统还需要额

    4、外的但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销、开销、2%5%的的CPU额外负荷以及内核的费用。额外负荷以及内核的费用。(4)常见的嵌入式操作系统)常见的嵌入式操作系统 嵌入式嵌入式Linux 它是专门针对没有它是专门针对没有MMU的的CPU,高度优化的、代码紧凑的嵌入式操,高度优化的、代码紧凑的嵌入式操作系统作系统Windows CE Windows CE是微软公司开发的一个开放、可升级的是微软公司开发的一个开放、可升级的32位嵌入式操作位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,是精简的系统,是基于掌上型电脑类的电子设备操作系统,是精简的Windows 95。V

    5、xWorks VxWorks操作系统是美国操作系统是美国WindRiver公司于公司于1983年设计开发的一种嵌入年设计开发的一种嵌入式实时操作系统(式实时操作系统(RTOS)。并以其良好的可靠性和卓越的实时性被广泛)。并以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导及飞机导航等如卫星通信、军事演习、弹道制导及飞机导航等。OSE OSE支持容错,适用于可从硬件和软件错误中恢复的应用,其独特的消息支持容错,适用于可从硬件和软件错误中恢复的应用,其

    6、独特的消息传输方式使其能方便地支持多处理机之间的通信。它的客户深入到电信、数据、传输方式使其能方便地支持多处理机之间的通信。它的客户深入到电信、数据、工控及航空等领域,尤其在电信方面,该公司已经有了十余年的开发经验。工控及航空等领域,尤其在电信方面,该公司已经有了十余年的开发经验。Nucleus Nucleus PLUS是源码公开的抢先式多任务操作系统内核,易于移植。采用是源码公开的抢先式多任务操作系统内核,易于移植。采用了软件组件的方法,功能模块丰富,易学易用。了软件组件的方法,功能模块丰富,易学易用。eCOS eCos是是RedHat公司开发的源代码开放的嵌入式公司开发的源代码开放的嵌入式

    7、RTOS产品,是一个可配置、产品,是一个可配置、可移植的嵌入式实时操作系统。可移植的嵌入式实时操作系统。eCos的关键技术是操作系统可配置性。的关键技术是操作系统可配置性。C/OSII 一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统,一个源码公开、可移植、可固化、可裁剪及占先式的实时多任务操作系统,其绝大部分源码是用其绝大部分源码是用ANSIC写的写的。C/OS通过了联邦航空局(通过了联邦航空局(FAA)商)商用航行器认证,符合用航行器认证,符合RTCA(航空无线电技术委员会)(航空无线电技术委员会)DO178B标准。标准。11.2 嵌入式操作系统内核基础嵌入式操作系统内核基

    8、础(1)多进程和多线程)多进程和多线程 一个进程可以简单地认为是一个程序的唯一执行。一个进程可以简单地认为是一个程序的唯一执行。进程是顺序执行的。进程是顺序执行的。CPU一次只能执行一个进程。一次只能执行一个进程。当确定了一个进程的完成状态后,就可当确定了一个进程的完成状态后,就可以强制以强制CPU停止执行当前进程而执行另一个进程,实现进程的切换这样。停止执行当前进程而执行另一个进程,实现进程的切换这样。能够使多个进程同时存在于能够使多个进程同时存在于CPU中。中。在嵌入式系统中,在嵌入式系统中,一个进程的常用形式是线程。一个进程的常用形式是线程。线程在线程在CPU的寄存器的寄存器中有各自不同

    9、的值集合,但是共存于一个主存储空间中中有各自不同的值集合,但是共存于一个主存储空间中。线程普遍应用于线程普遍应用于嵌入式系统中(即任务)。嵌入式系统中(即任务)。(2)任务)任务 在嵌入式系统中,一个任务也称作一个线程,是一个程序。在嵌入式系统中,一个任务也称作一个线程,是一个程序。该程序在该程序在运行时可以认为运行时可以认为CPU完全只属于该程序自己。完全只属于该程序自己。在实时应用程序的设计过程中,在实时应用程序的设计过程中,要考虑如何将应用功能合理地划分为多个任务,让每个任务完成一定的功能,要考虑如何将应用功能合理地划分为多个任务,让每个任务完成一定的功能,成为整个应用的一部分。成为整个

    10、应用的一部分。每个任务都被赋予一定的优先级,有自己的一套每个任务都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间。寄存器和栈空间。任务越重要,赋予的优先级越高。就大多数内核而言,任务越重要,赋予的优先级越高。就大多数内核而言,任务的优先级由用户决定。任务的优先级由用户决定。多任务堆栈与多任务堆栈与CPU寄存器寄存器 一般的,每一个任务都是一个无限的循环,可以处在以下五种状态之一:一般的,每一个任务都是一个无限的循环,可以处在以下五种状态之一:休眠态(休眠态(Dormant):是指任务驻留在内存的程序空间中,并未被多任务):是指任务驻留在内存的程序空间中,并未被多任务内核所调度。内核所调度

    11、。就绪态(就绪态(Ready):是指任务已经准备好,可以运行,但是由于该任务):是指任务已经准备好,可以运行,但是由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。的优先级比正在运行的任务的优先级低,还暂时不能运行。运行态(运行态(Running):是指任务获得了):是指任务获得了CPU的控制权,正在运行中。基于的控制权,正在运行中。基于优先级调度的实时内核总是让处于就绪态的优先级最高的任务运行。优先级调度的实时内核总是让处于就绪态的优先级最高的任务运行。挂起态(挂起态(Pending):也叫作等待事件态():也叫作等待事件态(waiting),是指任务在等待某一),是指任务在等待

    12、某一事件的发生(如等待某外设的事件的发生(如等待某外设的I/O操作、等待定时脉冲的到来、等待超时信号操作、等待定时脉冲的到来、等待超时信号的到来以结束目前的等待,等等)。正在运行的任务由于调用了延时函数或等的到来以结束目前的等待,等等)。正在运行的任务由于调用了延时函数或等待某事件发生而将自身挂起,就处于挂起态。待某事件发生而将自身挂起,就处于挂起态。被中断态(被中断态(Intermpt):是指发生中断时,):是指发生中断时,CPU提供相应的中断服务,原来提供相应的中断服务,原来正在运行的任务暂不能运行,而进入了被中断状态。正在运行的任务暂不能运行,而进入了被中断状态。(3)任务切换)任务切换

    13、 任务切换(任务切换(Context Switch)是指)是指CPU寄存器内容切换。寄存器内容切换。当多任务内核决定运行另外的任务时,它保存正在运行的任务的当前状态,当多任务内核决定运行另外的任务时,它保存正在运行的任务的当前状态,即当前即当前CPU寄存器中的全部内容;寄存器中的全部内容;内核将这些内容保存在该任务的当前状内核将这些内容保存在该任务的当前状态保存区,也就是该任务自己的栈区之中(这个过程称为态保存区,也就是该任务自己的栈区之中(这个过程称为“入栈入栈”)。)。把将把将要运行的任务的当前状态从该任务的栈中装入要运行的任务的当前状态从该任务的栈中装入CPU寄存器(这个过程称为寄存器(

    14、这个过程称为“出栈出栈”),并开始这个任务的运行。这样,就完成了一次任务切换。),并开始这个任务的运行。这样,就完成了一次任务切换。任务切换过程增加了应用程序的额外负荷,任务切换过程增加了应用程序的额外负荷,CPU的内部寄存器越多,额外的内部寄存器越多,额外负荷就越重。任务切换所需要的时间取决于负荷就越重。任务切换所需要的时间取决于CPU有多少寄存器要入栈。有多少寄存器要入栈。(4)内核)内核 多任务系统中,内核负责管理各个任务,为每个任务分配多任务系统中,内核负责管理各个任务,为每个任务分配CPU的使用的使用时间,并且负责任务间的通信时间,并且负责任务间的通信。内核提供的基本服务是任务切换,

    15、通过提供必不可少的系统服务,诸如内核提供的基本服务是任务切换,通过提供必不可少的系统服务,诸如信号量管理、邮箱、消息队列及时间延时等,使得信号量管理、邮箱、消息队列及时间延时等,使得CPU的利用更为有效。的利用更为有效。内核本身也增加了应用程序的额外负荷,因为内核提供的服务需要一定的内核本身也增加了应用程序的额外负荷,因为内核提供的服务需要一定的执行时间。占用执行时间。占用2%5%的的CPU负荷。内核是加在用户应用程序中的软件,负荷。内核是加在用户应用程序中的软件,占用占用ROM(程序代码空间),增加(程序代码空间),增加RAM(数据空间(数据空间)。)。(5)任务调度)任务调度 调度(调度(

    16、Schedulers)是内核的主要职责之一,就是决定该轮到哪个任务)是内核的主要职责之一,就是决定该轮到哪个任务运行。通常,基于优先级调度法的内核有两种:占先式内核和非占先式内核。运行。通常,基于优先级调度法的内核有两种:占先式内核和非占先式内核。非占先式内核非占先式内核非占先式内核(非占先式内核(non-preemptive kernel)中各个任务彼此合作,共享)中各个任务彼此合作,共享CPU。在一个任务的运行过程中,除了中断,不能在该任务未运行完时抢占该任务在一个任务的运行过程中,除了中断,不能在该任务未运行完时抢占该任务的的CPU控制权。虽然中断服务可使一个高优先级的任务由挂起态变为就

    17、绪态,控制权。虽然中断服务可使一个高优先级的任务由挂起态变为就绪态,但中断服务以后,但中断服务以后,CPU的使用权交回给原来被中断了的任务的使用权交回给原来被中断了的任务。非占先式内核非占先式内核 非占先式内核的优点包括:非占先式内核的优点包括:响应中断快。响应中断快。可以使用不可重入函数可以使用不可重入函数 共享数据方便共享数据方便 非占先式内核的任务级响应时间是不确定的,即无法确定最高优先级的非占先式内核的任务级响应时间是不确定的,即无法确定最高优先级的任务何时能够获得任务何时能够获得CPU的使用权。这个明显的缺点限制了该内核在实时系统的使用权。这个明显的缺点限制了该内核在实时系统中的应用

    18、。中的应用。非占先式内核的缺点:非占先式内核的缺点:占先式内核占先式内核 在占先式内核中,最高优先级的任务一旦就绪,便能得到在占先式内核中,最高优先级的任务一旦就绪,便能得到CPU的使用权。的使用权。占先式内核总是让就绪态的高优先级的任务先运行,使得任务级系统响应占先式内核总是让就绪态的高优先级的任务先运行,使得任务级系统响应时间得到了最优化时间得到了最优化。应用程序不应直接使用不可重入函数。应用程序不应直接使用不可重入函数。对共享数据的使用也需要采用互斥。对共享数据的使用也需要采用互斥。占先式内核特点:占先式内核特点:(6)任务间的通信与同步)任务间的通信与同步 在多任务的实时系统中,一项工

    19、作可能需要多个任务或多个任务与多个在多任务的实时系统中,一项工作可能需要多个任务或多个任务与多个中断处理程序共同完成。它们之间必须协调工作、互相配合,必要时还要中断处理程序共同完成。它们之间必须协调工作、互相配合,必要时还要交换信息。交换信息。任务间的通信任务间的通信 任务间的通信有两个途径:共享数据结构和消息机制。任务间的通信有两个途径:共享数据结构和消息机制。实现对共享数据结构操作的互斥常常采用以下方法:开实现对共享数据结构操作的互斥常常采用以下方法:开/关中断、禁上任关中断、禁上任务切换以及信号量(务切换以及信号量(semaphore)机制等。)机制等。任务可以通过内核提供的系统服务向另

    20、一个任务发送消息。消息机制包括:任务可以通过内核提供的系统服务向另一个任务发送消息。消息机制包括:消息邮箱和消息队列。消息邮箱和消息队列。任务间同步任务间同步 任务间的同步是指异步环境下的一组并发执行任务因各自的执行结果互任务间的同步是指异步环境下的一组并发执行任务因各自的执行结果互为对方的执行条件,因而任务之间需要互发信号,以使各任务按一定的速度为对方的执行条件,因而任务之间需要互发信号,以使各任务按一定的速度执行。执行。单向同步:单向同步:双向同步双向同步:11.3 嵌入式操作系统嵌入式操作系统C/OS简介简介(1)嵌入式操作系统嵌入式操作系统C/OS概述概述 C/OS是一个免费的、源代码

    21、公开的嵌入式实时多任务内核,是专门是一个免费的、源代码公开的嵌入式实时多任务内核,是专门为嵌入式应用设计的为嵌入式应用设计的RTOS,提供了实时系统所需的基本功能。,提供了实时系统所需的基本功能。许多开发者已成功地把许多开发者已成功地把C/OS应用于自己的嵌入式系统中,从而使得应用于自己的嵌入式系统中,从而使得C/OS获得了快速的发展。获得了快速的发展。(2)嵌入式操作系统)嵌入式操作系统C/OS的软件体系结构的软件体系结构 其软件体系主要包括以下其软件体系主要包括以下4个部分:应用软件层、与应用相关的配置代码、个部分:应用软件层、与应用相关的配置代码、与处理器无关的核心代码、与处理器相关的设

    22、置代码与处理器无关的核心代码、与处理器相关的设置代码。C/OS软件体系结构软件体系结构 11.4 嵌入式操作系统嵌入式操作系统C/OS在在ARM上的移植上的移植(1)移植条件)移植条件 处理器的处理器的C编译器能够产生可重入代码。编译器能够产生可重入代码。处理器支持中断并能产生定时中断(通常在处理器支持中断并能产生定时中断(通常在10100 Hz之间)之间)用用C语言可以在程序中开语言可以在程序中开/关中断关中断 处理器支持能够容纳一定量(几千字节)数据的存储硬件堆栈处理器支持能够容纳一定量(几千字节)数据的存储硬件堆栈处理器有将堆栈指针和其他处理器有将堆栈指针和其他CPU寄存器的内容读出并存

    23、储到堆栈寄存器的内容读出并存储到堆栈或内存中的指令。或内存中的指令。(2)移植步骤)移植步骤 设置与处理器和编译器相关的代码设置与处理器和编译器相关的代码.与编译器相关的数据类型与编译器相关的数据类型.定义定义OS_ENTER_RITICAL()和和OS_EXIT_CRITICAL().定义堆栈增长方向定义堆栈增长方向OS_STK_GROWTH.定义定义OS_TASK_SW()宏宏 用用C语言编写语言编写10个与操作系统相关的函数(个与操作系统相关的函数(OS CPU_C.C)OSTaskStklnit()、OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwH

    24、ook()、OSTaskldleHook()、OSTaskStatHook()、OSTaskTickHook()、OSTaskHookBegin()、OSTaskHookEnd()和和OSTasklnitHook()。用汇编语言编写用汇编语言编写4个与处理器相关的函数(个与处理器相关的函数(OS_CPU_A.ASM)包括:包括:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和和OSTickISR()测试移植代码测试移植代码 当为处理器做完当为处理器做完C/OS的移植后,还需要测试移植的的移植后,还需要测试移植的C/OS是否正常工作。应该首先不加任何应用代码来测试

    25、移植好的是否正常工作。应该首先不加任何应用代码来测试移植好的C/OS,即应该首先测试内核自身的运行状况。即应该首先测试内核自身的运行状况。11.5嵌入式系统软件开发嵌入式系统软件开发 计算机软件开发有两种情况:通用计算机的软件开发和嵌入式系统计算机软件开发有两种情况:通用计算机的软件开发和嵌入式系统的软件开发。通用计算机的软件开发通常是开发平台和运行平台是一个的软件开发。通用计算机的软件开发通常是开发平台和运行平台是一个平台。嵌入式系统的软件开发则不同,通常,大部分的嵌入式系统的开发平台。嵌入式系统的软件开发则不同,通常,大部分的嵌入式系统的开发平台和运行平台位于不同的计算机平台上平台和运行平

    26、台位于不同的计算机平台上 。开发嵌入式系统的软件通常有开发嵌入式系统的软件通常有2种开发形式种开发形式。基于裸机的开发形式和。基于裸机的开发形式和基于操作系统内核的开发方式基于操作系统内核的开发方式。(1)嵌入式软件结构和组成)嵌入式软件结构和组成 用户应用软件高层用户应用软件低层GUI协议设备驱动文件系统操作系统层板级支持包嵌入式系统总体软件结构嵌入式系统总体软件结构(2)嵌入式操作系统运行的必要条件)嵌入式操作系统运行的必要条件ROM空间空间 RAM空间空间 定时器定时器 中断中断 堆栈堆栈(3)嵌入式系统软件运行运行流程)嵌入式系统软件运行运行流程 复位向量入口,此时中断是禁止的。复位向

    27、量入口,此时中断是禁止的。设置处理器的工作模式,通常使用复位时的默认模式。设置处理器的工作模式,通常使用复位时的默认模式。设置设置RAM和和ROM的工作参数,包括的工作参数,包括DRAM的刷新参数、地址空间分配的刷新参数、地址空间分配等,至此嵌入式系统的处理器和存储器子系统达到运行状态。等,至此嵌入式系统的处理器和存储器子系统达到运行状态。设置操作系统运行所需要的数据段、堆栈空间等。设置操作系统运行所需要的数据段、堆栈空间等。设置中断向量,中断向量的设置根据需要进行,也可以在其他的时间设置,设置中断向量,中断向量的设置根据需要进行,也可以在其他的时间设置,但是一定要在中断允许之前完成。但是一定

    28、要在中断允许之前完成。操作系统的初始化。操作系统的初始化。进入用户的应用。到这里开始执行用户的应用程序代码进入用户的应用。到这里开始执行用户的应用程序代码(4)无操作系统的嵌入式系统软件设计)无操作系统的嵌入式系统软件设计 前后台系统前后台系统 中断(事件)驱动系统中断(事件)驱动系统 main()/*完成系统的硬件初始化和数据结构的初始化(如果必要的话)完成系统的硬件初始化和数据结构的初始化(如果必要的话)*/*to do:系统的初始化:系统的初始化*/while(1)enter_low power();Isr_1()/*其中的一个中断服务程序其中的一个中断服务程序*/*to do:处理中断

    29、事件:处理中断事件*/上面的代码中,主程序除了系统开始运行时的初始化代码外,没有事件处理代码。上面的代码中,主程序除了系统开始运行时的初始化代码外,没有事件处理代码。巡回服务系统巡回服务系统 main()/*to de:系统初始化:系统初始化*/while(1)action_1();/*巡回检测事件巡回检测事件1并处理事件并处理事件*/action_2();/*巡回检测事件巡回检测事件2并处理事件并处理事件*/action n();/*巡回检测事件巡回检测事件n并处理事件并处理事件*/基于定时器的巡回服务方式基于定时器的巡回服务方式 main()/*to do:系统初始化:系统初始化*/*to do:设置定时器:设置定时器*/while(1)enter_low_power();Isr_tlmer()/*定时器的中断服务程序定时器的中断服务程序*/action_1();/*执行事件执行事件1的处理的处理*/action_2();/*执行事件执行事件2的处理的处理*/action_n();/*执行事件执行事件n的处理的处理*/(5)有操作系统的嵌入式系统软件设计)有操作系统的嵌入式系统软件设计 分时系统分时系统 实时系统实时系统

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:单片机与嵌入式系统原理第11章-嵌入式操作系统及软件开发课件.ppt
    链接地址:https://www.163wenku.com/p-3504470.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库