




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0實(shí)驗(yàn)?zāi)夸泴?shí)驗(yàn)一、熟悉 realview 開發(fā)環(huán)境21.1 RealView MDK 軟件開發(fā)環(huán)境簡(jiǎn)介21.1.11.1.21.2RealView MDK 的突出特性2模塊介紹2RealView 使用51.2.1 創(chuàng)建一個(gè)工程51.2.1.1 選擇工具集51.2.1.2 創(chuàng)建工程文件71.2.1.3 選擇設(shè)備71.2.2 編譯、工程81.2.2.11.2.2.21.2.2.3設(shè)置目標(biāo)硬件的工具選項(xiàng)8增加連接文件9編譯.91.2.3 程序調(diào)試101.2.4 工程選項(xiàng)頁(yè)概述11實(shí)驗(yàn)二、ARM 指令集122.1 ARM 匯編指令 1122.2 ARM 匯編指令 22
2、02.3 ARM 匯編指令 321實(shí)驗(yàn)三233.1 LDR/STM 指令尋址實(shí)驗(yàn)233.2 ARM 匯編子函數(shù)調(diào)用253.3 Thumb 匯編指令練習(xí)253.4 利用 ARM 匯編實(shí)現(xiàn)開發(fā)板 LED 燈.25實(shí)驗(yàn)四264.1 簡(jiǎn)單C 語(yǔ)言程序?qū)嶒?yàn)264.2 匯編與C 語(yǔ)言的相用實(shí)驗(yàn)264.34.44.5C 語(yǔ)言中內(nèi)聯(lián)匯編程序?qū)嶒?yàn)27C 語(yǔ)言中嵌入型匯編程序?qū)嶒?yàn)27SWI 軟中斷實(shí)驗(yàn)284.6 綜合編程實(shí)驗(yàn)28實(shí)驗(yàn)五、I/O 及串口通信編程實(shí)驗(yàn)29實(shí)驗(yàn)六、中斷實(shí)驗(yàn)32實(shí)驗(yàn)七、實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)32實(shí)驗(yàn)八、看門狗實(shí)驗(yàn)33實(shí)驗(yàn)九、PWM 接口實(shí)驗(yàn)33實(shí)驗(yàn)十、A/D 轉(zhuǎn)換實(shí)驗(yàn)33實(shí)驗(yàn)十一、I2C 串行通信實(shí)
3、驗(yàn)341ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0實(shí)驗(yàn)一、熟悉 realview 開發(fā)環(huán)境1.1 RealView MDK 軟件開發(fā)環(huán)境簡(jiǎn)介RealView MDK 全稱 RealView MDK 中國(guó)版開發(fā)套件,源自德國(guó) Keil 公司,被全球超過10 萬(wàn)的開發(fā)工程師驗(yàn)證和使用,是 ARM 公司目前最新推出的對(duì)各種處理器的軟件開發(fā)工具。RealView MDK 集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括 Vision3 集成開發(fā)環(huán)境與RealView 編譯器,支持 ARM7、ARM9 和最新的 Cortex-M3 核處理器,自動(dòng)配置啟動(dòng)代碼,集成 Flash 燒寫模塊,強(qiáng)大的 Simulation 設(shè)備模擬,性
4、能分析等功能,與 ARM 之前的工具包ADS 等相比,RealView 編譯器的最新版本可將性能超過 20。1.1.1 RealView MDK 的突出特性菜鳥的飛毯?jiǎn)?dòng)代碼生成向?qū)?,自?dòng)引導(dǎo),一日千里 軟件模擬器,完全脫離硬件的軟件開發(fā)過程性能分析器,看得更遠(yuǎn)、看得更細(xì)、看得更清Cortex-M3 支持 RealView 編譯器,代碼更小,性能更高配備高手的無(wú)劍勝有劍的望遠(yuǎn)鏡未來(lái)戰(zhàn)士的激光劍業(yè)界最優(yōu)秀的編譯器ULINK2器無(wú)需安裝驅(qū)動(dòng) 輕松實(shí)現(xiàn) Flash 燒寫 國(guó)際品質(zhì),本土價(jià)格Flash 編程模塊絕對(duì)的高性價(jià)比1.1.2模塊介紹Vision3 IDEVision IDE 在全球擁有龐大的
5、用戶群,超過 10 萬(wàn)開發(fā)工程師在使用 Keil 開發(fā)工具。不管以前是用 8 位、16 位 MCU,還是現(xiàn)在改用 ARM 32 位處理器,Vision IDE 簡(jiǎn)單易用,能立馬上手。2Vision3 IDE啟動(dòng)代碼生成向?qū)гO(shè)備模擬器性能分析器RealView 編譯器MircoLibRL-ARM(可選)ULINK2器ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 1.1 Vision3 IDEVision3 IDE 主要特性:l功能強(qiáng)大的源代碼編輯器;l可根據(jù)開發(fā)工具配置的設(shè)備數(shù)據(jù)庫(kù);l用于創(chuàng)建和維護(hù)工程的工程管理器;l集匯編、編譯和過程于一體的編譯工具;l用于設(shè)置開發(fā)工具配置的框;l真正集成高速 CP
6、U 及片上外設(shè)模擬器的源碼級(jí)調(diào)試器;l高級(jí) GDI 接口,可用于目標(biāo)硬件的軟件調(diào)試和 ULINK2器的連接;l用于應(yīng)用程序到 Flash ROM 中的 Flash 編程器;l完善的開發(fā)工具手冊(cè)、設(shè)備和用戶向?qū)?。啟?dòng)代碼配置向?qū)ision3 IDE 的啟動(dòng)代碼配置向?qū)⒏鱾€(gè)所需配置的功能模塊以框方式展示,附加的提示說(shuō)明,幫助你快速輕松的做出選擇,生成完善的啟動(dòng)代碼,免除手工寫幾百行匯編程序的痛苦。3ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 1.2配置啟動(dòng)代碼Vision3 設(shè)備模擬器Vision3 設(shè)備模擬器的功能強(qiáng)大,能模擬整個(gè) MCU 的行為。使你在沒有硬件或?qū)δ繕?biāo)MCU 沒有更深的了解的情
7、況下,仍然可以立即開始開發(fā)軟件。高效指令集中斷片內(nèi)設(shè)備ADC,DAC, EBI,Timers UART,CAN,I2C外部信號(hào)和 I/O圖 1.3 設(shè)備模擬器4ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0性能分析器性能分析器可給所有的 MCU 實(shí)現(xiàn)如程序運(yùn)行時(shí)間統(tǒng)計(jì)、被調(diào)用次數(shù)統(tǒng)計(jì)、代碼覆蓋率統(tǒng)計(jì)等高端功能,而這些功能對(duì)于快速死區(qū)代碼,幫助優(yōu)化分析等起了關(guān)鍵的作用。圖 1.4 性能分析器RealView 編譯器(RVCT)RealView MDK 集成的 RealView 編譯器(跟 RVDS 使用一樣的編譯器),是業(yè)界最優(yōu)秀的編譯器,它能使代碼容量更小、執(zhí)行效率更高;使應(yīng)用程序運(yùn)行更快、系統(tǒng)成本更低
8、。MicroLib為進(jìn)一步改進(jìn)基于 ARM 處理器的應(yīng)用代碼密度,RealView MDK 采用了新型 microlib C庫(kù)(用于 C 的 ISO 標(biāo)準(zhǔn)運(yùn)行的一個(gè)子集),并將其代碼鏡像降低最小以滿足微器應(yīng)用的需求。Microlib C 庫(kù)可將運(yùn)行代碼大大降低。RealView 實(shí)RL-ARM(可選)ULINK2器1.2RealView 使用1.2.1 創(chuàng)建一個(gè)工程Vision 是一個(gè)標(biāo)準(zhǔn)的窗口應(yīng)用程序,可以點(diǎn)擊程序按鈕開始運(yùn)行。為了創(chuàng)建一個(gè)新的Vision 工程必須作如下處理:選擇工具集 創(chuàng)建工程文件選擇設(shè)備1.2.1.1 選擇工具集Vision 可以使用 ARM RealView 編譯工具
9、、 ARM ADS 編譯器、GNU GCC 編譯器和Keil C ARM 編譯器。當(dāng)使用 GNU GCC 編譯器或ARM ADS 編譯器時(shí)必須另外安裝它們編譯集。實(shí)際使用的工具集可以在 Vision IDE 的 Project Manage- Components, Environment,5ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0and Books框的 Folders/Extensions 頁(yè)(見下圖)中選擇。圖 1.5 選擇工具集Use RealView Compiler 復(fù)選框表示本工程使用 ARM 開發(fā)工具。RealViewFolder文本框指定開發(fā)工具的路徑。下面的例子顯示了各種版本的
10、ARM ADS/RealView 開發(fā)工具的路徑:a)b)c)Vision 的 RealView 編譯器: BIN31ADS V1.2: C:Program FilesARMADSv1_2BinRealView 評(píng)估版 2.1: C:Program FilesARMRVCTPrograms2.1350eval2-scwin_32-pentiumUse Keil CARM Compiler 復(fù)選框表示本工程使用 Keil CARM 編譯器、Keil AARM 匯編器和 Keil LARM器/裝載器。Use GNU Compiler 復(fù)選框表示本工程使用 GNU 開發(fā)工具。Cygnus Folde
11、r 文本框指定 GNU 的安裝路徑。GNU-Tool-Prefix 文本框指定不同的 GNU 工具鏈。下面是各種 GNU版本的例子:a) 帶 uclib 的 GNU V3.22: GNU-Tool-Prefix: arm-uclibc- Cygnus Folder:C:Cygnusb) 帶標(biāo)準(zhǔn)庫(kù)的 GNUARM V4: GNU-Tool-Prefix: arm-elf- Cygnus Folder: C:Program FilesGNUARM6ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0Keil 根目錄的設(shè)置是基于 Vision/ARM 開發(fā)工具的安裝目錄的。對(duì)于 Keil ARM 工具來(lái)說(shuō),工具組件
12、的路徑是在開發(fā)工具目錄中配置的。1.2.1.2 創(chuàng)建工程文件單擊 Project -New.-Vision Project 菜單項(xiàng),Vision 3 將打開一個(gè)標(biāo)準(zhǔn)框,輸入希望新建工程的名字即可創(chuàng)建一個(gè)新的工程,建議對(duì)每個(gè)新建工程使用的文件夾。例如,這里先建立一個(gè)新的文件夾,然后選擇這個(gè)文件夾作為新建工程的目錄,輸入新建工程的名字 Project1,Vision 將會(huì)創(chuàng)建一個(gè)以 Project1.UV2 為名字的新工程文件,它包含了一個(gè)缺省的目標(biāo)(target)和文件組名。這些內(nèi)容在 Project Workspace-Files 中可以看到。1.2.1.3 選擇設(shè)備在創(chuàng)建一個(gè)新的工程時(shí),Vi
13、sion 要求為這個(gè)工程選擇一款 CPU。選擇設(shè)備框顯示了 Vision 的設(shè)備數(shù)據(jù)庫(kù),只需要選擇用戶所需的微器即可。例如,選擇 Philips LPC2106微器,這個(gè)選擇設(shè)置了 LPC2106 設(shè)備的必要工具選項(xiàng)、簡(jiǎn)化了工具的配置。圖 1.6 選擇設(shè)備注意:當(dāng)創(chuàng)建一個(gè)新的工程時(shí),Vision 會(huì)自動(dòng)為所選擇的 CPU 添加合適的啟動(dòng)代碼。對(duì)于一些設(shè)備而言,Vision 需要用戶手動(dòng)地輸入額外的參數(shù)。請(qǐng)仔細(xì)閱讀這個(gè)框右邊的信息,因?yàn)樗赡馨x設(shè)備的額外配置要求。7ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0創(chuàng)建源文件以后,就可以將這個(gè)文件添加到工程中。Vision 提供了幾種方法將源文件添加到工
14、程中。例如, 在 Project Workspace -Files 頁(yè)的文件組上點(diǎn)擊鼠標(biāo)右鍵,然后在彈出的菜單中選擇 Add Files 菜單項(xiàng),這時(shí)將打開標(biāo)準(zhǔn)的文件c 文件即完成源文件的添加??颍x擇我們創(chuàng)建的 asm 或1.2.2 編譯、工程1.2.2.1 設(shè)置目標(biāo)硬件的工具選項(xiàng)Vision 可以設(shè)置目標(biāo)硬件的選項(xiàng)。通過工具欄按鈕或 Project - Options for Target 菜單項(xiàng)打開 Options for Target框,在 Target 頁(yè)中設(shè)置目標(biāo)硬件及所選 CPU 片上組件的參數(shù)。下圖是 LPC2106 的一些參數(shù)設(shè)置。圖 1.7 設(shè)置目標(biāo)硬件下表描述了 Targ
15、et框的選項(xiàng):框項(xiàng)描述設(shè)備的晶振(XTAL)頻率。大多數(shù)基于 ARM 的微器都使用片上 PLLXtal產(chǎn)生 CPU 時(shí)鐘。所以,一般情況下 CPU 的時(shí)鐘與 XTAL 的頻率是不同的。Read/Only Memory AreaRead/WriteMemory Areas配置片內(nèi)、片外的 ROM 區(qū)地址以及大小指定目標(biāo)硬件的片內(nèi)和片外的 RAM 區(qū)地址以及大小Code Generation 旋轉(zhuǎn)產(chǎn)生 ARM code 還是 Thumb code8ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.01.2.2.2 增加連接文件對(duì)于 GNU 和 ARM ADS/RealView 工具鏈來(lái)說(shuō)器的配置是通過器文件實(shí)文件
16、 在文件現(xiàn)的。這個(gè)文件指定了 ARM 目標(biāo)硬件的配置。預(yù)配置的器夾.ARMGNU 或.ARMADS 中。 為了與目標(biāo)硬件相匹配,用戶可能會(huì)修改器文件,所以工程中的那個(gè)文件是預(yù)配置的連接文件的一個(gè)副本。這個(gè)文件可以通過 Project- Options for Target框的 Linker 頁(yè)添加到工程中。圖 1.8 設(shè)置 linker 選項(xiàng)對(duì)于復(fù)雜的 memory layout 分配方式,應(yīng)該采用 scatter file, 對(duì)于簡(jiǎn)單的工程,直接指定 R/O和 R/W 的基地址即可。1.2.2.3 編譯一般來(lái)說(shuō),在新建一個(gè)應(yīng)用程序的時(shí)候 Options -Target 頁(yè)中的所有的工具和屬性
17、都要配置。單擊 Build Target 工具欄按鈕將編譯所有的源文件,應(yīng)用程序。當(dāng)編譯有語(yǔ)法錯(cuò)誤的應(yīng)用程序時(shí),Vision 將在 Output Window -Build 窗口中顯示錯(cuò)誤和警告信息。單擊這些信息行,Vision 將會(huì)到相應(yīng)的源代碼處。9ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 1.9 編譯結(jié)果產(chǎn)生應(yīng)用程序以后就可開始調(diào)試了, 點(diǎn)擊 Debug-Start/Stop debug源文件編譯session (Ctrl F5)即進(jìn)入調(diào)試模式。1.2.3 程序調(diào)試進(jìn)入調(diào)試模式之后,可以選擇單步、全速運(yùn)行??梢栽O(shè)置斷點(diǎn)等常規(guī)的調(diào)試。所有有關(guān)調(diào)試的操作都可以在 Debug 菜單下找到。如下圖
18、所示為進(jìn)入調(diào)試模式下時(shí)的界面。圖 1.10 simulator 調(diào)試常用的調(diào)試:lll單步、全速運(yùn)行程序F10 單步運(yùn)行, F5 全速運(yùn)行。對(duì)于各種模式下的寄存器,可以在左邊的窗口查看10ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0l對(duì)于 ARM 的 7 種模式下的寄存器,都可以查看。當(dāng)處理器處于任何一種模式時(shí),可以查看 Current 中所有的寄存器的值,處理器從一種狀態(tài)改變到另外一種狀態(tài)時(shí),該模式下物理上設(shè)置斷點(diǎn)的寄存器將會(huì)被用到。llll選中需要設(shè)置斷點(diǎn)的行,然后 F9 即在改行設(shè)置斷點(diǎn),程序運(yùn)行到此處就停止運(yùn)行。查看變量的實(shí)時(shí)值對(duì)于 local 的變量,打開 View-Watch&Call S
19、tack Window,在此 Window 中,選擇Locals tab 就可以查看所有的 local 變量。對(duì)于全局變量,選擇 Watch window 中的 Watch #1, 加入你需要查看的變量就可以l查的全局變量的值。ll外設(shè)模塊因?yàn)槲覀冞x擇的是 Simulator,所以可以通過 RealView MDK 強(qiáng)大的功能來(lái)調(diào)試程序。打開 Peripheral-GPIO 可以看到每一個(gè) GPIO pin 的實(shí)時(shí)狀態(tài)信息。全速運(yùn)行程序后,GPIO 的狀態(tài)就開始按照程序的開始變化。1.2.4 工程選項(xiàng)頁(yè)概述在 Project - Options框頁(yè)可以設(shè)置所有的工具選項(xiàng)。所有的選項(xiàng)都保存在 V
20、ision工程文件中。在 Project Workspace -Files 窗口點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中可以設(shè)置文件夾或單個(gè)文件的不同選項(xiàng),這些選項(xiàng)在文件和文件夾選項(xiàng)中解釋過。在這種情況下,可能有附加的屬性頁(yè)及僅與所選項(xiàng)相關(guān)的框頁(yè)。下表概述了各種選項(xiàng)框頁(yè)框的功能。描述Device Target Output Listing CAsm從 Vision 的設(shè)備數(shù)據(jù)庫(kù)中選擇選擇設(shè)備。為應(yīng)用程序指定硬件環(huán)境。定義工具鏈的輸出文件,在編譯完成后運(yùn)行用戶程序。指定工具鏈產(chǎn)生的所有列表文件。設(shè)置 C 編譯器的工具選項(xiàng),例如代碼優(yōu)化和變量分配。設(shè)置匯編器的工具選項(xiàng),如宏處理。設(shè)置器的相關(guān)選項(xiàng)。一般來(lái)說(shuō),器
21、的設(shè)置需要配置目標(biāo)系統(tǒng)的Linker分配。設(shè)置器定義器類型和段的位置。DebugVision 調(diào)試器的設(shè)置。Utilities配置 Flash 編程實(shí)用工具。11ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0實(shí)驗(yàn)二、ARM 指令集2.1 ARM 匯編指令 1【實(shí)驗(yàn)內(nèi)容】建立一個(gè)匯編工程,要求完成兩個(gè)變量求和,編譯通過后,調(diào)試結(jié)果。【實(shí)驗(yàn)?zāi)康摹繒?huì)使用 Vision3 IDE for ARM 開發(fā)環(huán)境及 ARM 軟件模擬器; 通過實(shí)驗(yàn)掌握簡(jiǎn)單 ARM 匯編指令的使用方法?!緦?shí)驗(yàn)步驟】1、新建工程首先在就業(yè)班 ARM 課件ARM 實(shí)驗(yàn)第 1 天目錄下建立文件夾命名為 asm-00,運(yùn)行 Vision3 IDE
22、 集成開發(fā)環(huán)境,選擇菜單項(xiàng) Project New Vision Project,系統(tǒng)彈出一個(gè)框,按照?qǐng)D2-1所示輸入相關(guān)內(nèi)容。點(diǎn)擊“保存”按鈕,將創(chuàng)建一個(gè)新工程asm00.Uv2。圖 2-12、為工程選擇CPU新建工程后,要為工程選擇 CPU,如圖 2.2 所示,在此選擇 SAMSUNG 的 S3C2410X12ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 2-23、添加啟動(dòng)代碼在圖 2-3 中點(diǎn)“確定”后,會(huì)彈出一個(gè)示???,問是否要添加啟動(dòng)代碼。如圖 2.3 所圖 2-3由于本實(shí)驗(yàn)是簡(jiǎn)單的匯編實(shí)驗(yàn),因此不需要啟動(dòng)代碼。選擇否。4、選擇開發(fā)工具要為工程選擇開發(fā)工具,在 Project - Mana
23、ge - Components,Environment and Books- Folder/Extensions框的 Folder/Extensions 頁(yè)內(nèi)選擇開發(fā)工具,如圖 2-4 所示。13ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 2-4 選擇開發(fā)工具從圖中可以看到,有三個(gè)開發(fā)工具可選,在此選擇 RealView Compiler。5、建立源文件點(diǎn)擊菜單項(xiàng) File - New,系統(tǒng)彈出一個(gè)新的、沒有標(biāo)題的文本編輯窗,輸入光標(biāo)位于窗口中第一行,按照實(shí)驗(yàn)參考程序編輯輸入源文件代碼。編輯,保存文件 asm1_a.s。6、添加源文件單擊工程管理窗口中的相應(yīng)右鍵菜單命令,選擇 Add Files
24、to,會(huì)彈出文件選擇對(duì)話框,在工程目錄下選擇剛才建立的源文件 asm1_a.s。如圖 2-5 所示。14ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 2-57、工程配置選擇菜單項(xiàng) Project-Option for Target,將彈出工程設(shè)置框,如圖 2-6 所示??驎?huì)因所選開發(fā)工具的不同而不同,在此僅對(duì) Target 選項(xiàng)頁(yè)、Linker 選項(xiàng)頁(yè)及 Debug選項(xiàng)頁(yè)進(jìn)行配置。Target 選項(xiàng)頁(yè)的配置如圖 2-6;Linker 選項(xiàng)頁(yè)的配置如圖 2-7;Debug 選項(xiàng)頁(yè)的配置如圖 2-8。需要注意,后面的實(shí)驗(yàn)中在 Debug 選項(xiàng)頁(yè)內(nèi)需要一個(gè)初始化文件:DebugINRam.ini。此.IN
25、I 文件用于設(shè)置生成的.AXF 文件到目標(biāo)中的位置,以及調(diào)試前的寄存器、內(nèi)存的初始化等配置操作。它是由調(diào)試函數(shù)及調(diào)試命令組成調(diào)試命令文件。15ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 2-6 基本配置 Target圖 2-7 基本配置 Linker16ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 2-8 基本配置 Debug8、生成目標(biāo)代碼選擇菜單項(xiàng) Project - Build target 或快捷鍵 F7,生成目標(biāo)代碼。在此過程中,若有錯(cuò)誤,則進(jìn)行修改,直至無(wú)錯(cuò)誤。若無(wú)錯(cuò)誤,則可進(jìn)行9、調(diào)試的調(diào)試。選擇菜單項(xiàng) Debug - Start/Stop Debug Session 或快捷鍵 Ctrl+
26、F5,調(diào)試模試用版,式。若沒有目標(biāo)硬件,可以用 Vision 3 IDE 中的軟件器。如果使用MDK則在進(jìn)入調(diào)試模式前,會(huì)有如下框彈出,如圖 2-9 所示。圖 2-9 在軟件確定后即可調(diào)試了,做如下調(diào)試工作: 參看“asm-00”目錄下的代碼。下調(diào)試程序17ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0圖 2.10 ARM 匯編練習(xí)-編譯,。targetOptionsTarget tabfor“Target1”中設(shè)置如下:Linker tab18ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0去掉 “use0x4000000。memorylayoutfromtargetdialog”,R/OBase填0x0,R/W
27、Base填-進(jìn)入調(diào)試模式,開始調(diào)試,并注意查看寄存器的值,檢查計(jì)算結(jié)果是否正確。注意:匯編語(yǔ)言的源語(yǔ)句行的一般格式是:label instruction|directive|pseudo-instruction ;comment即使沒有標(biāo)號(hào),指令、偽指令和命令前面也必須有一個(gè)空白,例如一個(gè)空格或制表符。源語(yǔ)句行的所有三部分都是可選的??梢允褂每招衼?lái)使代碼更具可讀性。對(duì)以上代碼的解釋:段和 AREA 命令段是最低要求。名的、不可分割的代碼或數(shù)據(jù)序列。一個(gè)代碼段是個(gè)應(yīng)用程序的匯編或編譯的輸出可以包括:一個(gè)或多個(gè)代碼段。它們通常是只讀段。一個(gè)或多個(gè)數(shù)據(jù)段。它們通常是讀寫段。它們可以是零初始化的 (Z
28、I)。程序依照段位置規(guī)則,將每個(gè)段放在一個(gè)程序映像中。在源文件中相鄰的段,不一定要在應(yīng)用程序映像中相鄰。在源文件中,用 AREA 命令來(lái)標(biāo)記一個(gè)段的開始。該命令對(duì)屬性放在名稱后面,之間用逗號(hào)分隔。ENTRY 命令ENTRY 命令標(biāo)記要執(zhí)行的第一個(gè)指令。在包含 C 代碼的應(yīng)用命名并設(shè)置其屬性。,在 C 庫(kù)的初始化代碼中也包含一個(gè)點(diǎn)。初始化代碼和異常處理程序也包口點(diǎn)。19ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0END 命令此命令指示匯編程序停止處理這個(gè)源文件。每個(gè)匯編語(yǔ)言源模塊必須以一行單獨(dú)的END 命令結(jié)束。2.2 ARM 匯編指令 2【實(shí)驗(yàn)內(nèi)容】使用 add/sub/lsl/lsr/and/orr
29、 等指令,完成基本算術(shù)/邏輯運(yùn)算?!緦?shí)驗(yàn)?zāi)康摹繒?huì)使用 Vision3 IDE for ARM 開發(fā)環(huán)境及 ARM 軟件模擬器; 通過實(shí)驗(yàn)掌握簡(jiǎn)單 ARM 匯編指令的使用方法?!緦?shí)驗(yàn)步驟】參看“asm-01”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 asm01;添加 asm01.s 文件到項(xiàng)目中。幫助:LDR 指令:LDR 指令用于從內(nèi)存中將一個(gè) 32 位的字到目標(biāo)寄存器。LDR 指令根據(jù)所確定的地址模式將一個(gè) 32 位字到指令中的目標(biāo)寄存器。如果指令中的尋址方式確定的地址不是字對(duì),則讀出的數(shù)值要進(jìn)行循環(huán)右移。所移位數(shù)為尋址方式確定的地址 bits108 的倍,也就是說(shuō)處理
30、器將取到的數(shù)值作為字的最低位處理。如果設(shè)置了 L 位,則進(jìn)行裝載,否則進(jìn)行。如果設(shè)置了 P 位,則使用預(yù)先變址尋址,否則使用過后變址尋址。如果設(shè)置了 U 位,則給出的偏移量被加到基址寄存器上,否則從中減去偏移量。如果設(shè)置了 B 位,傳送內(nèi)存的一個(gè)字節(jié),否則傳送一個(gè)字。這在助記符末尾添加后綴“B”,如 MOV r7,r5 變?yōu)?MOVB r7,r5。W 位的解釋依賴于使用的地址模式。l對(duì)于預(yù)先變址尋址,設(shè)置 W 位強(qiáng)制把它用做地址轉(zhuǎn)換的最終地址寫回基址寄存器中(例如,傳送的副作用是 Rn:= Rn +/-offset。這在匯編器中表示為給指令加上后綴“!”。)。對(duì)于過后變址尋址,地址總是寫回,設(shè)
31、置 W 位指示在進(jìn)行傳送之前強(qiáng)制地址轉(zhuǎn)換。這在匯編器中表示為給指令加上后綴“T”。ll當(dāng) PC 作為 LDR 的目的寄存器時(shí),從序?qū)⑻D(zhuǎn)到目標(biāo)地址開始執(zhí)行。器取得的數(shù)據(jù)將被當(dāng)作目標(biāo)地址值,程指令的語(yǔ)法格式 LDR ,它確定了指令編碼中的 I、P、U、W、Rn 和位。所有的尋址模式中,都會(huì)確定一個(gè)基址寄存器 Rn。指令舉例 LDR r1,r0,#0x12;將 r0+12 地址處的數(shù)據(jù)讀出,保存到 r1 中(r0 的值不變)20ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0STR 指令:STR 指令用于將一個(gè) 32 位的字?jǐn)?shù)據(jù)寫入到指令中指定的內(nèi)存單元。指令的語(yǔ)法格式指令舉例LDR/STR 指令用于對(duì)內(nèi)存變
32、量的、內(nèi)存緩沖區(qū)數(shù)據(jù)的、查表、部件的控制操作等等,若使用 LDR 指令加載數(shù)據(jù)到 PC 寄存器,則實(shí)現(xiàn)程序跳轉(zhuǎn)功能,這樣也就實(shí)現(xiàn)了程序散轉(zhuǎn)。變量GPIO 設(shè)置程序散轉(zhuǎn)2.3 ARM 匯編指令 3【實(shí)驗(yàn)內(nèi)容】建立一個(gè)匯編工程,要求通過 ARM 匯編指令在各個(gè)處理器模式下切換并觀察各個(gè)模式下處理器的區(qū)別。編譯通過后,調(diào)試結(jié)果?!緦?shí)驗(yàn)?zāi)康摹?1MOV r2,r2,LSL #2;功能號(hào)乘以 4,以便查表LDR PC,PC,r2;查表取得對(duì)應(yīng)功能子程序地址,并跳轉(zhuǎn)NOPFUNTAB DCD FUNSUB0DCD FUNSUB1 DCD FUNSUB2GPIOBASE EQU 0xe0028000;定義G
33、PIO 寄存器的基地址LDRR0,=GPIOBASELDRR1,=0x00ffff00;將設(shè)置值放入寄存器STRR1,R0,#0x0C;IODIR=0x00ffff00,IOSET 的地址為 0xE0028004NumCount EQU 0x40003000;定義變量NumCountLDR R0,=NumCount;使用LDR 偽指令裝載NumCount 的地址到R0LDR R1,R0;取出變量值A(chǔ)DD R1,R1,1;NumCount=NumCount+1STR R1,R0;保存變量STR ,LDR r1,r0;將 r0 地址處的數(shù)據(jù)讀出,保存到 r1 中(零偏移)LDR r1,r0,r2;
34、將 r0+r2 地址的數(shù)據(jù)讀出,保存到 r1 中(r0 的值不變)LDR r1,r0,r2,LSL #2 ;將 r0+r24 地址處的數(shù)據(jù)讀出,保存到 r1 中(r0,r2 的值不變)LDR Rd,label;label 為程序標(biāo)號(hào),label 必須是當(dāng)前指令的4KB 范圍內(nèi)LDR Rd,Rn,0x04;Rn 的值用作傳輸數(shù)據(jù)的地址。在數(shù)據(jù)傳送后,將偏移量 0x04 與Rn 相加,結(jié)果寫回到 Rn 中。Rn 不是r15ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0通過實(shí)驗(yàn)掌握學(xué)會(huì)使用 MSR/MRS 指令實(shí)現(xiàn) AMR 處理器工作模式的切換,觀察不同模式下的寄存器,加深對(duì) CPU 結(jié)構(gòu)的理解?!緦?shí)驗(yàn)步驟】
35、參看“asm-02”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 armmode 工程;添加 armmode.s 文件到項(xiàng)目中?!緦?shí)驗(yàn)原理】ARM 處理器共有 7 種工作模式ARM 處理器的工作模式除用戶模式外的其他 6 種處理器模式稱為模式(Privileged Modes)。在這些模式下,程序可以所有的系統(tǒng),也可以任意地進(jìn)行處理器模式切換。其中的 5 種又稱為異常模式,分別為:FIQ(Fast Interrupt reQuest); IRQ(Interrupt request);管理(Supervisor);中止(Abort);未定義(Undefined)。處理器模式可以
36、通過軟件進(jìn)行切換,也可以通過外部中斷或異常處理過程進(jìn)行切換。大多數(shù)的用戶程序運(yùn)行在用戶模式下。當(dāng)處理器工作在用戶模式時(shí),應(yīng)用程序不能夠訪問受操保護(hù)的一些系統(tǒng),應(yīng)用程序也不能直接進(jìn)行處理器模式切換。當(dāng)需要進(jìn)行處理器模式切換時(shí),應(yīng)用程序可以產(chǎn)生異常處理,在異常處理過程中進(jìn)行處理器模式切換。這種體系結(jié)構(gòu)可以使操系統(tǒng)的使用。當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式。在每一種異常模式中都有一寄存器以供相應(yīng)的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時(shí)用戶模式下組的寄存器(保存程序運(yùn)行狀態(tài))不被破壞。狀態(tài)操作指令A(yù)RM 指令集提供了兩條指令, 可直接程序狀態(tài)寄存器( PSR , Progra
37、m State22處理器工作模式簡(jiǎn) 寫描述用戶模式(User)usr正常程序執(zhí)行模式,大部分任務(wù)執(zhí)行在這種模式下快速中斷模式(FIQ)fiq當(dāng)一個(gè)高優(yōu)先級(jí)(fast)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式,一般用于高速數(shù)據(jù)傳輸和通道處理外部中斷模式(IRQ)irq當(dāng)一個(gè)低優(yōu)先級(jí)(normal)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式, 一般用于通常的中斷處理模式(Supervisor)svc當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)進(jìn)入這種模式,是一種供操作系統(tǒng)使用的保護(hù)模式數(shù)據(jù)中止模式(Abort)abt當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式,用于虛擬或保護(hù)未定義指令中止模式(Undef)und當(dāng)執(zhí)行未定義指令時(shí)進(jìn)入這種模式,有時(shí)用于通過軟件協(xié)
38、處理器硬件的工作方式系統(tǒng)模式(System)sys使用和 User 模式相同寄存器集的模式,用于運(yùn)行級(jí)操任務(wù)ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0Register)。MRS 指令用于把 CPSR 或 SPSR 的值傳送到一個(gè)寄存器;MSR 與之相反,把一個(gè)寄存器的內(nèi)容傳送到 CPSR 或 SPSR。這兩條指令結(jié)合,可用于對(duì) CPSR 和 SPSR 進(jìn)行讀/寫操作。交換指令如表 5.5 所示。表 5.5程序狀態(tài)寄存器指令在指令語(yǔ)法中可看到一個(gè)稱為 fields 的項(xiàng),它可以是及標(biāo)志(F)的組合。(C)、擴(kuò)展(X)、狀態(tài)(S)程序不能通過直接修改CPSR 中的T 位等指令完成程序狀態(tài)的切換。直接將程
39、序狀態(tài)切換到 Thumb 狀態(tài),必須通過 BX注意MRSMRS 指令用于將程序狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中。當(dāng)數(shù)據(jù)被移到通用寄存器以后,就可以對(duì)數(shù)據(jù)進(jìn)行處理。(2)指令的語(yǔ)法格式MSRMSR 指令用于將通用寄存器中的內(nèi)容或立即數(shù)傳送到程序狀態(tài)寄存器中。因此指令的編碼格式也有兩種格式。(2)指令的語(yǔ)法格式實(shí)驗(yàn)三3.1 LDR/STM 指令尋址實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】熟悉開發(fā)環(huán)境的使用并完成一塊【實(shí)驗(yàn)?zāi)康摹繀^(qū)的。完成分支程序設(shè)計(jì)。通過實(shí)驗(yàn)掌握使用 LDM/STM、B 等指令,完成較為復(fù)雜的學(xué)習(xí)使用條件碼,加強(qiáng)對(duì) CPSR 的認(rèn)識(shí)?!緦?shí)驗(yàn)步驟】參看“asm-03”目錄下的代碼區(qū)和程序分支。按照實(shí)驗(yàn)一的
40、方法,新建一個(gè) project,名字為 asm01;添加 asm01.s 文件到項(xiàng)目中。23MSR CPSR_, MSR CPSR_, MSR SPSR_, MSR SPSR_,MRS ,CPSR MRS ,SPSR指令作用操作MRS把程序狀態(tài)寄存器的值送到一個(gè)通用寄存器Rd=SPRMSR把通用寄存器的值送到程序狀態(tài)寄存器或把一個(gè)立即數(shù)送到程序狀態(tài)字PSRfield=Rm 或PSRfield=immediateARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0注意:link 設(shè)置和實(shí)驗(yàn) 2.1 不同,是 asm01.s 中的代碼段屬性為 readwrite,所以R/O Base(-entry 后的值)和 R
41、/W Base 相同,且在 rw 區(qū)域。areastart,code,readwriteLinker tab因?yàn)?entry0x30000000所以需要在調(diào)試時(shí)把 pc 的初始值指向這個(gè)位置。使用 DebugInRam.ini 來(lái)實(shí)現(xiàn)。DebugInRam.ini 內(nèi)容如下:24ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.03.2 ARM 匯編子函數(shù)調(diào)用【實(shí)驗(yàn)內(nèi)容】建立一個(gè)匯編工程,要求完成兩個(gè)變量求和,求差,以及返回值。編譯通過后,調(diào)試結(jié)果。【實(shí)驗(yàn)?zāi)康摹客ㄟ^實(shí)驗(yàn)掌握簡(jiǎn)【實(shí)驗(yàn)步驟】函數(shù)調(diào)用。參看“asm-04”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 asm02;添加 asm02.
42、s 文件到項(xiàng)目中。編譯程序,使用 debugger 調(diào)試程序。觀察程序運(yùn)行時(shí)寄存器的狀態(tài)。單步執(zhí)行代碼,觀察在子程序調(diào)用時(shí),r14(LR)的變化。3.3Thumb 匯編指令練習(xí)【實(shí)驗(yàn)內(nèi)容】建立一個(gè)匯編工程,要求完成兩個(gè)變量求和,兩個(gè)變量相加的子程序用 Thumb 指令編寫。編譯通過后,調(diào)試結(jié)果?!緦?shí)驗(yàn)?zāi)康摹客ㄟ^實(shí)驗(yàn)掌握簡(jiǎn)單的 Thumb 指令及 ARM、Thumb 交互?!緦?shí)驗(yàn)步驟】參看“ThumbTest”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 Thumb_test 工程;添加 Thumb_code.s文件到項(xiàng)目中。3.4 利用 ARM 匯編實(shí)現(xiàn)開發(fā)板 LED 燈【實(shí)
43、驗(yàn)內(nèi)容】建立一個(gè)簡(jiǎn)單的匯編語(yǔ)言代碼,完成 LED 的【實(shí)驗(yàn)?zāi)康摹?。編譯通過后,調(diào)試結(jié)果。學(xué)會(huì)使用 realview MDK 編寫簡(jiǎn)單的匯編語(yǔ)言程序【實(shí)驗(yàn)步驟】參看“l(fā)ed_asm”目錄下的代碼設(shè)備。1、按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 led_asm 工程;添加 led.s 文件到25ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0項(xiàng)目中。2、按照實(shí)驗(yàn)一的方法,編譯,代碼到開發(fā)板運(yùn)行,觀察現(xiàn)象。3、修改代碼,實(shí)現(xiàn)的邏輯。4、燒寫你的代碼到開發(fā)板后,可能出現(xiàn)邏輯和你想要的不一致。思考?(在于:默認(rèn)情況下,處理器是打開看門狗的。解決方法:添加指令關(guān)閉看門狗)實(shí)驗(yàn)四4.1 簡(jiǎn)單 C 語(yǔ)言程序?qū)?/p>
44、驗(yàn)【實(shí)驗(yàn)內(nèi)容】建立一個(gè)簡(jiǎn)單的 C 語(yǔ)言代碼,完成延時(shí)功能。編譯通過后,調(diào)試結(jié)果?!緦?shí)驗(yàn)?zāi)康摹繉W(xué)會(huì)使用 realview MDK 編寫簡(jiǎn)單的 C 語(yǔ)言【實(shí)驗(yàn)步驟】參看“CTest1”目錄下的代碼調(diào)試運(yùn)行。按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 C_test1 工程;添加 C_CALL.C 文件到項(xiàng)目中。4.2 匯編與 C 語(yǔ)言的相【實(shí)驗(yàn)內(nèi)容】用實(shí)驗(yàn)使用匯編完成一個(gè)函數(shù),通過 C 語(yǔ)言調(diào)用該函數(shù)?!緦?shí)驗(yàn)?zāi)康摹繉W(xué)會(huì)使用 realview MDK 編寫匯編和 C 語(yǔ)言相件。【實(shí)驗(yàn)步驟】參看“explasm”目錄下的代碼用的程序,學(xué)會(huì)使用 sct 連接文按照實(shí)驗(yàn)一的方法,新建一個(gè) proje
45、ct,名字為 C_test1 工程;添加 randtest.c、startup.s、addsubb.s 文件到項(xiàng)目中。注意在 linker 下選擇.explasm.sct 文件26ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.04.3 C 語(yǔ)言中內(nèi)聯(lián)匯編程序?qū)嶒?yàn)【實(shí)驗(yàn)內(nèi)容】建立一個(gè)簡(jiǎn)單的 C 語(yǔ)言代碼,加入內(nèi)聯(lián)匯編代碼。編譯通過后,調(diào)試結(jié)果?!緦?shí)驗(yàn)?zāi)康摹繉W(xué)會(huì)在 C 語(yǔ)言【實(shí)驗(yàn)步驟】?jī)?nèi)聯(lián)匯編語(yǔ)言。參看“CTest2”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè)project,名字為CTest2 工程。添加CCode.c startup.s文件到項(xiàng)目中。使用 CTest2.sct文件。4.4 C 語(yǔ)言中嵌入型匯編程
46、序?qū)嶒?yàn)【實(shí)驗(yàn)內(nèi)容】建立一個(gè)簡(jiǎn)單的 C 語(yǔ)言代碼,加入嵌入型匯編代碼。編譯通過后,調(diào)試結(jié)果?!緦?shí)驗(yàn)?zāi)康摹?7ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0學(xué)會(huì)在 C 語(yǔ)言【實(shí)驗(yàn)步驟】加入嵌入型匯編代碼。參看“CTest3”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè)project,名字為CTest3 工程。添加CCode.c startup.s文件到項(xiàng)目中。使用 CTest3.sct文件。4.5 SWI 軟中斷實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】參照課件 SWI 示例,完成一個(gè)完整的工程,可以實(shí)現(xiàn) SWI 的調(diào)用過程?!緦?shí)驗(yàn)?zāi)康摹坷斫?SWI 的實(shí)現(xiàn)過程?!緦?shí)驗(yàn)步驟】1、理解課件中“軟中斷(SWI)處理示例”,2、編寫程序,在 s
47、wi 處理過程中,完成軟中斷號(hào)的獲取。(參考實(shí)驗(yàn)代碼 swi_test)4.6 綜合編程實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】完成一個(gè)完整的工程,要求包含啟動(dòng)代碼、匯編函數(shù)和 C 文件,而且 C 文件包含 AMR函數(shù)和 Thumb 函數(shù),并且可以相【實(shí)驗(yàn)?zāi)康摹坑谩W(xué)會(huì)使用 realview MDK 編寫綜合代碼?!緦?shí)驗(yàn)步驟】參看“interwork”目錄下的代碼按照實(shí)驗(yàn)一的方法,新建一個(gè) project,名字為 interwork 工程;添加 arm.c、thumb.c、addsubb.s、S3C2410A.s 文件到項(xiàng)目中。讀懂程序的啟動(dòng)過程及調(diào)用關(guān)系。注意:下圖說(shuō)明了 arm.c 和 thumb.c 是如何被分布編譯為 ARM 代碼和 Thumb 代碼的28ARM 開發(fā)培訓(xùn)班實(shí)驗(yàn)指導(dǎo) V3.0注意:Thumb Mode 選項(xiàng)的選擇情況實(shí)驗(yàn)五、I/O 及串口通信編程實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容】編寫程序,實(shí)驗(yàn)平臺(tái)的發(fā)光二極管 D9、D10、D11、D12 使它們有規(guī)律的點(diǎn)亮和熄滅。并且通過串口打印提示信息。代碼分別在【實(shí)驗(yàn)?zāi)康摹科飨隆⒑兔撾x環(huán)境運(yùn)行。掌握 S3C2410I/O器、uart器、及系統(tǒng)初始化相關(guān)部分的配置方法;掌握調(diào)整 fputc 庫(kù)使其適應(yīng)目標(biāo)硬件;掌握如何通過 realview MDK 環(huán)境將代碼燒寫
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)慶班級(jí)教學(xué)活動(dòng)方案
- 商場(chǎng)服裝會(huì)員活動(dòng)方案
- 商戶運(yùn)營(yíng)活動(dòng)方案
- 國(guó)風(fēng)書店打卡活動(dòng)方案
- 國(guó)慶紙尿褲活動(dòng)策劃方案
- 團(tuán)建活動(dòng)理發(fā)師活動(dòng)方案
- 國(guó)外牛奶線下活動(dòng)方案
- 圓夢(mèng)計(jì)劃活動(dòng)方案
- 回收廢品活動(dòng)方案
- 咖啡烘培活動(dòng)方案
- 浙江省強(qiáng)基聯(lián)盟學(xué)考模擬2024-2025學(xué)年高二下學(xué)期6月學(xué)考模擬地理試題(含答案)
- 中國(guó)美術(shù)學(xué)院非教學(xué)崗位招聘筆試真題2024
- 人形機(jī)器人深度研究系列八:諧波減速器:差齒傳動(dòng)持續(xù)進(jìn)化
- 公立醫(yī)院風(fēng)險(xiǎn)評(píng)估報(bào)告
- 腫瘤婦科進(jìn)修匯報(bào)
- 麻醉意外與并發(fā)癥處理規(guī)范與流程
- 信息技術(shù)的前沿動(dòng)態(tài)的試題及答案
- 參股投資合作協(xié)議書
- 2025年廣東省深圳市南山區(qū)多校聯(lián)考中考英語(yǔ)二模試卷
- 2025至2030中國(guó)物理氣相沉積(PVD)設(shè)備行業(yè)行情監(jiān)測(cè)與發(fā)展動(dòng)向追蹤報(bào)告
- 智能化設(shè)備與造價(jià)咨詢合同
評(píng)論
0/150
提交評(píng)論