实时嵌入式系统中的内核设计_第1页
实时嵌入式系统中的内核设计_第2页
实时嵌入式系统中的内核设计_第3页
实时嵌入式系统中的内核设计_第4页
实时嵌入式系统中的内核设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1/1实时嵌入式系统中的内核设计第一部分实时嵌入式系统内核的分类 2第二部分任务调度算法的比较 7第三部分内存管理策略的选择 9第四部分中断处理机制的设计 12第五部分调试与测试技术的应用 15第六部分实时性保证方法的探索 18第七部分多核架构内核的实现 19第八部分低功耗内核的设计与优化 21

第一部分实时嵌入式系统内核的分类关键词关键要点单内核

1.采用单个核心处理所有任务,具有简单、高效的优点。

2.对实时性要求不高的嵌入式系统中广泛应用,如消费电子产品和物联网设备。

3.受限于处理器性能,当任务负载较重时,可能无法保证实时性。

微内核

1.将操作系统内核功能拆分成独立模块,仅保留基本的调度和资源管理功能。

2.提供高度模块化和可扩展性,方便添加和替换功能模块。

3.由于模块间通信开销较大,实时性能不如单内核。

宏内核

1.将操作系统内核集中在一个进程中,提供丰富的功能和高度的集成度。

2.实时性能优异,适合对性能和可靠性要求较高的嵌入式系统。

3.由于内核代码量大,复杂度高,维护和升级难度较大。

混合内核

1.综合单内核和微内核的优点,将基本内核功能作为单内核运行,而其他非关键功能则作为微内核模块运行。

2.兼顾实时性和模块化,满足不同任务的性能需求。

3.既能应对高负载实时任务,又能实现灵活的系统扩展。

异构内核

1.在同一系统中使用不同架构或不同性能的处理器内核。

2.针对不同类型任务进行处理器分配,优化系统性能和能耗。

3.存在内核间切换开销和通信复杂性,需要精心设计以保证实时性。

实时虚拟化内核

1.将多个实时操作系统虚拟化运行在同一硬件平台上,实现资源隔离和并发执行。

2.满足不同任务对实时性和隔离性的不同需求。

3.需解决虚拟化开销和虚拟机之间的干涉问题,保证虚拟化环境下的实时性。实时嵌入式系统内核的分类

1.微内核

*特点:

*小而简单的内核,只提供基本服务(如进程管理、内存管理、通信)

*大部分功能由用户级服务器实现

*高可扩展性、模块化、可维护性

*优点:

*提高系统稳定性和安全性(用户级服务器故障不会影响内核)

*易于添加或移除功能

*缺点:

*性能开销可能较大

2.宏内核

*特点:

*大型内核,提供广泛的服务(如设备驱动、文件系统、网络协议栈)

*主要用于单处理器系统

*优点:

*高性能

*便于实现

*缺点:

*可扩展性差、模块化程度低

*故障隔离性差,内核中的错误可能导致系统崩溃

3.外核(Exokernel)

*特点:

*非常小的内核,只提供基本原语(如内存保护、中断处理)

*应用完全控制自己的资源,包括硬件和内存

*优点:

*极高的性能

*完全可扩展和模块化

*缺点:

*编程复杂,需要高度专业化的开发人员

*缺乏保护机制,应用可能相互影响

4.纳内核(Nanokernel)

*特点:

*极简的内核,只提供线程管理和通信服务

*所有其他服务由用户级守护进程实现

*优点:

*极高的可扩展性和模块化程度

*非常低的性能开销

*缺点:

*开发难度大,需要对底层硬件有深入了解

5.混合内核

*特点:

*结合了微内核和宏内核的特性

*基本服务由微内核提供,而高级服务由宏内核提供

*优点:

*既能提供微内核的模块化和可扩展性,又能提供宏内核的高性能

*缺点:

*比微内核更复杂,可能导致性能开销

6.实时内核

*特点:

*为实时系统设计的专用内核

*提供确定性,保证实时任务及时完成

*具有优先级调度、资源锁定和时间限制机制

*优点:

*保证实时任务的及时性

*故障隔离性好

*缺点:

*通常比通用内核更复杂和昂贵

7.微型内核

*特点:

*非常小的内核,通常只提供资源分配和调度服务

*依赖外部库和应用程序来实现其他功能

*优点:

*极低的内存占用和性能开销

*非常适合资源受限的嵌入式系统

*缺点:

*开发难度大,需要对底层硬件有深入了解

8.事件驱动内核

*特点:

*根据事件(如中断、消息、定时器)驱动系统操作

*具有非阻塞设计,允许应用程序在等待事件时释放处理器

*优点:

*高性能,即使在处理大量事件时也是如此

*可扩展性好

*缺点:

*编程复杂,可能难以调试

9.无内核系统

*特点:

*根本没有内核,应用程序直接与硬件交互

*非常适合资源严重受限的系统

*优点:

*极低的开销和内存占用

*缺点:

*编程复杂,难以管理资源

*缺乏保护机制第二部分任务调度算法的比较关键词关键要点【优先级调度算法】

1.根据任务的优先级对任务进行调度,优先级高的任务先执行。

2.优点:简单易实现,实时性好。

3.缺点:优先级反转问题,低优先级任务可能被高优先级任务长期阻塞。

【轮转调度算法】

任务调度算法的比较

实时嵌入式系统中的任务调度算法是管理和分配系统资源以满足时序要求的至关重要的组件。本文对三种常见的任务调度算法进行比较:先到先服务(FCFS)、轮转法(RR)和速率单调分析(RMA)。

先到先服务(FCFS)算法

FCFS算法是一种非抢占式算法,它以先到先服务的原则调度任务。该算法简单且易于实现,并且可以保证最先到达的任务最先执行。

*优点:

*简单易懂

*保证公平性

*缺点:

*不考虑任务的优先级

*可能导致较长的等待时间

轮转法(RR)算法

RR算法是一种抢占式算法,它将可运行的任务排队,并在每个时间片内为每个任务分配一个执行时间。时间片结束后,当前正在运行的任务会被抢占,并将被队列中等待的下一个任务替换。

*优点:

*保证每个任务都会按时运行

*响应时间短

*缺点:

*可能导致上下文切换开销较高

*优先级高的任务可能会被低优先级任务饿死

速率单调分析(RMA)算法

RMA算法是一种静态调度算法,它使用每个任务的周期和执行时间来计算每个任务的最大响应时间。如果所有任务的最大响应时间都小于各自的周期,则调度被认为是可行的。

*优点:

*完全可预测,调度是否可行在调度之前即可确定

*可以支持复杂的优先级方案

*缺点:

*仅适用于周期性任务

*对于具有不规则执行时间或依赖关系的任务不适用

比较

|特征|FCFS|RR|RMA|

|||||

|调度类型|非抢占式|抢占式|静态|

|优先级考虑|否|是|是|

|公平性|是|是(时间片控制)|否(取决于优先级)|

|可预测性|低|中|高|

|上下文切换开销|低|高|低|

|复杂性|低|中|高|

选择因素

选择任务调度算法时,需要考虑以下因素:

*系统资源

*任务类型和优先级

*时序要求

*可预测性要求

结论

FCFS、RR和RMA算法是实时嵌入式系统中常用的任务调度算法。每个算法都有其独特的优点和缺点,应根据特定系统要求进行选择。FCFS提供了简单的公平调度,RR擅长响应时间短,RMA适用于完全可预测性和支持复杂优先级方案的情况。第三部分内存管理策略的选择实时嵌入式系统中的内存管理策略选择

1.内存管理策略概述

内存管理策略决定了嵌入式系统如何分配、管理和保护其内存资源。它包括以下关键功能:

*内存分配:分配内存块给任务和数据结构。

*内存回收:当不再需要时释放内存块。

*内存保护:防止不同任务和数据结构访问非授权内存区域。

2.静态内存分配

静态内存分配在编译时为所有任务和数据结构分配固定大小的内存区域。其优点包括:

*确定性:内存使用是已知的,消除了碎片化和内存不足的风险。

*简单性:易于实现,无需复杂的内存管理算法。

缺点:

*低效率:可能导致内存利用率低,因为无法充分利用未使用的内存。

*缺乏灵活性:无法在运行时调整内存分配。

3.动态内存分配

动态内存分配在运行时分配内存。它在需要时分配内存块,并在不再使用时释放它们。其优点包括:

*高效率:提高内存利用率,通过重新分配未使用的内存给其他任务。

*灵活性:允许在运行时创建和销毁任务和数据结构。

缺点:

*复杂性:需要实现复杂的内存管理算法来跟踪已分配和未分配的内存。

*不确定性:存在内存不足和碎片化的风险。

4.混合内存分配

混合内存分配结合了静态和动态内存分配的优点。它为基本任务和数据结构使用静态分配,同时为动态任务和数据结构使用动态分配。

优点:

*平衡效率和灵活性:保证基本任务和数据结构的确定性,同时允许动态任务在运行时调整。

*降低复杂性:仅需实现较少复杂的动态内存管理算法。

缺点:

*可能更复杂:比纯静态或动态分配需要更多的实现工作。

*可能存在内存不足:如果动态分配的内存超出了可用内存,可能会导致系统故障。

5.内存保护策略

内存保护策略确保不同的任务和数据结构只能访问其授权的内存区域。它可以防止非法内存访问,从而提高系统安全性。常用的策略包括:

*内存分段:将内存划分为段,每个段都有特定的访问权限。

*内存分页:将内存划分为固定大小的页,每个页都可以单独映射到虚拟地址空间。

6.内存管理单元(MMU)

MMU是一个硬件组件,用于管理内存访问和保护。它翻译虚拟地址到物理地址,并执行内存保护策略。MMU的优点包括:

*增强安全性:隔离任务和数据结构,防止非法内存访问。

*提高性能:通过使用缓存和分页来优化内存访问。

缺点:

*增加复杂性:需要额外的硬件和软件支持。

*潜在的性能开销:MMU的操作可能会增加系统开销。

7.结论

内存管理策略的选择取决于特定嵌入式系统的需求和约束。静态分配提供确定性和简单性,而动态分配提供效率和灵活性。混合分配平衡了这两种方法的优点。内存保护策略对于提高系统安全性至关重要,而MMU提供了高级内存管理功能。通过仔细考虑这些因素,工程师可以为其嵌入式系统选择最佳的内存管理策略。第四部分中断处理机制的设计关键词关键要点【中断延迟机制】:

1.中断延迟的类型:固定延迟、可变延迟和混合延迟。

2.中断延迟的优点和缺点:减少系统开销、提高系统可靠性;增加系统复杂度、影响实时性。

3.中断延迟的实现技术:软件实现、硬件实现和混合实现。

【中断优先级机制】:

中断处理机制的设计

一、引言

中断机制是实时嵌入式系统中至关重要的组成部分,用于处理外部事件或异常情况的发生。良好的中断处理机制设计对于系统的实时性和可靠性至关重要。

二、中断向量表

中断向量表是一段内存区域,其中存储着中断服务程序的入口地址。当中断发生时,处理器会根据中断号从中断向量表中找到对应的入口地址,并转而去执行中断服务程序。

三、中断服务程序

中断服务程序是响应中断并处理相关事件的代码段。一个好的中断服务程序设计应该做到以下几点:

*快速高效:中断服务程序应尽量短小精悍,以避免对系统性能造成影响。

*原子操作:中断服务程序应是一个原子操作,以确保数据的一致性。

*可重入性:中断服务程序应设计为可重入的,即能够同时处理多个中断请求。

四、中断优先级

中断优先级机制允许系统根据事件的紧急程度对中断进行优先级排序。高优先级中断可以打断低优先级中断的处理。中断优先级的设计应考虑以下因素:

*事件的重要性:更重要的事件应具有更高的优先级。

*时间紧迫性:需要快速响应的事件应具有更高的优先级。

*资源竞争:可能会争夺相同资源的不同中断应具有不同的优先级。

五、异常处理

异常是中断的一种特殊类型,通常由软件错误或硬件故障引起。异常处理机制与中断处理机制类似,但通常具有更高的优先级。异常处理程序应负责诊断和处理异常情况,并采取适当措施保证系统的稳定性。

六、中断屏蔽

中断屏蔽机制允许系统在需要时临时禁用特定中断。这可以防止中断在不适当的时间发生,从而保证系统在关键任务期间的稳定性。中断屏蔽的设计应考虑以下因素:

*必需性:只有在绝对必要时才应屏蔽中断。

*持续时间:中断屏蔽的时间应尽可能短。

*嵌套:中断屏蔽机制应支持嵌套,以防止优先级较高的中断被较低优先级的中断屏蔽。

七、中断管理软件

中断管理软件负责调度和管理中断。主要功能包括:

*中断请求检测:检测并记录来自设备或外部事件的中断请求。

*中断优先级排序:根据中断优先级对中断请求进行排序。

*中断服务程序调用:根据中断号从中断向量表中找到相应的中断服务程序,并调用它们。

*中断屏蔽管理:管理中断屏蔽状态,确保在需要时屏蔽中断。

八、实例:ARMCortex-M内核的中断处理机制

ARMCortex-M内核采用NVIC(嵌套向量中断控制器)作为中断处理机制。NVIC支持多达240个中断源,每个中断源可以分配一个优先级。NVIC提供以下功能:

*中断请求检测:检测来自GPIO、定时器等外设的中断请求。

*中断优先级排序:根据中断优先级对中断请求进行排序。

*中断屏蔽管理:允许对中断进行个别屏蔽或整体屏蔽。

*中断嵌套:支持中断嵌套,高优先级中断可以打断低优先级中断的处理。

九、总结

中断处理机制是实时嵌入式系统中必不可少的组成部分,其设计对于系统的实时性和可靠性至关重要。通过合理设计中断向量表、中断服务程序、中断优先级、异常处理、中断屏蔽和中断管理软件,可以实现一个高效、可靠的中断处理机制,满足实时嵌入式系统的需求。第五部分调试与测试技术的应用关键词关键要点【实时调试和测试的自动化】

1.自动化测试工具已广泛用于实时嵌入式系统,以提高测试覆盖率和降低人力成本。

2.这些工具可以执行自动化测试用例,包括功能验证、性能评估和边界值分析。

3.集成持续集成和持续交付(CI/CD)管道可以实现自动化测试的无缝集成和端到端的可追溯性。

【基于模型的目标仿真】

调试与测试技术的应用

在实时嵌入式系统开发中,调试和测试至关重要,以确保系统按预期运行并符合其要求。以下介绍几种常用的调试和测试技术及其在实时嵌入式系统中的应用:

调试技术

*断点调试:在代码中设置断点,以便在程序执行时在特定位置暂停,从而检查变量值、内存内容和程序流程。

*单步执行:逐条执行程序,允许开发者逐行检查代码,识别错误并理解程序行为。

*代码覆盖率分析:确定程序中哪些部分已被执行过,有助于识别未测试的代码路径和潜在问题。

*内存调试:监测内存使用情况,识别内存泄漏、损坏和堆栈溢出。

*日志记录和追踪:在程序执行过程中记录信息和事件,以便在出现问题时进行分析。

测试技术

*单元测试:测试系统中的个别模块和功能,确保其按预期运行。

*集成测试:将多个模块集成并测试其交互,识别模块之间的潜在问题。

*系统测试:测试整个系统以验证其功能和性能是否符合要求。

*性能测试:评估系统在负载和时间压力下的性能,确保其满足实时要求。

*可靠性测试:将系统置于极端条件下,测试其可靠性和容错能力。

实时嵌入式系统中的特定挑战

在实时嵌入式系统中,调试和测试面临以下特殊挑战:

*时间确定性:实时系统必须在可预测的时间内执行任务,因此调试和测试技术必须确保不影响系统性能。

*资源受限:嵌入式系统通常资源有限,因此调试和测试工具必须高效且轻量级。

*并发性:实时系统通常涉及多线程和并发任务,因此调试和测试技术必须能够处理复杂的交互和同步问题。

针对这些挑战的解决方案

为了克服这些挑战,实时嵌入式系统中的调试和测试技术采用了以下策略:

*非侵入式调试:使用非侵入式技术,例如硬件仿真器和实时操作系统跟踪工具,以避免影响系统性能。

*轻量级测试框架:开发专为嵌入式系统设计的轻量级测试框架,最大限度地减少资源占用。

*并发性检测和调试:提供并发性检测和调试工具,帮助开发者识别和解决同步问题。

*自动化测试:利用自动化测试工具简化和加快测试过程,提高效率和覆盖率。

结论

调试和测试对于开发可靠且符合要求的实时嵌入式系统至关重要。通过应用各种调试和测试技术,开发者可以识别和解决系统中的问题,并确保其按预期运行。解决实时嵌入式系统中调试和测试的特定挑战需要采用非侵入式技术、轻量级测试框架、并发性检测和自动化测试。第六部分实时性保证方法的探索实时性保证方法的探索

1.调度策略

*优先级调度:为任务分配优先级,确保高优先级任务优先执行。

*时间分片调度:在任务之间分配固定时间片,确保每个任务都能公平地执行。

*周期性调度:为周期性任务分配执行时间表,确保任务在规定时间内完成。

*事件驱动调度:任务仅在特定事件发生时执行,提高了响应速度。

2.资源锁

*互斥锁:防止多个任务同时访问共享资源,避免数据损坏。

*自旋锁:与互斥锁类似,但当资源被占用时,任务会持续尝试获取锁。

*读写锁:允许多个任务同时读取共享资源,但仅允许一个任务写入。

3.通信机制

*消息传递:任务通过传递消息进行通信,提供异步和可靠的通信。

*共享内存:任务通过共享内存直接访问其他任务的数据,但需要小心数据损坏。

*管道:用于传输数据流的任务之间的双向通信。

4.同步机制

*信号量:用于表示资源或事件的状态,任务可以等待信号量被置位或清除。

*事件标志:用于表示已发生特定事件,任务可以等待事件标志被置位。

*条件变量:允许任务在特定条件满足时进入休眠状态。

5.错误处理

*异常处理:捕获并处理硬件或软件错误,避免系统崩溃。

*看门狗定时器:监测任务执行,如果任务超时,则触发复位或中断。

*冗余:使用冗余组件(如处理器或存储器)以提高系统容错性。

6.验证和测试

*静态分析:在代码执行之前检查代码是否存在错误和潜在问题。

*动态测试:在系统运行时测试系统行为,以验证其实时性要求。

*形式验证:使用数学方法证明系统满足其指定要求。

7.其他方法

*实时操作系统(RTOS):专门为实时系统设计的操作系统,提供调度、通信和同步功能。

*实时虚拟机(RVM):提供一个隔离的环境,让实时任务可以在非实时系统上运行。

*μC/OS-III:一种广泛使用的实时操作系统,用于嵌入式系统。第七部分多核架构内核的实现关键词关键要点多核架构内核的实现

主题名称:硬件抽象层(HAL)

1.HAL位于内核和底层硬件之间,提供与特定硬件平台无关的抽象接口。

2.HAL屏蔽了不同硬件架构之间的差异,使得内核可以移植到不同的平台上。

3.HAL通常包括对中断、时钟、内存和外围设备等硬件资源的访问。

主题名称:多核调度器

多核架构内核的实现

多核架构内核的实现涉及将多个处理内核集成到一个芯片(SoC)上。以下介绍了实现多核架构内核的关键步骤:

1.处理器设计:

*定义每个内核的微架构,包括指令集、管道设计和缓存系统。

*优化内核性能,例如时钟速率、指令吞吐量和功耗。

*考虑内核之间的互连机制,如总线或网络接口。

2.系统架构:

*设计系统总线架构,连接内核、内存和外围设备。

*确定内存访问策略,例如一致性模型和缓存管理机制。

*实施中断和异常处理机制。

3.调度算法:

*开发调度算法来分配处理内核上的任务。

*平衡内核负载,最大限度地提高系统性能。

*考虑实时性要求和优先级设置。

4.同步机制:

*实现同步机制,如锁、信号量和屏障,以管理共享资源的并行访问。

*优化同步机制以最小化开销并提高并发性。

5.虚拟化支持:

*提供虚拟化支持,使多个操作系统或应用程序可以在单个物理平台上并行运行。

*实现虚拟内存管理、虚拟化扩展和安全隔离。

6.电源管理:

*实施电源管理技术,例如动态电压和频率调节(DVFS)和时钟门控。

*优化功耗,同时保持性能要求。

7.测试和验证:

*彻底测试和验证多核架构,包括压力测试、功能验证和性能分析。

*使用仿真、原型和实物测试相结合的方法。

8.集成和部署:

*将多核架构内核集成到更广泛的系统中,包括硬件平台、操作系统和应用程序。

*提供开发工具、软件库和文档。

实现多核架构内核的挑战:

*共享资源的并发访问协调

*一致性模型的实现

*同步机制的开销优化

*电源管理和性能平衡的权衡

*测试和验证复杂多核系统的难度第八部分低功耗内核的设计与优化关键词关键要点实时性与功耗的权衡

1.硬件加速和软件优化:通过使用专用硬件单元或优化软件算法来执行繁重任务,从而减少执行时间和功耗。

2.可变频率和电压调整:动态调节内核频率和电压,在需要高性能时提供更快的速度,在低负载时降低功耗。

3.任务调度和同步机制:采用高效的任务调度策略和同步机制,最大限度减少空闲时间和锁竞争,从而节省功耗。

电源管理技术

1.低功耗模式:实现多种低功耗模式,例如空闲、睡眠和关闭,以在不同活动级别下优化功耗。

2.动态电源管理:动态监控系统活动并相应调整内核电压和频率,以在满足性能要求的同时最大限度减少功耗。

3.能量意识外设:使用节能外设,例如低功耗传感器和通信接口,进一步降低功耗。

内存管理

1.分级内存层次结构:采用多级内存层次结构,例如高速缓存和主存储器,以减少内存访问时间和能量消耗。

2.数据预取和缓存策略:利用数据预取和优化缓存策略来减少内存访问,从而节省功耗。

3.可变内存电压:采用可变内存电压技术,根据内存访问模式动态调整内存电压,以优化功耗。

实时性与功耗的联合优化

1.实时约束下的功耗优化:设计功耗优化算法,同时满足实时性要求,避免因功耗优化而影响系统性能。

2.功耗感知调度:开发功耗感知的任务调度算法,在满足实时性约束的同时优先考虑低功耗任务。

3.动态编译和优化:使用动态编译和优化技术,在运行时根据系统负载和功耗需求调整代码,实现实时性和功耗的最佳平衡。实时嵌入式系统中的内核设计:低功耗内核的设计与优化

引言

随着嵌入式系统在物联网(IoT)、可穿戴设备和工业自动化等领域的应用日益广泛,对低功耗内核的需求不断增长。低功耗内核通过优化硬件和软件设计,可以极大地延长设备电池寿命并降低能耗。

硬件设计优化

动态电压调整(DVS):DVS允许处理器在不同负载下动态调整其工作电压。当负载较小时,可以降低电压,从而减少功耗。

动态频率调节(DFS):DFS允许处理器在不同负载下动态调整其时钟频率。当负载较小时,可以降低频率,从而减少功耗。

功率门控:功率门控涉及关闭不活动的硬件模块,以减少泄漏电流。

优化内存管理:低功耗内核通常采用低功耗内存技术,如LPDDRx或STTRAM。优化内存访问模式和缓存机制也有助于降低功耗。

软件设计优化

实时操作系统(RTOS):RTOS旨在优化多任务和实时性,同时最大程度地降低功耗。调度算法、锁机制和中断处理都经过优化,以减少非活动时间。

低功耗模式:低功耗内核通常支持多种低功耗模式,如休眠、睡眠和待机模式。这些模式允许处理器进入超低功耗状态,同时仍能保留其状态。

软件休眠:软件休眠涉及将处理器和存储器的内容保存到非易失性存储器中,然后将处理器置于低功耗模式。当需要时,处理器可以从存储器中恢复状态并继续执行。

事件驱动编程:事件驱动编程模型有助于降低功耗,因为它允许处理器在不活动时进入低功耗模式,并仅在特定事件发生时才唤醒。

其他优化技术

功耗分析工具:功耗分析工具可以帮助确定代码和硬件中功耗敏感的区域,从而针对优化进行指导。

模拟和建模:模拟和建模技术可以预测系统功耗,并在设计阶段优化设计。

基准测试:基准测试可用于评估不同内核架构和优化技术的功耗效率。

具体案例

ARMCortex-M0+内核:Cortex-M0+内核是一种低功耗内核,用于物联网和可穿戴设备。它支持DVS、DFS和功率门控,

温馨提示

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

评论

0/150

提交评论