chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計(jì)_第1頁
chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計(jì)_第2頁
chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計(jì)_第3頁
chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計(jì)_第4頁
chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、微處理器系統(tǒng)結(jié)構(gòu)及嵌入式系統(tǒng)設(shè)計(jì)(綜合性強(qiáng),偏應(yīng)用的一門課程)電子工程學(xué)院陳 客 松1第11章 基于ARM微處理器的軟件系統(tǒng)設(shè)計(jì)11.1 嵌入式系統(tǒng)簡介嵌入式系統(tǒng):嵌入到各種控制應(yīng)用系統(tǒng)、各類電子系統(tǒng)和電子產(chǎn)品中,實(shí)現(xiàn)嵌入式應(yīng)用的計(jì)算機(jī)系統(tǒng)嵌入式系統(tǒng)是以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可剪裁,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)Embedded system is devices used to control, monitor, or assist the operation of equipment, machinery or plantsIEEE

2、嵌入式系統(tǒng)的主要特征面向控制對象,對多種不同的控制對象能靈活地進(jìn)行實(shí)時(shí)控制嵌入到應(yīng)用系統(tǒng)中在工業(yè)現(xiàn)場環(huán)境中可靠地運(yùn)行2嵌入式系統(tǒng)的主要特點(diǎn)軟件硬件協(xié)同并行開發(fā)多種多樣的微處理器實(shí)時(shí)操作系統(tǒng)的多樣性 (RTOS)與臺(tái)式機(jī)相比,可利用系統(tǒng)資源有限應(yīng)用支持很少要求特殊的開發(fā)工具代碼固化運(yùn)行調(diào)試手段有限軟件硬件的魯棒性(健壯性,Robust)嵌入式系統(tǒng)的體積和功耗 311.2 設(shè)計(jì)方法及設(shè)計(jì)流程嵌入式系統(tǒng)要解決的主要問題需要用什么樣的系統(tǒng)結(jié)構(gòu)來實(shí)現(xiàn)? 如何滿足時(shí)限要求,如何處理多項(xiàng)功能在時(shí)間上的協(xié)調(diào)一致關(guān)系?如何保證系統(tǒng)可靠地工作?如何滿足系統(tǒng)接口要求,嵌入式應(yīng)用直接和系統(tǒng)接口輸入輸出信息?如何降低系

3、統(tǒng)的功耗? 如何使系統(tǒng)可升級(jí)?4設(shè)計(jì)流程自頂向下或自底向上設(shè)計(jì)5需求設(shè)計(jì)說明體系結(jié)構(gòu)構(gòu)件設(shè)計(jì)系統(tǒng)集成自頂向下設(shè)計(jì)自底向上設(shè)計(jì)單片機(jī)系統(tǒng)的開發(fā)流程6用戶需求開發(fā)結(jié)束整個(gè)系統(tǒng)測試按照設(shè)計(jì)的硬件平臺(tái)編寫軟件軟件測試通過選擇處理器設(shè)計(jì)硬件平臺(tái)否是遇到硬件問題修改硬件平臺(tái)否是嵌入式系統(tǒng)開發(fā)流程7用戶需求開發(fā)結(jié)束整個(gè)系統(tǒng)測試選擇合適的嵌入式操作系統(tǒng)在操作系統(tǒng)上開發(fā)應(yīng)用程序應(yīng)用程序測試通過選擇嵌入式處理器及硬件平臺(tái)否是需求分析作用使用戶和設(shè)計(jì)者有效交流、溝通,明確設(shè)計(jì)目標(biāo)設(shè)計(jì)者 設(shè)計(jì)什么?有哪些要求?用戶 將得到的系統(tǒng)是什么樣的?目標(biāo)形成需求文檔內(nèi)容功能性需求 做什么?輸入,輸出,功能,非功能性需求 其他屬

4、性可靠性,速度,功耗,成本,大小,重量,設(shè)計(jì)時(shí)間, 8評價(jià)標(biāo)準(zhǔn)正確性無二義性完整性可檢驗(yàn)性一致性可修改性可追蹤性9例:GPS移動(dòng)地圖的需求10設(shè)計(jì)規(guī)格說明規(guī)格說明與需求的比較需求的提煉,需求的精確描述是可用來創(chuàng)建體系結(jié)構(gòu)的關(guān)于系統(tǒng)的更詳盡、更精確、更一致的描述目標(biāo)形成規(guī)格說明書內(nèi)容包含系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)的足夠信息統(tǒng)一描述系統(tǒng)的硬件和軟件11例:GPS系統(tǒng)的規(guī)格說明 從GPS衛(wèi)星接收到的數(shù)據(jù)。地圖數(shù)據(jù)。 用戶界面。必須執(zhí)行的滿足客戶需求的操作。保持系統(tǒng)運(yùn)行所需的后備動(dòng)作,如操縱GPS接收機(jī)。 12系統(tǒng)結(jié)構(gòu)設(shè)計(jì)作用實(shí)現(xiàn)系統(tǒng)的藍(lán)圖,系統(tǒng)整體結(jié)構(gòu)的一個(gè)計(jì)劃目標(biāo)形成結(jié)構(gòu)設(shè)計(jì)文檔內(nèi)容系統(tǒng)分析系統(tǒng)軟硬件整體結(jié)

5、構(gòu)的設(shè)計(jì)軟硬件劃分標(biāo)準(zhǔn)構(gòu)件和自行設(shè)計(jì)構(gòu)件的確定13系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 系統(tǒng)如何實(shí)現(xiàn)設(shè)計(jì)說明書描述的功能 基于組件的系統(tǒng)結(jié)構(gòu) 軟件/硬件劃分 嵌入式系統(tǒng)中軟件和硬件協(xié)同完成系統(tǒng)的功能軟件硬件劃分通常由速度、靈活性以及開銷來決策14硬件單片機(jī), X116, PowerPC, ARM, MIPS,板級(jí)支持程序嵌入式操作系統(tǒng)應(yīng)用軟件監(jiān)控程序嵌入式系統(tǒng)硬件組成15例:GPS系統(tǒng)的硬件體系結(jié)構(gòu)16GPS接受信號(hào)數(shù)據(jù)庫顯示器搜索引擎轉(zhuǎn)換器用戶界面嵌入式系統(tǒng)軟件的特征 操作系統(tǒng)功能任務(wù)調(diào)度資源管理設(shè)備驅(qū)動(dòng)協(xié)議棧TCPIP應(yīng)用軟件框架軟件要求固態(tài)化存儲(chǔ) 軟件代碼高質(zhì)量、高可靠性 系統(tǒng)軟件(OS)的高實(shí)時(shí)性是基本要求

6、多任務(wù)操作系統(tǒng)是知識(shí)集成的平臺(tái)和走向工業(yè)標(biāo)準(zhǔn)化道路的基礎(chǔ)17例:GPS系統(tǒng)的軟、硬件18數(shù)據(jù)庫搜索轉(zhuǎn)換器位置用戶界面時(shí)鐘像素軟件顯示器幀緩沖器信號(hào)接收器/面板存儲(chǔ)器硬件標(biāo)準(zhǔn)構(gòu)件和自行設(shè)計(jì)構(gòu)件 構(gòu)件的實(shí)現(xiàn)選擇標(biāo)準(zhǔn)自行設(shè)計(jì)標(biāo)準(zhǔn)構(gòu)件 ?現(xiàn)成構(gòu)件已經(jīng)產(chǎn)品化形成規(guī)模生產(chǎn)標(biāo)準(zhǔn)構(gòu)件 自行設(shè)計(jì)構(gòu)件 用戶系統(tǒng)構(gòu)件包括了硬件構(gòu)件和軟件構(gòu)件構(gòu)件本身可以是層次性的,可以由子構(gòu)件組成19嵌入式處理器嵌入式處理器種類嵌入式微處理器(MPU):由通用計(jì)算機(jī)中的CPU演變而來 intel x116、IBM PowerPC、motorola 611K/coldfire、MIPS、ARM、Hitachi SuperH等系列嵌入式

7、微控制器(MCU):即單片機(jī),芯片內(nèi)部集成ROM/EPROM,總線,總線邏輯,定時(shí)器,I/O單元,串口,A/D,D/A,flash等intel 11051,P51XA,MCS系列,motorola 611300等嵌入式DSP處理器 Texas Instruments公司的TMS320系列和Motorola的DSP56000系列嵌入式片上系統(tǒng)(SoC)20典型的嵌入式系統(tǒng)組成21處理器MMUGPIOUSBLCDCANDMA以太網(wǎng)LCD/觸摸屏/鼠標(biāo)FlashSDRAMSRAM看門狗復(fù)位電路電源管理驅(qū)動(dòng)層OS應(yīng)用BSP/driver/HALLinux、u/COS、Wince文件系統(tǒng)/GUI/API

8、軟件硬件輸入輸出嵌入式系統(tǒng)手機(jī)的一般組成22嵌入式軟件簡單的嵌入式應(yīng)用若嵌入式系統(tǒng)的功能需求比較簡單,如電動(dòng)玩具、空調(diào)、冰箱等,則嵌入式系統(tǒng)軟件只需完成較簡單的功能,就不需要嵌入式操作系統(tǒng)的支持。如:基于11051的應(yīng)用兒童玩具、汽車系統(tǒng)等等復(fù)雜的嵌入式應(yīng)用若功能比較復(fù)雜,需要網(wǎng)絡(luò)功能、存儲(chǔ)器管理、進(jìn)程/線程管理等,則通過嵌入式操作系統(tǒng)的幫助,可以加快嵌入式系統(tǒng)軟件的開發(fā)進(jìn)度和可靠性23簡單的嵌入式系統(tǒng)軟件開發(fā)簡單的嵌入式應(yīng)用不需要使用操作系統(tǒng)當(dāng)系統(tǒng)上電后,main函數(shù)將被調(diào)用,首先初始化,然后進(jìn)入循環(huán)直到系統(tǒng)停電或者出現(xiàn)重大錯(cuò)誤。超級(jí)循環(huán)void main(void)/prepare for

9、 function XX_init();While(1) X();簡單的嵌入式應(yīng)用的開發(fā)過程在個(gè)人電腦上配置交叉開發(fā)環(huán)境、安裝仿真器,編寫程序,交叉編譯,在仿真器上運(yùn)行測試并修改直到軟件滿足需求;利用面包板開發(fā)和調(diào)試軟、硬件利用編程器將軟件燒到開發(fā)好的系統(tǒng)中進(jìn)行現(xiàn)場運(yùn)行測試24 嵌入式軟件系統(tǒng)的一般結(jié)構(gòu)25嵌入式軟件工作流程上電復(fù)位、板級(jí)初始化階段系統(tǒng)引導(dǎo),軟件加載系統(tǒng)初始化應(yīng)用初始化多任務(wù)應(yīng)用26嵌入式操作系統(tǒng)27嵌入式操作系統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)RTlinux及其他嵌入式實(shí)時(shí)LinuxuC/OS IIwind river systems公司的VxworksQNX software syste

10、ms公司的QNX。 pSOSOS/9VRTXeCOSThreadX嵌入式非實(shí)時(shí)操作系統(tǒng) Microsoft公司的windows CE、Embedded windows xp Palm公司的Palm OS symbian公司的EPOC 一些嵌入式linux系統(tǒng)28微軟的移動(dòng)平臺(tái)29更強(qiáng)的功能筆記本PC復(fù)雜的文檔編輯和讀寫桌面鍵盤輸入鍵盤和鼠標(biāo)輸入法完整的.NET framework 支持Windows XP/XPE平板電腦復(fù)雜的文檔編輯和讀寫桌面鍵盤輸入支持?jǐn)?shù)字墨水可以支持鍵盤,也可以把鍵盤拿走鍵盤、鼠標(biāo)、數(shù)字墨水和語音輸入完整的 .NET framework支持提供筆,數(shù)字墨水,手寫和語音識(shí)別

11、APIWindows CE小型個(gè)人產(chǎn)品單向網(wǎng)絡(luò)信息消費(fèi)Windows MobileSmartphone信息消費(fèi)基本數(shù)據(jù)瀏覽把PDA融入電話可以與Exchange交互.NET Compact Framework 移動(dòng)控件Pocket PC 信息消費(fèi)瀏覽和輸入數(shù)據(jù)把電話融入PDA可以與Office, Exchange和SQL Server交互.NET Compact Framework 移動(dòng)控件LINUX嵌入式操作系統(tǒng)Linux是一個(gè)類似Unix(Unix-like)的操作系統(tǒng),在1991年發(fā)行了它的第一個(gè)版本在不同的語境下,“Linux”具有不同的內(nèi)涵Linux內(nèi)核、Linux系統(tǒng)或Linux開

12、發(fā)套件等術(shù)語。嚴(yán)格來說,Linux指的是Linux Torvalds維護(hù)的(及通過主要和鏡像網(wǎng)站發(fā)布的)內(nèi)核。GNU/LinuxGNU/Linux的擁護(hù)者們認(rèn)為,Linux僅僅是指Linux內(nèi)核,而整個(gè)Linux系統(tǒng)的大部分都建立在GNU軟件之上Linux是免費(fèi)的、源代碼開放的、符合POSIX(Portable Operating System Interface Standard)標(biāo)準(zhǔn)規(guī)范的操作系統(tǒng)30LINUX發(fā)展歷史1991年11月,芬蘭赫爾辛基大學(xué)的學(xué)生 Linus Torvalds寫了個(gè)小程序,取名為Linux,放在互聯(lián)網(wǎng)上。他表達(dá)了一個(gè)愿望,希望借此搞出一個(gè)操作系統(tǒng)的“內(nèi)核”來,這

13、完全是一個(gè)偶然事件1993,在一批高水平黑客的參與下,誕生了Linux 1.0 版 1994年,Linux 的第一個(gè)商業(yè)發(fā)行版 Slackware 問世1996年,美國國家標(biāo)準(zhǔn)技術(shù)局的計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)室確認(rèn) Linux 版本 1.2.13(由 Open Linux 公司打包)符合 POSIX 標(biāo)準(zhǔn)2001年,Linux2.4版內(nèi)核發(fā)布 2003年,Linux2.6版內(nèi)核發(fā)布Linux內(nèi)核版本號(hào)由3位數(shù)字組成31r.x.y第1位數(shù)字r為主版本號(hào) 第2位數(shù)字x為說明版本類型的次版本號(hào),如果x為偶數(shù),則表示為產(chǎn)品化版本,為奇數(shù)時(shí)表示為實(shí)驗(yàn)版本 第3位數(shù)字y為修改號(hào),表示錯(cuò)誤修補(bǔ)的次數(shù) 幾種流行的Lin

14、ux發(fā)行版本32嵌入式LINUX操作系統(tǒng)什么是嵌入式Linux嵌入式Linux內(nèi)核為特殊的硬件配置、或?yàn)榱酥С痔貏e的應(yīng)用而經(jīng)過特別的裁剪的修改過的Linux內(nèi)核通常具有不同于工作站與服務(wù)器的內(nèi)核配置嵌入式Linux系統(tǒng)基于Linux內(nèi)核的嵌入式系統(tǒng)嵌入式Linux發(fā)行套件開發(fā)嵌入式Linux系統(tǒng)的平臺(tái)各種為了在嵌入式系統(tǒng)中使用而剪裁過的應(yīng)用軟件基于Linux的嵌入式操作系統(tǒng)uCLinuxARMLinuxRT-Linux/RTAIEmbedixBlue Cat LinuxHard Hat Linux等等33嵌入式Linux的典型應(yīng)用34嵌入式LINUX的移植Bootloader移植引導(dǎo)加載程序b

15、ootloader是系統(tǒng)加電后運(yùn)行的第一段代碼,功能類似pc機(jī)的BIOS位于地址0 x00000000實(shí)現(xiàn)初始化硬件設(shè)備,建立內(nèi)存空間映射圖為調(diào)用操作系統(tǒng)內(nèi)核和用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境Bootloader的啟動(dòng)可分為兩個(gè)階段stage1用匯編編寫,依賴于體系結(jié)構(gòu),完成CPU及存儲(chǔ)設(shè)備相關(guān)的初始化如初始化CPU運(yùn)行的時(shí)鐘頻率,初始化Flash和內(nèi)存的數(shù)據(jù)寬度、讀/寫訪問周期和刷新周期,初始化中斷系統(tǒng),初始化系統(tǒng)中各種片內(nèi)片外設(shè)備和I/O口,初始化系統(tǒng)各種運(yùn)行模式下的寄存器和堆棧,跳轉(zhuǎn)到stage2 的C 程序入口點(diǎn)等stage2用C語言編寫,實(shí)現(xiàn)對板級(jí)驅(qū)動(dòng)的支持如初始化要用到的內(nèi)核映像和文件

16、系統(tǒng)映像,并將PC指針指向操作系統(tǒng)內(nèi)核的入口處,為操作系統(tǒng)的運(yùn)行作好準(zhǔn)備 35Bootloader的stage1的初始化過程36Bootloader的stage1設(shè)計(jì)1.在RAM中建立一個(gè)二級(jí)中斷向量表,起始地址為0 x33ffff00,加快中斷響應(yīng)#define _ISR_STARTADDRESS (SDRAM_END-0 x100)/0 x33ffff00define pISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+0 x0)/x33ffff00#define pISR_UNDEF(*(unsigned *)(_ISR_STARTADDRESS+0

17、x4)/ x33ffff04Flash異常向量表SDRAM異常向量表0 x0000Reset0 x33ffff00HandleResetReset0 x0004Undef0 x33ffff04HandleUndefUndefined0 x00011SWI0 x33ffff011HandleSWISWI0 x000cPrefetch abort0 x33ffff0cHandlePrefetch abortPabort0 x0010Data abort0 x33ffff10HandleData abortDabort0 x0014Reserved0 x33ffff14HandleReservedR

18、eserved0 x00111IRQ0 x33ffff111HandleIRQIRQ0 x001cFIQ0 x33ffff1cHandleFIQFIQ37Bootloader的stage1設(shè)計(jì)2.拷貝Stage2至RAM的最頂部1MB開始的空間,RAM的起始地址為0 x30000000/*計(jì)算stage2在flash中的位置,假設(shè)該映像不超過64K,自行可修改該值*/ Adr r0,_start Add r2,r0,#(64*1024) Add r0,r0,#0 x1000 Ldr r1 ,BLOB_START/*開始復(fù)制stage2到RAM,R0=源起始地址,R1=目的地址,r2源結(jié)束地址*

19、/ copy_loop: ldmia r0!,r3-r10 stmia r1!, r3-r10 cmp r0,r2 ble copy_loop ldr r0,BLOB_START /復(fù)制完跳轉(zhuǎn)到RAM執(zhí)行由此入口進(jìn)入stage2 38Bootloader的stage1設(shè)計(jì)3.設(shè)置堆棧指針系統(tǒng)堆棧初始化取決于用戶使用了哪些中斷,以及系統(tǒng)需要處理哪些錯(cuò)誤類型。一般情況下,管理模式堆棧必須設(shè)置,如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置,下面以IRQ堆棧為例進(jìn)行設(shè)置。IRQMode 堆棧 orr r1,r0,#IRQMODE|NOINT msr cpsr_cxsf,r1 ; IRQMode ldr

20、 sp,IRQStack 39Bootloader的stage2設(shè)計(jì)1.可執(zhí)行映像stage2的入口編譯和鏈接Bootloader的c程序時(shí)不能使用glibc庫支持的函數(shù),所以直接把main()函數(shù)的起始地址作為第二階段的入口點(diǎn)用匯編編寫一段trampoline(彈簧床)小程序用CPU跳轉(zhuǎn)指令跳到main()函數(shù)去執(zhí)行,當(dāng)mian()函數(shù)返回時(shí)會(huì)再次回到trampoline程序,具體匯編代碼如下: get read to call c functionsldr sp DW_STACK_START setup stack pointermov fp ,#0 no previous frame,s

21、o fp=0mov a2, #0 set argv to NULL bl main call mainmov pc,#FLASH_BASE otherwise,reboot如果正常不出錯(cuò)就不會(huì)再回到trampoline程序,否則就會(huì)回到最后一條語句重起系統(tǒng)40Bootloader的stage2設(shè)計(jì)2.內(nèi)存映射若配置的SDRSAM大小為64M,則物理地址范圍是0 x3000 00000 x33FF FFFF,由于1個(gè)Section的大小是1M,所以該物理空間可以被分成64個(gè)物理段41虛擬地址到物理地址的映射代碼 void mem_mapping_linear(void) unsigned lon

22、g descriptor_index, section_base, sdram_base, sdram_size;sdram_base=0 x30000000;sdram_size=0 x 4000000;for(section_base=sdram_base,descriptor_index=section_base20; section_base20)|MMU_OTHER_SECDESC; 42Bootloader的stage2設(shè)計(jì)3裝載內(nèi)核映像和根文件系統(tǒng)映像像ARM這樣的嵌入式CPU通常都是在統(tǒng)一的內(nèi)存地址空間中尋址 Flash 等固態(tài)存儲(chǔ)設(shè)備的,因此從Flash上讀取數(shù)據(jù)與從 RAM

23、單元中讀取數(shù)據(jù)用一個(gè)簡單的循環(huán)就可以完成從Flash 設(shè)備上拷貝映像的工作: 其中count為根文件系統(tǒng)映像的大小或內(nèi)核映像的大小。While(count)*dest+=*src+;/src為fash中的地址,dest為RAM中的地址count-=4; 43Bootloader的stage2設(shè)計(jì)4置內(nèi)核的啟動(dòng)參數(shù)內(nèi)核啟動(dòng)可以從Nand Flash或Nor Flash中啟動(dòng)運(yùn)行l(wèi)inux,需要修改啟動(dòng)命令如下:#ifdef CONFIG_S3C2410_NAND_BOOTChar Linux_cmd=“noinit root=/dev/bon/2 init =/Linuxrc console=t

24、ty0 console=ttys0”;#elseCharLinux_cmd=“CharLinux_cmd=”noinit root=/dev/bon/3 init =/Linuxrc console=tty0 console=ttys0”; 其中noinitrd不使用ramdisk。root根文件系統(tǒng)所在MTD分區(qū)。Init內(nèi)核運(yùn)行入口命令文件。console 內(nèi)核信息控制臺(tái),ttys0表示串行口0。tty0表示虛擬終端 LCD啟動(dòng)參數(shù)一般都包括root、init和console44嵌入式LINUX內(nèi)核移植內(nèi)核啟動(dòng)方式非壓縮,非XIP (eXecute In Place):內(nèi)核以非壓縮方式存放在Flash中,啟動(dòng)時(shí)由Bootloader加載到內(nèi)存后運(yùn)行 非壓縮,XIP:內(nèi)核以非壓縮格式存放在ROM/Flash中,不需要加載到內(nèi)存,由Bootloader直接跳轉(zhuǎn)到其存放地址執(zhí)行RAM自解壓:內(nèi)核以壓縮格式存放于ROM/Fla

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論