(完整word版)计算机三级嵌入式知识点,推荐文档_第1页
(完整word版)计算机三级嵌入式知识点,推荐文档_第2页
(完整word版)计算机三级嵌入式知识点,推荐文档_第3页
(完整word版)计算机三级嵌入式知识点,推荐文档_第4页
(完整word版)计算机三级嵌入式知识点,推荐文档_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、【IEEE 的实时 UNIX分委会认为实时操作系统应该具备若干特征,下面哪一项不是实时操作系统必须具有的特征?()具有异步 I/O 和中断处理能力任务切换时间和中断延迟时间确定优先级中断和调度轮转调度解析】 IEEE的实时 UNIX 分委会认为实时操作系统应该具备7 个特征:具有异步I/O 和中断处理能力; 任务切换时间和中断延迟时间确定;优先级中断和调度; 抢占式调度; 内存锁定;连续文件;同步。选项D 不是实时系统的特征,故本题选择D。如下几种 Bootloader中,用于 Linux操作系统引导程序加载时所支持不同体系结构处理器种类最多的是()。LILOGRUBU-BootLoadlin

2、正确答案: C答疑:【解析】 U-Boot 以 POCBoot和 ARMBoot 计划为基础。除了支持 Power PC系列处理器外,还支持 X86、ARM、 Mips、Alpha 、IA64 、SupcrHSPARC等多种常用体系结构处理器。故本题选择 C。移植 C/OS-II到一个嵌入式系统电路板上正常运行,下面哪个条件不是必须的?()。处理器的 C编译器能产生可重入代码,且用C语言就可以打开和关闭中断JTAG接口串联在一起,实现对多个器件的测试该电路板的处理器必须具备MMU(存储管理单元)处理器支持中断,并且能产生定时中断(通常在10 至 100Hz之间)处理器支持能够容纳一定量数据(可

3、能是几千字节)的硬件栈区正确答案: B答疑:【解析】移植 C/OS-II 到一个嵌入式电路板上正常运行,必须满足以下要求:处理器的 C 编译器能产生可重入代码;用 C 语言就可以打开和关闭中断;处理器支持中断,并且能产生定时中断(通常在 10100Hz之间);处理器支持能够容纳一定量数据(可能是几千字节)的硬件栈区;处理器有将栈区指针和其他 CPU寄存器读出和存储到栈区或内存中的指令。存储管理单元可以不需要。故本题选择 BS3C2410内部的电源管理模块所具有的四种模式:正常模式、慢速模式、休眠模式和掉电模式。休眠模式下,电源管理模块仅断开ARM 内核时钟FCLK,让 CPU 处于休眠状态,但

4、仍为外围硬件组件提供时钟;掉电模式下电源管理模块将断开内部电源,除非唤醒逻辑有效,否则内核不产生功耗。按照 IC 设计文件的类型,IP 核通常分为三种:软核、固核和硬核本题考查存储器存储容量的决定因素。 存储器的容量取决于存储单元的个数和存储器各单元的位数, 而单元个数与存储器的地址总线有密切关系, 因此存储器芯片的容量完全取决于存储器芯片的地址线条数和数据线的位数。VxWorks 是目前公认为实时性最强、可靠性最高的一种嵌入式实时操作系统。在该操作系统中,所有与特定电路板上硬件相关的功能都集成在一个库中,该库的名称为板级支持包( BSP)。GCC的命令及参数 。源文件为test.c ,表示源

5、文件是用C 语言编写的;命令arm-linux-gcc -g -o test test.c 中加入了 -g、 -o test ,表示执行该命令后,编译器将在生成的输出文件test 中加入 GDB 能够使用的调用信息,使得用GDB 调试时比较方便。 file 命令是装入需要调试的可执行文件,运行文件或执行当前被调试的程序用命令run 。Linux操作系统遵从GNU 计划下的通用公共许可协议,而GNU开发的编程语言编译器称为GCC。GNU 开发工具的使用,GCC调试命令。由于Linux 操作系统中可执行文件没有统一的文件后缀,操作系统是从文件的属性来区分可执行文件和不可执行文件的,因此 GCC 生

6、成可执行文件时若用户未指定文件名,则 GCC生成一个名为 a.out 的可执行文件。针对 ARM 硬件平台的目标机,其GCC的基本命令格式是:arm_linux_gcc options filenames 。JTAG。用于芯片和电路板的测试人们常用 JTAG来表示满足 IEEE1149 规范的边界扫描测试方法和 TAP接口(称为 JTAG接口),是一种用于片上调试技术的统称。 JTAG标准中规定 TAP 接口使用以下 5 根信号线: TCK、TMS、TDI、TDO 和 TRST。JATG可用于实现嵌入式系统的在线编程功能,其标准允许多个芯片通过 C/OS-II的层次位置 。基于 C/OS-II

7、的嵌入式系统软件架构是一个建立在硬件系统上的四层软件结构,从上到下的顺序是:应用软件层,应用程序接口( API)层, C/OS-II内核,设备驱动层。Linux 内核的组成 。Linux 内核主要由 5 个子系统组成: 进程调度, 内存管理, 虚拟文件系统,网络接口,进程间通信。 Linux 内核是一种自由软件,其源代码是开放的,其创始人是芬兰学生 Linus Torvalds;对于不同体系结构的 CPU,Linux 内核的源代码各不相同; 2012 年 Linux 内核升级到 3.0 版本,嵌入式 Linux 进程间的通信机制。包括信号、 管道、消息队列、 信号量、 共享内存和套接字。硬件抽

8、象层HAL。在嵌入式领域,HAL 主要用来简化嵌入式操作系统的移植作业,它对底层硬件的初始化程序或者控制程序进行封装, 向上提供了访问底层硬件的函数接口, 隐藏了硬件的差异性,避免了操作系统对硬件的直接访问。 HAL 位于内核操作系统和硬件平台之间。RTOS的相关指标 。 RTOS(实时操作系统)有 3 个主要的实时指标:响应时间、吞吐量和生存时间。响应时间的具体指标是:中断延迟时间和任务切换时间。实时系统对时间约束要求的严格性,使可预测性 成为实时系统的一项重要性能要求,它是指RTOS能够对外部事件的 响应时间 和实时任务的 执行时间 进行判断,以确定被事件触发的实时任务能否在规定的时间内完

9、成。 IEEE(美国电气电子工程师协会) 给出的实时系统定义是:那些正确性不仅取决于计算的逻辑结果, 也取决于产生结果所花费的时间的系统。 因此, 实时系统对外界的响应是否正确不仅取决于功能正确性,而且取决于时间正确性。RTOS的实时性能指标,其中响应时间的具体指标有中断延迟时间和任务切换时间。从接收到可屏蔽中断请求信号到操作系统作出响应并转入中断服务程序所需要的最长时间,称为中断延迟时间。 该时间包括两部分:一是最长关中断时间,是指系统因执行临界区代码等原因不允许响应中断请求的时间;二是从硬件开始响应中断到开始执行中断服务程序第一条指令之间的时间。RTOS响应中断请求并且完成相应中断服务子程

10、序( ISR)的时间非常快,且这个时间必须具有某种程度的一致性。精细衡量这个时间一致性变化的术语是抖动 。实时系统及实时指标的理解。实时系统对外界的响应是否正确不仅取决于功能正确性,而且取决于对事件处理的时间正确性。因此,评价实时系统的实时性最重要的指标是响应时间,即系统从事件请求开始到任务完成的时间间隔。 实时系统任务时限的类型的了解。 实时系统的任务时限有两种类型,分别是截止时间和务执行预设时间。CAN 总线的数据帧构成。CAN 总线的数据帧由7 个不同的域组成:帧起始、仲裁域、控制域、数据域、 CRC域、应答域、帧结尾。CAN 总线采用差分传输,控制器内置CRC校验,传输可靠性强, 可构

11、成多主多从系统,即同一时刻允许多个主从机同时进行数据传输。CAN 总线的数据帧是由7 个不同的域组成:帧起始、仲裁域、控制域、数据域、CRC域、应答域、帧结尾。数据域由数据帧的发送数据组成,它可以是08B,每字节包含8 位,按照高位在前,低位在后的原则发送。ARM 的中断控制器。 每一个 ARM 芯片,除了内核异常外,还有多种内置硬件组件的中断,基于 ARM 内核的嵌入式芯片中的中断控制器的功能是对芯片中相关硬件组件的中断请求进行管理和控制, 一般采用向量中断 ( VIC)或嵌套向量中断 ( NVIC)方式管理中断。 WIC 称为唤醒中断控制器嵌入式硬件系统的组成 。典型的嵌入式系统硬件由嵌入

12、式最小硬件系统、道、人机交互通道及相互互联通信通道等组成。 前向通道即输入接口,数字量输入接口组成。前向通道、 后向通由模拟量输入接口和ARM 处理器的工作状态。在 ARM 的体系结构中, 处理器可以工作在3 种不同的状态, ARM状态 Thumb 状态及Thumb-2 状态 调试状态。 ARM 状态是 ARM 处理器工作于32 位指令的状态,所有指令均为32 位宽度。 Thumb 状态是 ARM 执行 16 位指令的状态;在Thumb模式下,指令代码只有16 位。Thumb-2 状态是 ARMv7 版本的 ARM 处理器所具有的新状态。ARM 公司在经典处理器ARM11 以后的产品改用 Co

13、rtex 命名,并分成 A、R 和 M 三类,旨在为各种不同的市场提供服务。其中:“A系”列面向尖端的基于虚拟内存的操作系统和用户应用;“R系”列针对实时系统; “M”系列对微控制器。 ARM7、ARM9 和 ARM11 属于经典 ARM 处理器, ARM Cortex-M0/Cortex-M1/Cortex-M3/Cortex-M4等 Cortex-M 系列归属于 ARM Cortex嵌入式处理器。 ARM 嵌入式处理芯片性能。 Cortex-M3采用 3 级流水线,在 ARM Cortex 实时嵌入式处理理器中,Cortex-R4 采用 8 级流水线。ARM 处理器的 7 种异常及相应优先

14、级。经典 ARM 处理器有 7 种异常:主要包括复位RESET、未定义指令 UND、软件中断 SWI、指令预取中止 PABT、数据访问中止 DABT、外部中断请求IRQ 以及快速中断,其中优先级最高的异常是复位。ARM 常用指令中的中断指令助记符。 ARM 处理器异常中断指令中用于软中断的指令助词符为 SWI,用于断点中断指令助词符为BKPT。ARM Cortex-M3 实现中断嵌套过程。中断可以改为使用比之前服务程序更高的优先级,而且可以在运行时改变优先级状态。使用末尾连锁连续中断技术只需消耗3个时钟周期,相比32 个时钟周期的连续压、出堆栈,大大降低了延迟,提高了性能。嵌入式处理器的体系结

15、构按照存储机制可分为冯诺 ·依曼结构及哈佛结构。ARM7 采用冯 ·诺依曼结构, 3 级流水线, ARM9 采用哈佛结构,5 级流水线嵌入式处理器按存储机制的分类。CPU与存储器的连接只有一套总线,存储器中既可以存放数据也可以存放程序,这样的结构是冯·诺依曼( von Neumann )结构;相对的,程序存储器和数据存储器分开采用两套总线与CPU连接的结构是哈佛(Harvard )结构。RVDS是 ARM 公司推出的基于ARM 系列 CPU进行开发的工具套件,支持所有ARM 芯片,还支持其他内核的处理器,如51 系列;与 ADS1.2比较而言,其生成的代码紧凑,执

16、行效率高; RVDS的开发工具套件中,主要包括工程管理器、编译连接器、调试器和指令集仿真器等;支持汇编、C 和 C+对源程序进行编译。嵌入式系统的 开发工具软件GCC的命令及参数。 以 S3C2410为核心的目标机,在 Linux 操作系统下开发该目标机的Linux 应用程序,通常使用arm-linux-gcc 交叉编译器来编译应用程序。若要对一个应用程序进行调试排错,则应该在编译命令中加g 参数对它进行编译。 C/OS-II只能管理 64 个任务,目前的版本保留 8 个任务给系统,故用户编写的应用程序最多可以有 56 个任务;空闲任务( idle task)是系统所创建的第 1 个任务;就绪

17、态的任务意味着该任务已经准备好, 可以运行但由于该任务的优先级比正在运行的任务的优先级低, 暂时还不能运行。 C/OS-II的任务间通信 。 C/OS-II系统中主要利用信号量、互斥信号量(适合优先级翻转)箱或消息队列进行任务间通信。适合处理多事件同步的是事件标志组。在 C/OS-II 操作系统中,内核对任务的管理通过任务控制块OS_TCB进行;任务切换也称为上下文切换,实际含义是任务的CPU 寄存器内容切换。当C/OS-II 内核决定运行别的任务时,正在运行任务的工作现场被保存到任务的自由栈之中。 C/OS-II 的任务调度中就绪表。 C/OS-II 的就绪任务等级在就绪表中,OSRdyTb

18、l是就绪表的位图映像矩阵,每一位代表了一个优先级任务的就绪状态,称为就绪位, 该矩阵最多可有 64 位。 C/OS-II的系统平台的应用开发 。一个应用程序的工程项目中,必须包含启动引导程序, UC/OS-II 的库文件,应用程序等。 main()函数在执行过程中,除了用户函数和硬件初始化函数外,按以下次序执行 3 个主要的 C/OS-II函数:操作系统初始化 OSInit(),任务创建OSTaskCreate(),任务调度开始 OSStart()。在 C/OS-II 操作系统中,一般用 OSQPend()函数来等待并获得消息,用函数 OSQPost()来发送消息;当有多个任务在等待消息队列中

19、的消息时,其中任务优先级最高的任务将获得消息。系统上电或复位后,首先执行的是 “ BColdReset”指令, 系统跳转到标号为ColdRest 处接着执行,在完成了关看门狗定时器、 关中断、初始化各模式的堆栈、 初始化存储器等功能后,执行指令 “ BL_main ”跳转到 C 语言的主函数处执行。 按照 S3C2410芯片体系结构的规定,复位异常的向量地址是 0x00000000 ,各异常向量地址之间相差 4 个字节。板级支持包 : BSP实际上一些汇编程序和C 语言代码相结合的操作系统底层软件。包括初始化程序、设备驱动程序、配置文件和引导加载程序等。系统复位 :一般情况下 ,为保证系统可靠

20、复位,复位信号有效电平的时间宽度必须为若干个处理器时钟周期; 嵌入式系统可使用外接典型复位芯片来保证系统可靠复位;嵌入式处理器都有一个系统复位引脚为nRESET或 RESET,n 表示低电平复位,不带n 的表示高电平复位;ARM 复位后 PC无条件的指向0x00000000 处。复位异常向量地址处通常存储一条分支指令的代码实时操作系统完成每次任务所需时间的偏差,也就是时间一致性,叫做抖动;硬实时操作系统的抖动比软实时操作系统的抖动要小。I2C 总线属于多主总线,即允许总线上有一个或多个主控制器件和若干从器件同时进行操作,通过总线仲裁的方式确定总线控制权; I2C 只有两条信号线; 数据线 SD

21、A和时钟线 SCL,所有操作都通过这两条信号线完成MMU 是 Memory Management Unit 的缩写, 中文名是内存管理单元, 它是 CPU管理虚拟存储器、 物理存储器的控制线路, 同时也负责虚拟地址映射为物理地址, 以及提供硬件机制的内存访问授权; MMU 进行虚拟地址到物理地址的转换通过查找页表来完成,每次在访问内存时先查 TLB,查不到时再到内存中去查整个页表。CPSR为当前程序状态寄存器, 记录了 ARM 运行过程中的标志状态; 其中 T 为 ARM 与 Thumb 指令切换, F 为禁止快速中断 FIQ 的控制位。 当前程序状态寄存器 CPSR的相关控制位。 CPSR

22、中的控制位中, I 是外部 IRQ 中断禁止控制位, I=1 禁止外部 IRQ 中断, I=0 允许 IRQ 中断; F 为禁止快速中断 FIQ 的控制位, F=1 禁止 FIQ 中断, F=0 允许 FIQ 中断IP 核通常分为3 种:软核,即使用硬件描述余语言(HDL)描述的IP 核;固核,与工艺相关的包含具体结构信息的IP 核,以逻辑综合后的RTL描述和可综合网表的形式提供;硬核,是已被投片测试验证的IC 的掩膜版图和全套工艺文件。GCC是 GNU 开发工具套件中的核心工具软件,是 GNU C 语言编译器的简称。GCC所编译的目标机的处理器包括X86、ARM、PowerPC 等体系结构的

23、处理器,如 ARM_Linux_GCC即是针对 ARM 体系结构的目标机的编译工具。Linux 操作系统的嵌入式软件的工具套件GNU 相关知识。 GCC是 GNU 开发工具套件中的核心工具软件,是编译器;GDB是 GNU 开发工具套件中的程序调试工具。Thumb-2 指令集的掌握 ,开关中断指令属于程序状态类指令,用于更改处理器状态。关外部中断使用的指令为: CPSIDI,开外部中断的指令为: CPSIEI。UART 的构成 。 UART由发送器、接收器、控制单元及波特率发生器等构成AMBA 总线的典型ARM 片上系统构建方式。按照 AMBA 总线规范,基于ARM 内核的嵌入式处理器芯片采用系

24、统总线与外围总线两层结构的方式构建片上系统。其中的系统总线主要用于连接高带宽快速组件。嵌入式系统的存储器以半导体存储器为主, FRAM和MRAM ,分别称为铁电随机存取存储器和磁性随机存取存储器。片选信号CS低电平有效;nGCS2映射地址为0x10000000。ARM9体系结构 中规定异常向量之间各相差四个字节;对于S3C2410 微处理器来说,其启动引导程序还需要完成禁止看门狗定时器部件和禁止中断,并设置各工作模式下的堆栈指针。存储器管理单元(MMU )是许多高性能处理器所必需的重要部件之一,用来完成虚拟地址到物理地址转换。存储器保护单元(MPU)湿度存储器进行保护的可选组件。临界区的概念和

25、关中断操作。代码的临界区 ( Critical Section)是指处理时不可分割的代码。为确保临界区代码的执行, 在进入临界区之前必须关中断, 执行完临界区代码之后要立即开中断。C/OS-II系统调用宏 OS_ENTER_CRITICAL()执行关中断操作。 代码的临界区是指处理时不可分割的代码;一旦这部分代码执行,不允许任何中断打入。任务级的调度是由函数OSSchedLock()完成的。差分传输 ,就是发送端在两条信号线上传输幅值相等相位相反的电信号,接收端对接受的两条线信号作减法运算,这样获得幅值翻倍的信号。特点:从严格意义上来讲,所有电压信号都是差分的,因为一个电压只能是相对于另一个电

26、压而言的。 在某些系统里, "系统地 "被用作电压基准点。 当 '地 '当作电压测量基准时, 这种信号规划被称之为单端的。我们使用该术语是因为信号是用单个导体上的电压来表示的。另一方面, 一个差分信号作用在两个导体上。信号值是两个导体间的电压差。尽管不是非常必要,这两个电压的平均值还是会经常保持一致。】软件平台的构建步骤通常是: 首先移植启动引导程序 ( Bootloader ),然后完成 Linux 内核的移植,随后还需构建根文件系统。基于 ARM9 核的处理器,各异常向量之间相差 4 个字节。因此,需要在各异常向量处设计一条无条件转移指令。 对于 S3C

27、2410微处理器来说, 启动引导程序还需要完成 禁止看门狗 部件和 禁止中断 ,并设置各工作模式下的 SP 指针,然后再通过 BL 指令来引导应用程序的 main 函数ARM7 采用冯 ?诺依曼结构, 3 级流水线,无MMU ; ARM Cortex-A15 采用哈佛结构,流水线, MPCore 为多核,超标量,可变长度,乱序执行指令流水线,动态分支指令预测,13 级4 路相关二级Cache。】典型的嵌入式WEB 服务器应用软件至少有4 个重要的组件:客户端浏览器,WEB 服务器、 WEB 页面、设备操控程序等。其中WEB 页面是用于设备操控命令提交或设备状态信息显示的人机界面,它需要通过CG

28、I接口来与设备操控程序进行信息交互。传送 CPSR或 SPSR的内容到通用寄存器指令用MRS;传送通用寄存器到CPSR或 SPSR的指令用 MSR。为了连接ARM 内核与处理器芯片中的其他各种组件,ARM 公司定义了总线规范,名为先进微控制器总线体系结构(Advanced MicrocontrollerBus Architecture, AMBA);先进外围总线(Advanced Peripheral Bus, APB)。在掉电模式下,电源管理模块将断开内部电源,除非唤醒逻辑有效,内核不产生功耗;在任何情况下,对处理器进行复位操作,均自动进入正常模式。GNU 包含三个协议条款,其中最重要的是G

29、PL。GPL 是通用公共许可协议。图中X 处应为设备驱动程序。硬件最小系统包括电源电路、时钟电路、复位电路、调试测试接口、以及存储器嵌入式系统硬件的逻辑组成。硬件的主体是中央处理器和存储器,他们通过I/O 接口和 I/O设备与外部世界联系,并借助总线相互连接。中央处理器(CPU)由运算器、控制器、寄存器、高速缓冲存储器(Cache)等部件组成,故A 是中央处理器;B 里面包括按键、键盘、指示灯和屏幕等人机交互设备,他们是用户界面的硬件部分,所以B 是用户界面。ARM 处理器中通用寄存器的作用。ARM 通用寄存器共有31 个,均为 32 位结构。 R13R14除了用户模式和系统模式分别为堆栈指针

30、(SP)和程序链接寄存器(LR)之外,其他模式下均有自己独特的标记方式,是专门用于特定模式的寄存器,共6组 12个。I2C 总线的相关概念。是广泛采用的一种串行半双工传输的总线标准。I2C 总线中发起数据传输操作的I2C 器件是主控器件。嵌入式系统主要开发工具软件ADS1.2 如何进行地址映射配置。ADS1.2 把目标文件中的信息按照 3 种存储区域类型来进行划分,即划分为区和常数存储区,具有只读性质。RO段、 RW 段、 ZI 段; RO段是指代码存储伪指令的了解和使用。引用一个在其它文件中的标号声明一个全局标号Lable2 以便其它文件引用,该伪指令为Lable1 的伪指令为EXTERNL

31、able2。IMPORTLable1,数字信号处理器的英文缩写是 DSP,是一种专用于数字信号处理的微处理器,指令系统中增加单指令多数据( SIMD)并行处理的特殊指令。ARM 嵌入式处理芯片方面的知识。基于Cortex-M0的专家处理器为SC100,基于Cortex-M3的专家处理器名为SC300。直接存储器访问(存传输至内存。DMA)控制器可将数据块从外设传输至内存、从内存传输至外设或从内本题考查存储器的主要性能指标及相关因素。 存储器带宽与存储器总线的工作频率 (周期)有关,也与数据线的位数(位宽、宽度)和每个总线周期的传输次数有关。串行外设接口MISO、主机输出SPI。 SPI一般使用

32、 / 从机输入数据线4 条信号线: 串行时钟线 SCK、主机输入 / 从机输出数据线 MOSI 和低电平有效的从机选择线 SSEL。本题考查嵌入式系统仿真开发平台相关概念。仿真平台(仿真开发平台)一般指嵌入式系统开发过程中使用的 虚拟机管理软件、仿真软件或者指令集模拟器。嵌入式操作系统的基本组成。在嵌入式操作系统的核心部分称为设备进行控制和管理的程序模块称为 驱动程序 ( driver )。内核( kernel ),而对硬件嵌入式系统的启动顺序和 Bootloader 的存放位置。在嵌入式系统 加电或复位 的时候,所有的微处理器通常都从某个由 CPU制造商预先安排的地址上取指令; 基于 ARM920T 核的微处理器从地址 0x0000

温馨提示

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

评论

0/150

提交评论