《STM32应用开发实践》课件第1章 CortexM3、M4内核基础_第1页
《STM32应用开发实践》课件第1章 CortexM3、M4内核基础_第2页
《STM32应用开发实践》课件第1章 CortexM3、M4内核基础_第3页
《STM32应用开发实践》课件第1章 CortexM3、M4内核基础_第4页
《STM32应用开发实践》课件第1章 CortexM3、M4内核基础_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录ContentsIIIIIIIVCortex-M3/M4内核结构Cortex-M3/M4内核资源指令系统及流水线异常与中断第1章Cortex-M3/M4基础知识2知识点1)Cortex-M3/M4内核结构;2)工作模式与状态、寄存器、存储器组织与映射;3)流水线、指令集、异常与中断。能力点掌握工作模式与状态转换方法、寄存器特点、存储器组织与映射。中断与异常课程学习知识点和能力点第1章Cortex-M3/M4内核基础3嵌入式系统与计算机系统第1章Cortex-M3/M4内核基础嵌入式系统定义:►以应用为中心,以计算机为基础,软件、硬件可剪裁,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。计算机系统结构:►冯诺依曼结构:存储空间存储了全部的数据和程序,内部使用单一的地址总线和数据总线。(80C51和ARM7)►哈弗结构:存储器分为数据和程序两个存储空间,有各自独立的程序总线和数据总线,可以进行独立编址和独立访问。(大部分DSP和ARM9)

4嵌入式系统与计算机系统第1章Cortex-M3/M4内核基础计算机系统分类:►复杂指令集(CISC)系统:功能的实现以软件为主,速度慢。在CISC指令集中,各种指令使用频率相差悬殊。CISC结构虽然指令全面,功能强大,但是结构不合理,造成程序代码体积庞大,不适合于嵌入式系统。(MCS-51系列和FreeScale的MC68HC系列)►简指令集(RISC)系统:功能以硬件实现为主,速度快。只包括使用频率很高的少量常用指令,再提供一些必要的操作系统和高级语言命令。指令的译码与数据的处理快,执行效率比CISC高。(ARM系列)

5嵌入式系统与计算机系统第1章Cortex-M3/M4内核基础

嵌入式系统的组成►

硬件:处理器存储器各种外围设备►软件:BSP、驱动程序实时操作系统(RTOS)应用软件嵌入式系统硬件部分软件部分微处理器存储器外围设备所有软件装在这里操作系统应用程序“计算机”在这里“专用”功能由它定感知、控制输入、输出…在这里BSP、各种驱动又称中间层又称系统软件层又称应用软件层6嵌入式系统与计算机系统第1章Cortex-M3/M4内核基础

RISC体系结构的特点:采用固定长度的指令格式。使用单周期指令,便于流水线操作执行。大量使用寄存器,数据处理指令只对寄存器进行操作,提高

了指令的执行效率。采用一些特别的技术降低功耗。所有的指令都可根据前面的执行结果决定是否被执行。可用加载存储指令批量传输数据,以提高数据的传输效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。在循环处理中使用地址的自动增减来提高运行效率。7

ARM处理器架构发展第1章Cortex-M3/M4内核基础

图1.1ARM处理器架构发展8

ARM处理器架构发展第1章Cortex-M3/M4内核基础

图1.2ARM处理器架构分类9

ARM处理器架构发展第1章Cortex-M3/M4内核基础从ARM到CortexV1、V2、V3版架构:早期的ARM内核,现已废弃V4版架构:正式商用的32位处理器,ARM7、ARM9等采用V5版架构:在V4的基础上增加了一些指令。Xscale采用V6版架构:低功耗,强化了图形处理能力。ARM11采用V7版架构,从单一款式变为了三款,分别针对不同的应用:Cortex-A(应用处理器)Cortex-R(实时处理器)Cortex-M(微控制器)10

Cortex系列内核简介第1章Cortex-M3/M4内核基础Cortex-A(应用处理器)——越来越接近电脑了面向移动计算、智能手机、服务器等市场的高端处理器,具有MMU(内存管理单元),支持基于虚拟内存的操作系统,如Linux、Android、Windows等,很高的时钟频率(超过1GHz)Cortex-R(实时处理器)——硬实时,高性能面向实时应用的高性能处理器,如硬盘控制器、汽车传动系统和无线通信基站等;通常不具备MMU,但通常有MPU(内存保护单元);较高的时钟频率(200MHz—1GHz),响应延时极小(即所谓的硬实时),支持大多数实时操作系统(RTOS)。11

Cortex系列内核简介第1章Cortex-M3/M4内核基础Cortex-M(微控制器处理器)——单片机风格中低端“系统控制”类市场(单片机市场)价格低、性价比高易于使用,开发简单较低的时钟频率(一般25MHz以下)大多数嵌入式系统都可以采用Cortex-M来设计,包括物联网比较流行的有Cortex-M0、Cortex-M3和Cortex-M4系列这是我们要学的!12

Cortex-M系列内核架构第1章Cortex-M3/M4内核基础Cortex-M系列内部架构—ARMv7-M架构及特点Thumb-2指令系统SIMD(单指令多数据流)和DSP单周期乘加指令可选配的单精度浮点运行单元NVIC(可嵌套矢量中断控制器架构描述ARMv6-MCortex-M0、Cortex-M0+和Cortex-M1ARMv7-MCortex-M3、Cortex-M4和Cortex-M7ARMv8-MBaseline子规范:Cortex-M23Mainline子规范:Cortex-M33带分支预测的三极流水线三套AHB-Lite总线接口

可配置超低功耗

灵活配置,如NVIC、MPU、调试与追踪等……13

Cortex-M系列内核架构第1章Cortex-M3/M4内核基础经典ARM处理器与Cortex-M的比较指令集不同:从ARM+Thumb到Thumb-2中断控制机制不同:从IRQ+FIQ到NVICCortex-M中断处理函数可以使用标准C语言编程,嵌套处理机制避免了使用软件来判断向量表从跳转指令变为中断和系统异常处理函数的起始地址寄存器组和某些编程模式也做了改变以上变化意味着许多为经典ARM处理器编写的汇编代码需要修改,老项目要修改和重新编译才能移植到Cortex-M处理器上14

Cortex-M系列内核比较第1章Cortex-M3/M4内核基础Cortex-M系列内核比较首先,Cortex-M0、M0+、M3、M4、M7之间有许多相同相似之处:基本编程模式NVIC中断响应管理。支持大多数外无设备的中断输入、一个不可屏蔽的中断请求、一个来自内置时钟(SysTick)的中断请求和一定数量的系统异常请求休眠模式:睡眠和深度睡眠操作系统支持调试功能易用性15

Cortex-M系列内核比较第1章Cortex-M3/M4内核基础Cortex-M系列内核比较Cortex-M0、M0+、M3、M4、M7之间的不同:片上资源时钟频率、运行速度集成度、尺寸、价格等Cortex-M0:是目前最小巧的ARM处理器。芯片面积极小、功耗极低,编程所需

的代码量很小,可以取代8位单片机Cortex-M3:低功耗微控制器(单片机),面积小,性能强。具有硬件除法和乘

加指令(MAC),支持全面的调试和跟踪功能,具有出色的计算性能

和对事件的优异响应能力。Cortex-M4:具备Cortex-M3的全部功能,并且扩展了DSP指令集,如SIMD指令和

更快的单周期MAC操作。此外还有一个可选的IEEE754单精度浮点单元16

Cortex-M系列内核比较第1章Cortex-M3/M4内核基础Cortex-M系列内核比较Cortex-M0、M0+、M3、M4、M7之间的不同:片上资源时钟频率、运行速度集成度、尺寸、价格等Cortex-M0:是目前最小巧的ARM处理器。芯片面积极小、功耗极低,编程所需

的代码量很小,可以取代8位单片机Cortex-M3:低功耗微控制器(单片机),面积小,性能强。具有硬件除法和乘

加指令(MAC),支持全面的调试和跟踪功能,具有出色的计算性能

和对事件的优异响应能力。Cortex-M4:具备Cortex-M3的全部功能,并且扩展了DSP指令集,如SIMD指令和

更快的单周期MAC操作。此外还有一个可选的IEEE754单精度浮点单元17

Cortex-M3、M4内核第1章Cortex-M3/M4内核基础

Cortex-M3内核集成了内核和高级系统外设的分级处理器。Cortex-M3内核哈佛体系结构拥有分支预测功能的三级流水线

Thumb®-2指令集和传统的Thumb指令集带有硬件除法和单信号周期乘法ALUCortex-M3处理器Cortex-M3内核可配置的中断控制器总线矩阵先进的调试组件可选择的MPU(内存保护单元)和ETM(嵌入式跟踪宏单元

图1.3Cortex-M3内核组成18

Cortex-M3、M4内核第1章Cortex-M3/M4内核基础

Cortex-M4内核采用v7-ME架构,在多方面都做了优化,性能有了更高的提升;增加了单精度浮点运算单元(FPU)以及DSP扩展指令集;SIMD(单指令多数据流),其他功能与Cortex-M3相同。图1.4Cotex-M3和M4内核对比19

Cortex-M3、M4内核第1章Cortex-M3/M4内核基础表1.1Cortex-M系列内核性能对照表20

Cortex-M3、M4内核第1章Cortex-M3/M4内核基础表1.2ARM7TDM与Cortex-M3内核性能对照表21工作模式与状态第1章Cortex-M3/M4内核基础工作模式和特权级别Cortex-M4支持2种处理器工作模式:处理者模式(Handlermode)——异常服务例程线程模式(Threadmode)——普通应用程序Cortex-M4支持2种特权级别:特权级(Privilege)——不受限制,可以做任何事情用户级(User)——受到限制,起保护作用22工作模式与状态第1章Cortex-M3/M4内核基础两种工作模式(线程Thread和处理器Handler)引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码—包括中断服务例程的代码。两个等级的访问形式(有特权或无特权)在不牺牲应用程序安全的前提下实现了对复杂的开放式系统的执行。无特权代码的执行限制或拒绝对某些资源的访问如某个指令或指定的存储器位置。Thread是常用的工作模式,它同时支持享有特权的代码以及没有特权的代码。当异常发生时,进入Handler模式,在该模式中所有代码都享有特权。23工作模式与特权级状态转换第1章Cortex-M3/M4内核基础图1.5工作模式与特权级转换24工作模式与特权级状态转换第1章Cortex-M3/M4内核基础图1.7中断前后的状态转换图1.8中断前后的状态转换+特权等级切换图1.6特权级和处理器模式的改变图25工作模式与特权级状态转换第1章Cortex-M3/M4内核基础在CM3运行主应用程序时(线程模式),既可以使用特权级,也可以使用用户级;但是异常服务例程必须在特权级下执行。复位后,处理器默认进入线程模式,特权极访问。在特权级下,程序可以访问所有范围的存储器,并且可以执行所有指令。26工作模式与特权级状态转换第1章Cortex-M3/M4内核基础在CM3运行主应用程序时(线程模式),既可以使用特权级,也可以使用用户级;但是异常服务例程必须在特权级下执行。复位后,处理器默认进入线程模式,特权极访问。在特权级下,程序可以访问所有范围的存储器,并且可以执行所有指令。27

M3/M4寄存器第1章Cortex-M3/M4内核基础图1.8Cotex-M3/M4寄存器28

Cortex-M3/M4寄存器第1章Cortex-M3/M4内核基础R0-R12:都是32位通用寄存器,用于数据操作。但是绝大多数16位

Thumb指令只能访问R0‐R7,而32位Thumb‐2指令可以访问所有寄

存器。BankedR13:Cortex‐M3拥有两个堆栈指针,因而支持两个堆栈。

然而它们是banked,因此任一时刻只能使用其中的一个。主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作

系统内核以及异常处理例程(包括中断服务例程)进程堆栈指针(PSP):由用户的应用程序代码使用。29Cortex-M3/M4寄存器第1章Cortex-M3/M4内核基础R14:连接寄存器,当呼叫一个子程序时,由R14存储返回地址R15:程序计数寄存器,指向当前的程序地址。如果修改它的值,就能

改变程序的执行流特殊功能寄存器30

Cortex-M3/M4寄存器第1章Cortex-M3/M4内核基础APSR:应用程序PSR,保持当前指令运算结果的状态。N(负数)、Z(零)、C(进位)、V(溢出)、Q(饱和)IPSR:中断状态PSR,保存当前的中断向量号。EPSR:执行PSR,T(Thumb状态,恒1),ICI/IT(被打断指令流状态,或IT指令状态)图1.9Cotex-M3/M4特殊功能寄存器31

Cortex-M3/M4寄存器第1章Cortex-M3/M4内核基础PRIMASK:置1关掉所有可屏蔽的异常FAULTMASK:置1关掉硬faultBASEPRI:屏蔽优先级阈值表1.3异常特殊功能寄存器32

Cortex-M3/M4寄存器第1章Cortex-M3/M4内核基础CONTROL:选择MSP/PSP,设定运行级别表1.4Control寄存器33总线矩阵与接口第1章Cortex-M3/M4内核基础ARM公司推出的AMBA片上总线已成为一种流行的工业片上结构。AMBA规范主要包括AHB系统总线和APB外设总线。二者分别适用于高速与相对低速设备的连接。M3/M4处理器含5个总线接口I-Code存储器接口、D-Code存储器接口、系统接口、外部专用外设总线接口内部专用外设总线接口。34总线矩阵与接口第1章Cortex-M3/M4内核基础图1.10总线矩阵与接口35总线矩阵与接口第1章Cortex-M3/M4内核基础图1.10总线矩阵与接口36总线矩阵与接口第1章Cortex-M3/M4内核基础需要注意的是:虚线框住的MPU和ETM是可选组件,不一定会包含在每一个Cortex-M3的处理器中。表.5中还有很多新的组件,下表1.7中列出了这些组件的清单。表1.5组件缩写及其定义37总线矩阵与接口第1章Cortex-M3/M4内核基础►Icode总线是32位的AHB总线。从程序存储器空间

(0x00000000—0x1FFFFFFF)取指令和取向量在此总线上完成。►Dcode总线是32位的AHB总线。从程序存储空间

(0x00000000—0x1FFFFFFF)取数据和调试访问在此总线上完成。►系统接口:32位AHB总线,对系统存储空间(0x20000000—0xDFFFFFFF,

0xE0100000—0xFFFFFFFF)的取指令、取向量以及数据和调试访问在此

总线上完成。►外部专用外设总线接口:APB总线。对外部外设存储空间

(0xE0040000—0x1E00FFFF)的取数据和调试访问在此总线上完成。►内部专用外设总线接口:用于访问嵌套向量中断控制器NVIC、数据观察和

触发、Flash修补和断点以及存储器保护单元。38存储器组织与映射第1章Cortex-M3/M4内核基础存储器组织:Cortex-M3的地址空间是4GB,程序可以在代码区,内部SRAM区以及外部RAM区中执行。但是因为指令总线与数据总线是分开的,最理想的是把程序放到代码区,从而使取指和数据访问各自使用各自的总线,并行不悖。图1.11存储器组织与映射39存储器组织与映射第1章Cortex-M3/M4内核基础存储器组织:Cortex-M3的地址空间是4GB,程序可以在代码区,内部SRAM区以及外部RAM区中执行。但是因为指令总线与数据总线是分开的,最理想的是把程序放到代码区,从而使取指和数据访问各自使用各自的总线,并行不悖。-内存映射是按4GB的存储划分,内部SRAM区的大小是512MB,用于让芯片制造商连接片上的SRAM,这个区通过系统总线来访问。在这个区的下部,有一个1MB的位带区,该位带区还有一个对应的32MB的“位带别名(alias)区”,容纳了8M个“位变量”。-地址空间的另一个512MB范围由片上外设寄存器使用。还有两个1GB的范围,分别用于连接外部RAM和外部设备,两者的区别在于外部RAM区允许执行指令,而外部设备区则不允许。最后还剩0.5GB的隐秘地带,Cortex-M3内核就在这里面,包括了系统级组件,内部私有外设总线,外部私有外设总线,以及由提供者定义的系统外设。40存储器组织与映射第1章Cortex-M3/M4内核基础NVIC所处的区域叫做“系统控制空间(SCS)”,在SCS里的还有SysTick、MPU以及代码调试控制所用的寄存器,如图1.12所示。图1.12系统控制空间(SCS)地址41存储器组织与映射第1章Cortex-M3/M4内核基础CM3/CM4存储系统特点:它的存储器映射是预定义的,并且规定了哪个位置使用哪条总线。CM3的存储器系统支持所谓的“位绑定”(bit-band)操作。通

过它,实现了对单一比特的原子操作。

CM3的存储器系统支持非对齐访问和互斥访问。这两个特性是直到

v7M时才出来的CM3的存储器系统支持小端配置和大端配置。

42位绑定区与位带别名区第1章Cortex-M3/M4内核基础(1)位带区:支持位带操作的地址区;(2)位带别名:对别名地址的访问最终作用到位带区的访问上。(3)支持位带操作的两个内存区的范围是:0x2000_0000‐0x200F_FFFF(SRAM区中的最低1MB)0x4000_0000‐0x400F_FFFF(片上外设区中的最低1MB)(4)支持位带别名区两个内存区的范围是:0x2200_0000‐0x23FF_FFFF(SRAM区中8MB)0x4200_0000‐0x43FF_FFFF(片上外设区中8MB)43位绑定区与位带别名区第1章Cortex-M3/M4内核基础图1.13位带区与位带别名区的膨胀关系图A44位绑定区与位带别名区第1章Cortex-M3/M4内核基础图1.14位带区与位带别名区的膨胀关系图B45位绑定区与位带别名区第1章Cortex-M3/M4内核基础图1.15例如,设置地址0x2000_0000中Bit246端模式第1章Cortex-M3/M4内核基础作为32位的处理器,ARM体系结构所支持的最大寻址空间为4GB(232GB)。在内存中数据的存储分为两种形式称之为大端模式和小端模式。大端模式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节存放在高地址中。小端模式:与大端存储模式相反,在小端存储模式中,低地址存放的是字数据的低字节,高地址存放的是字数据的高字节。Cortex-M3支持小端模式和大端模式。但是单片机其他部分的设计,包括总线的连接,内存控制器以及外设的性质等,一定要先在单片机的数据手册上查清楚可以使用的端。这里推荐Cortex-M3的单片机都使用小端模式。47小端模式和大端模式第1章Cortex-M3/M4内核基础Cortex-M3处理器能够以小端格式或大端格式访问存储器中的数据字,而访问代码时始终使用小端格式。小端格式是ARM处理器默认的存储器格式。48指令集第1章Cortex-M3/M4内核基础ARM指令是32位RISC指令,Thumb指令为16位指令,Thumb-2指令集是一个16位和32位的混合指令系统。Cortex-M3不支持ARM指令,支持的指令包括ARMv6的大部分16位Thumb指令和ARMv7的Thumb-2指令。在基于ARM7处理器的系统中,处理器内核会根据特定的应用切换到Thumb状态(以获取高代码密度)或ARM状态(以获取出色的性能)。然而,在Cortex-M3处理器中无需交互使用指令,16位指令和32位指令共存于同一模式,复杂性大幅下降,代码密度和性能均得到提高。图1.16ARM指令集的发展49指令流水线第1章Cortex-M3/M4内核基础Cortex-M3三级流水线概念:一条指令要执行要经过3个阶段:取指令、译码、执行,每个阶段都要花费一个机器周期,如果没有采用流水线技术,那么这条指令执行需要3个机器周期;如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”的同时,下一条指令就可以进行“取指”了,这样就提高了指令的执行效率。图1.17Cortex-M3三级流水线(A)50三级流水线第1章Cortex-M3/M4内核基础在处理器内核的预取单元中也有一个指令缓冲区,它允许后续的指令在执行前先在里面排队,也能在执行未对齐的32位指令时,避免流水线“断流”。图1.18Cortex-M3三级流水线(B)51三级流水线第1章Cortex-M3/M4内核基础在处理器内核的预取单元中也有一个指令缓冲区,它允许后续的指令在执行前先在里面排队,也能在执行未对齐的32位指令时,避免流水线“断流”。图1.19Cortex-M3三级流水线(C)52指令分支预测第1章Cortex-M3/M4内核基础当遇到分支指令时,译码阶段也包含预测的指令取用,这就提高了执行的速度。支不跳转,那么紧跟着的下一条指令随时可供使用。处理器在译码阶段期间自行对分支目的地指令进行取指。在稍后的执行过程中,处理完分支指令后便知道下一条要执行的指令。如果分支不跳转,那么紧跟着的下一条指令随时可供使用。如果分支跳转,那么在跳转的同时分支指令可供使用,空闲时间限制为一个周期。53异常与中断第1章Cortex-M3/M4内核基础异常和中断的概念:

►Cortex-M3的异常包括系统异常和外设中断,系统异常是Cortex-M3内核自带的一些异常,比如复位、总线Fault和SysTick等等(见下表的编号1--15),外设中断是指制造微处理器的生产商加入的,比如串口、ADC、定时器中断等(见下表的编号16--255)。

►注:关于异常和中断,想要分个清清楚楚实在有点困难。异常和中断都可以“中断”正常执行的代码流,区别在于,异常是Cortex-M3内核产生的“中断”信号,而中断是Cortex-M3内核外部(片上外设或外部中断信号)产生的“中断”信号。54异常与中断第1章Cortex-M3/M4内核基础表1.6系统异常表55异常与中断第1章Cortex-M3/M4内核基础►值越小,优先级越高►CM3支持中断嵌套►有3个系统异常:复位、NMI及硬fault,他们有固定的优先级,并且优先级为

负数,从而高于其它异常►除上面3个异常外其他异常和中断都是可以编程的,但不能被编程为负数►CM3有15个异常,240个中断源。表1.7外部中断表56中断控制器NVIC第1章Cortex-M3/M4内核基础嵌套向量中断控制器是Cortex—M3处理器的一个紧耦合部件,可以配置1~240个带有256个优先级、8级抢占优先权的物理中断,为处理器提供出色的异常处理能力。同时,抢占、未尾连锁、返回和迟来技术的使用,大大缩短了异常事件的响应时间。嵌套向量中断控制器基本功能:支持向量中断;可屏蔽中断;支持嵌套中断;中断延迟很短;支持动态优先级调整。NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理控制逻辑之外,NVIC还包含了处理器的控制寄存器、SysTick定时器以及调试控制。NVIC的访问地址是0xE000_E000。所有NVIC的中断控制/状态寄存器都只能在特权级下访问。不过软件触发中断寄存器可以在用户级下访问以产生软件中断。所有的中断控制/状态寄存器均可按字/半字字节的方式访问。此外,有几个中断屏蔽寄存器,只能通过MRS/MSR及CPS来访问。57中断、异常过程第1章Cortex-M3/M4内核基础Cotex-CM3响应中断时,必须经过三个过程:(1)入栈:把8个寄存器的值压入栈。(2)取向量:从向量表中找出对应的服务程序入口地址。(3)选择堆栈指针MSP/PSP,更新堆栈指针SP,更新连接寄存器LR,

更新程序计数器PC。入栈现场保护:依次把xPSR,PC,LR,R12以及R3‐R0由硬件自动压入适当的堆栈中:如果响应中断时,当前的代码正在使用PSP,则压入PSP,即使用线程堆栈;否则压入MSP,使用主堆栈。一旦进入了服务例程,就将一直使用主堆栈。取向量取向量即从向量表中找出对应中断服务程序的入口地址。当数据总线(系统总线)忙于入栈操作时,指令总线(I‐Code总线)正在为响应中断执行另一项重要的任务:从向量表中找出正确的中断向量,然后在服务程序的入口处预取指。更新寄存器在入栈和取向量的工作都完毕之后,执行服务例程之前,还要更新一系列的寄存器:堆栈指针MSP/PSP、程序计数器PC、链接寄存器LR。58中断、异常过程第1章Cortex-M3/M4内核基础异常或者中断是处理器响应系统中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论