![chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計_第1頁](http://file4.renrendoc.com/view/769fd9c68a16872c5cd16025a065188c/769fd9c68a16872c5cd16025a065188c1.gif)
![chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計_第2頁](http://file4.renrendoc.com/view/769fd9c68a16872c5cd16025a065188c/769fd9c68a16872c5cd16025a065188c2.gif)
![chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計_第3頁](http://file4.renrendoc.com/view/769fd9c68a16872c5cd16025a065188c/769fd9c68a16872c5cd16025a065188c3.gif)
![chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計_第4頁](http://file4.renrendoc.com/view/769fd9c68a16872c5cd16025a065188c/769fd9c68a16872c5cd16025a065188c4.gif)
![chap11-基于arm微處理器的軟件系統(tǒng)設(shè)計_第5頁](http://file4.renrendoc.com/view/769fd9c68a16872c5cd16025a065188c/769fd9c68a16872c5cd16025a065188c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、微處理器系統(tǒng)結(jié)構(gòu)及嵌入式系統(tǒng)設(shè)計(綜合性強,偏應(yīng)用的一門課程)電子工程學(xué)院陳 客 松1第11章 基于ARM微處理器的軟件系統(tǒng)設(shè)計11.1 嵌入式系統(tǒng)簡介嵌入式系統(tǒng):嵌入到各種控制應(yīng)用系統(tǒng)、各類電子系統(tǒng)和電子產(chǎn)品中,實現(xiàn)嵌入式應(yīng)用的計算機系統(tǒng)嵌入式系統(tǒng)是以應(yīng)用為核心,以計算機技術(shù)為基礎(chǔ),軟硬件可剪裁,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機系統(tǒng)Embedded system is devices used to control, monitor, or assist the operation of equipment, machinery or plantsIEEE
2、嵌入式系統(tǒng)的主要特征面向控制對象,對多種不同的控制對象能靈活地進行實時控制嵌入到應(yīng)用系統(tǒng)中在工業(yè)現(xiàn)場環(huán)境中可靠地運行2嵌入式系統(tǒng)的主要特點軟件硬件協(xié)同并行開發(fā)多種多樣的微處理器實時操作系統(tǒng)的多樣性 (RTOS)與臺式機相比,可利用系統(tǒng)資源有限應(yīng)用支持很少要求特殊的開發(fā)工具代碼固化運行調(diào)試手段有限軟件硬件的魯棒性(健壯性,Robust)嵌入式系統(tǒng)的體積和功耗 311.2 設(shè)計方法及設(shè)計流程嵌入式系統(tǒng)要解決的主要問題需要用什么樣的系統(tǒng)結(jié)構(gòu)來實現(xiàn)? 如何滿足時限要求,如何處理多項功能在時間上的協(xié)調(diào)一致關(guān)系?如何保證系統(tǒng)可靠地工作?如何滿足系統(tǒng)接口要求,嵌入式應(yīng)用直接和系統(tǒng)接口輸入輸出信息?如何降低系
3、統(tǒng)的功耗? 如何使系統(tǒng)可升級?4設(shè)計流程自頂向下或自底向上設(shè)計5需求設(shè)計說明體系結(jié)構(gòu)構(gòu)件設(shè)計系統(tǒng)集成自頂向下設(shè)計自底向上設(shè)計單片機系統(tǒng)的開發(fā)流程6用戶需求開發(fā)結(jié)束整個系統(tǒng)測試按照設(shè)計的硬件平臺編寫軟件軟件測試通過選擇處理器設(shè)計硬件平臺否是遇到硬件問題修改硬件平臺否是嵌入式系統(tǒng)開發(fā)流程7用戶需求開發(fā)結(jié)束整個系統(tǒng)測試選擇合適的嵌入式操作系統(tǒng)在操作系統(tǒng)上開發(fā)應(yīng)用程序應(yīng)用程序測試通過選擇嵌入式處理器及硬件平臺否是需求分析作用使用戶和設(shè)計者有效交流、溝通,明確設(shè)計目標(biāo)設(shè)計者 設(shè)計什么?有哪些要求?用戶 將得到的系統(tǒng)是什么樣的?目標(biāo)形成需求文檔內(nèi)容功能性需求 做什么?輸入,輸出,功能,非功能性需求 其他屬
4、性可靠性,速度,功耗,成本,大小,重量,設(shè)計時間, 8評價標(biāo)準(zhǔn)正確性無二義性完整性可檢驗性一致性可修改性可追蹤性9例:GPS移動地圖的需求10設(shè)計規(guī)格說明規(guī)格說明與需求的比較需求的提煉,需求的精確描述是可用來創(chuàng)建體系結(jié)構(gòu)的關(guān)于系統(tǒng)的更詳盡、更精確、更一致的描述目標(biāo)形成規(guī)格說明書內(nèi)容包含系統(tǒng)體系結(jié)構(gòu)設(shè)計的足夠信息統(tǒng)一描述系統(tǒng)的硬件和軟件11例:GPS系統(tǒng)的規(guī)格說明 從GPS衛(wèi)星接收到的數(shù)據(jù)。地圖數(shù)據(jù)。 用戶界面。必須執(zhí)行的滿足客戶需求的操作。保持系統(tǒng)運行所需的后備動作,如操縱GPS接收機。 12系統(tǒng)結(jié)構(gòu)設(shè)計作用實現(xiàn)系統(tǒng)的藍圖,系統(tǒng)整體結(jié)構(gòu)的一個計劃目標(biāo)形成結(jié)構(gòu)設(shè)計文檔內(nèi)容系統(tǒng)分析系統(tǒng)軟硬件整體結(jié)
5、構(gòu)的設(shè)計軟硬件劃分標(biāo)準(zhǔn)構(gòu)件和自行設(shè)計構(gòu)件的確定13系統(tǒng)結(jié)構(gòu)設(shè)計 系統(tǒng)如何實現(xiàn)設(shè)計說明書描述的功能 基于組件的系統(tǒng)結(jié)構(gòu) 軟件/硬件劃分 嵌入式系統(tǒng)中軟件和硬件協(xié)同完成系統(tǒng)的功能軟件硬件劃分通常由速度、靈活性以及開銷來決策14硬件單片機, X116, PowerPC, ARM, MIPS,板級支持程序嵌入式操作系統(tǒng)應(yīng)用軟件監(jiān)控程序嵌入式系統(tǒng)硬件組成15例:GPS系統(tǒng)的硬件體系結(jié)構(gòu)16GPS接受信號數(shù)據(jù)庫顯示器搜索引擎轉(zhuǎn)換器用戶界面嵌入式系統(tǒng)軟件的特征 操作系統(tǒng)功能任務(wù)調(diào)度資源管理設(shè)備驅(qū)動協(xié)議棧TCPIP應(yīng)用軟件框架軟件要求固態(tài)化存儲 軟件代碼高質(zhì)量、高可靠性 系統(tǒng)軟件(OS)的高實時性是基本要求
6、多任務(wù)操作系統(tǒng)是知識集成的平臺和走向工業(yè)標(biāo)準(zhǔn)化道路的基礎(chǔ)17例:GPS系統(tǒng)的軟、硬件18數(shù)據(jù)庫搜索轉(zhuǎn)換器位置用戶界面時鐘像素軟件顯示器幀緩沖器信號接收器/面板存儲器硬件標(biāo)準(zhǔn)構(gòu)件和自行設(shè)計構(gòu)件 構(gòu)件的實現(xiàn)選擇標(biāo)準(zhǔn)自行設(shè)計標(biāo)準(zhǔn)構(gòu)件 ?現(xiàn)成構(gòu)件已經(jīng)產(chǎn)品化形成規(guī)模生產(chǎn)標(biāo)準(zhǔn)構(gòu)件 自行設(shè)計構(gòu)件 用戶系統(tǒng)構(gòu)件包括了硬件構(gòu)件和軟件構(gòu)件構(gòu)件本身可以是層次性的,可以由子構(gòu)件組成19嵌入式處理器嵌入式處理器種類嵌入式微處理器(MPU):由通用計算機中的CPU演變而來 intel x116、IBM PowerPC、motorola 611K/coldfire、MIPS、ARM、Hitachi SuperH等系列嵌入式
7、微控制器(MCU):即單片機,芯片內(nèi)部集成ROM/EPROM,總線,總線邏輯,定時器,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ū)動層OS應(yīng)用BSP/driver/HALLinux、u/COS、Wince文件系統(tǒng)/GUI/API
8、軟件硬件輸入輸出嵌入式系統(tǒng)手機的一般組成22嵌入式軟件簡單的嵌入式應(yīng)用若嵌入式系統(tǒng)的功能需求比較簡單,如電動玩具、空調(diào)、冰箱等,則嵌入式系統(tǒng)軟件只需完成較簡單的功能,就不需要嵌入式操作系統(tǒng)的支持。如:基于11051的應(yīng)用兒童玩具、汽車系統(tǒng)等等復(fù)雜的嵌入式應(yīng)用若功能比較復(fù)雜,需要網(wǎng)絡(luò)功能、存儲器管理、進程/線程管理等,則通過嵌入式操作系統(tǒng)的幫助,可以加快嵌入式系統(tǒng)軟件的開發(fā)進度和可靠性23簡單的嵌入式系統(tǒng)軟件開發(fā)簡單的嵌入式應(yīng)用不需要使用操作系統(tǒng)當(dāng)系統(tǒng)上電后,main函數(shù)將被調(diào)用,首先初始化,然后進入循環(huán)直到系統(tǒng)停電或者出現(xiàn)重大錯誤。超級循環(huán)void main(void)/prepare for
9、 function XX_init();While(1) X();簡單的嵌入式應(yīng)用的開發(fā)過程在個人電腦上配置交叉開發(fā)環(huán)境、安裝仿真器,編寫程序,交叉編譯,在仿真器上運行測試并修改直到軟件滿足需求;利用面包板開發(fā)和調(diào)試軟、硬件利用編程器將軟件燒到開發(fā)好的系統(tǒng)中進行現(xiàn)場運行測試24 嵌入式軟件系統(tǒng)的一般結(jié)構(gòu)25嵌入式軟件工作流程上電復(fù)位、板級初始化階段系統(tǒng)引導(dǎo),軟件加載系統(tǒng)初始化應(yīng)用初始化多任務(wù)應(yīng)用26嵌入式操作系統(tǒng)27嵌入式操作系統(tǒng)嵌入式實時操作系統(tǒng)RTlinux及其他嵌入式實時LinuxuC/OS IIwind river systems公司的VxworksQNX software syste
10、ms公司的QNX。 pSOSOS/9VRTXeCOSThreadX嵌入式非實時操作系統(tǒng) Microsoft公司的windows CE、Embedded windows xp Palm公司的Palm OS symbian公司的EPOC 一些嵌入式linux系統(tǒng)28微軟的移動平臺29更強的功能筆記本PC復(fù)雜的文檔編輯和讀寫桌面鍵盤輸入鍵盤和鼠標(biāo)輸入法完整的.NET framework 支持Windows XP/XPE平板電腦復(fù)雜的文檔編輯和讀寫桌面鍵盤輸入支持?jǐn)?shù)字墨水可以支持鍵盤,也可以把鍵盤拿走鍵盤、鼠標(biāo)、數(shù)字墨水和語音輸入完整的 .NET framework支持提供筆,數(shù)字墨水,手寫和語音識別
11、APIWindows CE小型個人產(chǎn)品單向網(wǎng)絡(luò)信息消費Windows MobileSmartphone信息消費基本數(shù)據(jù)瀏覽把PDA融入電話可以與Exchange交互.NET Compact Framework 移動控件Pocket PC 信息消費瀏覽和輸入數(shù)據(jù)把電話融入PDA可以與Office, Exchange和SQL Server交互.NET Compact Framework 移動控件LINUX嵌入式操作系統(tǒng)Linux是一個類似Unix(Unix-like)的操作系統(tǒng),在1991年發(fā)行了它的第一個版本在不同的語境下,“Linux”具有不同的內(nèi)涵Linux內(nèi)核、Linux系統(tǒng)或Linux開
12、發(fā)套件等術(shù)語。嚴(yán)格來說,Linux指的是Linux Torvalds維護的(及通過主要和鏡像網(wǎng)站發(fā)布的)內(nèi)核。GNU/LinuxGNU/Linux的擁護者們認(rèn)為,Linux僅僅是指Linux內(nèi)核,而整個Linux系統(tǒng)的大部分都建立在GNU軟件之上Linux是免費的、源代碼開放的、符合POSIX(Portable Operating System Interface Standard)標(biāo)準(zhǔn)規(guī)范的操作系統(tǒng)30LINUX發(fā)展歷史1991年11月,芬蘭赫爾辛基大學(xué)的學(xué)生 Linus Torvalds寫了個小程序,取名為Linux,放在互聯(lián)網(wǎng)上。他表達了一個愿望,希望借此搞出一個操作系統(tǒng)的“內(nèi)核”來,這
13、完全是一個偶然事件1993,在一批高水平黑客的參與下,誕生了Linux 1.0 版 1994年,Linux 的第一個商業(yè)發(fā)行版 Slackware 問世1996年,美國國家標(biāo)準(zhǔn)技術(shù)局的計算機系統(tǒng)實驗室確認(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)核版本號由3位數(shù)字組成31r.x.y第1位數(shù)字r為主版本號 第2位數(shù)字x為說明版本類型的次版本號,如果x為偶數(shù),則表示為產(chǎn)品化版本,為奇數(shù)時表示為實驗版本 第3位數(shù)字y為修改號,表示錯誤修補的次數(shù) 幾種流行的Lin
14、ux發(fā)行版本32嵌入式LINUX操作系統(tǒng)什么是嵌入式Linux嵌入式Linux內(nèi)核為特殊的硬件配置、或為了支持特別的應(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ǒ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)加電后運行的第一段代碼,功能類似pc機的BIOS位于地址0 x00000000實現(xiàn)初始化硬件設(shè)備,建立內(nèi)存空間映射圖為調(diào)用操作系統(tǒng)內(nèi)核和用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境Bootloader的啟動可分為兩個階段stage1用匯編編寫,依賴于體系結(jié)構(gòu),完成CPU及存儲設(shè)備相關(guān)的初始化如初始化CPU運行的時鐘頻率,初始化Flash和內(nèi)存的數(shù)據(jù)寬度、讀/寫訪問周期和刷新周期,初始化中斷系統(tǒng),初始化系統(tǒng)中各種片內(nèi)片外設(shè)備和I/O口,初始化系統(tǒng)各種運行模式下的寄存器和堆棧,跳轉(zhuǎn)到stage2 的C 程序入口點等stage2用C語言編寫,實現(xiàn)對板級驅(qū)動的支持如初始化要用到的內(nèi)核映像和文件
16、系統(tǒng)映像,并將PC指針指向操作系統(tǒng)內(nèi)核的入口處,為操作系統(tǒng)的運行作好準(zhǔn)備 35Bootloader的stage1的初始化過程36Bootloader的stage1設(shè)計1.在RAM中建立一個二級中斷向量表,起始地址為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è)計2.拷貝Stage2至RAM的最頂部1MB開始的空間,RAM的起始地址為0 x30000000/*計算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í)行由此入口進入stage2 38Bootloader的stage1設(shè)計3.設(shè)置堆棧指針系統(tǒng)堆棧初始化取決于用戶使用了哪些中斷,以及系統(tǒng)需要處理哪些錯誤類型。一般情況下,管理模式堆棧必須設(shè)置,如果使用了IRQ中斷,則IRQ堆棧也必須設(shè)置,下面以IRQ堆棧為例進行設(shè)置。IRQMode 堆棧 orr r1,r0,#IRQMODE|NOINT msr cpsr_cxsf,r1 ; IRQMode ldr
20、 sp,IRQStack 39Bootloader的stage2設(shè)計1.可執(zhí)行映像stage2的入口編譯和鏈接Bootloader的c程序時不能使用glibc庫支持的函數(shù),所以直接把main()函數(shù)的起始地址作為第二階段的入口點用匯編編寫一段trampoline(彈簧床)小程序用CPU跳轉(zhuǎn)指令跳到main()函數(shù)去執(zhí)行,當(dāng)mian()函數(shù)返回時會再次回到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如果正常不出錯就不會再回到trampoline程序,否則就會回到最后一條語句重起系統(tǒng)40Bootloader的stage2設(shè)計2.內(nèi)存映射若配置的SDRSAM大小為64M,則物理地址范圍是0 x3000 00000 x33FF FFFF,由于1個Section的大小是1M,所以該物理空間可以被分成64個物理段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è)計3裝載內(nèi)核映像和根文件系統(tǒng)映像像ARM這樣的嵌入式CPU通常都是在統(tǒng)一的內(nèi)存地址空間中尋址 Flash 等固態(tài)存儲設(shè)備的,因此從Flash上讀取數(shù)據(jù)與從 RAM
23、單元中讀取數(shù)據(jù)用一個簡單的循環(huán)就可以完成從Flash 設(shè)備上拷貝映像的工作: 其中count為根文件系統(tǒng)映像的大小或內(nèi)核映像的大小。While(count)*dest+=*src+;/src為fash中的地址,dest為RAM中的地址count-=4; 43Bootloader的stage2設(shè)計4置內(nèi)核的啟動參數(shù)內(nèi)核啟動可以從Nand Flash或Nor Flash中啟動運行l(wèi)inux,需要修改啟動命令如下:#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)核運行入口命令文件。console 內(nèi)核信息控制臺,ttys0表示串行口0。tty0表示虛擬終端 LCD啟動參數(shù)一般都包括root、init和console44嵌入式LINUX內(nèi)核移植內(nèi)核啟動方式非壓縮,非XIP (eXecute In Place):內(nèi)核以非壓縮方式存放在Flash中,啟動時由Bootloader加載到內(nèi)存后運行 非壓縮,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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司水暖維修合同范本
- 2025年度智能城市建設(shè)合作項目投標(biāo)協(xié)議范本
- 健身會所轉(zhuǎn)讓合同范本
- 2025年立體倉庫設(shè)備,相關(guān)物料搬運設(shè)備項目可行性分析報告
- 2025年度酒吧市場推廣與廣告投放合同
- 2025年度大型工業(yè)園區(qū)綜合供能合同范本(含節(jié)水節(jié)電)
- 2025年度門窗行業(yè)市場準(zhǔn)入許可合同
- 中國海洋生物酶行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報告
- 2025年度智慧旅游項目合作協(xié)議管理規(guī)定
- 退生活部申請書
- 蔬菜采購項目投標(biāo)書
- 肩周炎康復(fù)護理
- 2022年安徽管子文化旅游集團有限公司招聘筆試試題及答案解析
- SAPPM設(shè)備管理解決方案
- Q-HN-1-0000.08.004《風(fēng)力發(fā)電場電能質(zhì)量監(jiān)督技術(shù)標(biāo)準(zhǔn)》
- 多指畸形-課件
- 5G NSA站點開通指導(dǎo)書(臨時IP開站)
- 宗教與社會課件
- 3人-機-環(huán)-管理本質(zhì)安全化措施課件
- 生殖醫(yī)學(xué)中心建設(shè)驗收標(biāo)準(zhǔn)分析-講座課件PPT
- DB44∕T 1811-2016 石灰?guī)r山地造林技術(shù)規(guī)程
評論
0/150
提交評論