嵌入式系統原理與應用實驗指導書趙明璽新_第1頁
嵌入式系統原理與應用實驗指導書趙明璽新_第2頁
嵌入式系統原理與應用實驗指導書趙明璽新_第3頁
嵌入式系統原理與應用實驗指導書趙明璽新_第4頁
嵌入式系統原理與應用實驗指導書趙明璽新_第5頁
已閱讀5頁,還剩153頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 嵌入式系統原理與應用實 驗 指 導 書趙明璽 編寫適用專業: 電氣類本科 電子類本科 通信類本科 云南民族大學電氣信息工程學院2013年 01月前 言隨著芯片技術和電子系統智能化,網絡化,一體化的快速發展,嵌入式技術開始受到廣泛的關注。嵌入式系統融合了計算機軟、硬件技術,通訊技術, 半導體微電子技術。通過進行嵌入式系統設計與開發實驗,使學生了解嵌入式系統的開發方法和流程,熟悉硬件平臺,熟悉嵌入式Linux操作系統的基本原理和概念,能夠根據實際需要定制硬件系統,軟件系統(包括內核,操作系統,驅動程序和應用程序)。為了使學生更好地理解和深刻地把握上述知識和技能,本課程設置如下實驗項目,在ADS和

2、Linux環境下設置演示型實驗5個、驗證型實驗3個、綜合型實驗4個、設計型實驗5個和研究型實驗1個。其中在µVision IDE環境下基礎性實驗5個(演示型2個,驗證型3個),在嵌入式Linux環境下基礎性實驗3個(演示型3個)。在此基礎上,本實驗課程包含了綜合設計性實驗10個,重點訓練和培養和嵌入式LinuxD設備驅動程序和復雜應用程序的開發能力,以使學生能夠深入認識ARM體系結構和Linux操作系統工作原理,ARM處理器工作原理,常見外圍設備工作原理與控制方法。對于電子類學生,重點培養ARM微處理器工作原理,如何實現常見嵌入式電子系統的設計,復雜設備的驅動程序的設計,信號提取與分

3、析等知識和技能。對于通信類學生,重點培養嵌入式系統的基本設計方法,各種通信模塊、協議(如串口、TCP)的實現等知識和技能。對于其他專業學生,重點培養嵌入式系統的基本設計方法,設備驅動程序,應用程序的基本設計方法等知識和技能。目 錄實驗 1:EMBEST EDUKIT-V嵌入式實驗平臺概況及操作方法5實驗 2:RealView MDK集成開發環境實驗10實驗 3:匯編指令實驗21實驗 4:Thumb 匯編指令實驗31實驗 5:ARM 處理器工作模式實驗39實驗 6:基于µVision IDE 的C語言編程實驗47實驗 7:匯編與 C 語言相互調用實驗53實驗 8:嵌入式Linux概況與

4、常見命令使用61實驗 9:常用Linux命令與及編輯器vi的使用69實驗 10:嵌入式 Linux 開發一般步驟82實驗 11:HelloWorld 運行實驗85實驗 12:文件操作實驗90實驗 13:計時器實驗95實驗 14:TCP 實驗102實驗 15:LED 控制實驗116實驗 16:中斷控制實驗131實驗 17:ADC 操作實驗142實驗 18:串口通信實驗148實驗 1:EMBEST EDUKIT-V嵌入式實驗平臺概況及操作方法實驗學時:2實驗類型:演示實驗要求:必修一、實驗目的1、熟悉EduKit-IV嵌入式ARM 教學實驗平臺的軟硬件資源,了解本實驗平臺的特點;2、熟悉實驗平臺主

5、板及CPU子板的原理、功能及結構;3、掌握教學實驗平臺的操作方法及注意事項。二、實驗內容1、介紹EMBEST EDUKIT-IV嵌入式實驗平臺的軟硬件資源;2、重點結合電路原理圖描述本實驗平臺的硬件結構;3、重點根據硬件接口定義,講述實驗平臺主板及CPU子板的原理、功能及結構;4、講述該嵌入式實驗平臺的操作方法和注意事項。三、實驗原理、方法和手段Embest EduKit-IV 教學實驗系統硬件由核心板、主板、功能模塊板以及相應的適配器、連接線組成;軟件資源包含了當前主流嵌入式操作系統Linux、Windows CE 6.0下的BSP 包以及應用程序。Embest EduKit-IV 支持多核

6、多操作系統,用戶可以根據學習、研究、開發的需要選擇軟硬件資源。本實驗主要介紹基于 SAMSUNG S3C2410 處理器的Linux 2.6 嵌入式開發方法,要求用戶配備的軟硬件資源主要包括Embest EduKit-IV 主板、Mini2410-IV核心子板(基于SAMSUNG S3C2410)、各種功能模塊板(如GPRS 模塊、藍牙模塊等)以及Linux 2.6下的Bootloader、kernel、rootfs 等。實驗源碼包。四、實驗組織運行要求采用集中授課形式介紹EMBEST EDUKIT-IV嵌入式實驗平臺的構成和特點,講述該嵌入式實驗平臺的操作方法和注意事項。五、實驗條件硬件:E

7、mbest ARM EduKit V開發箱, PC機;軟件:Windows98/XP/2000 系統,ADS集成開發環境。六、實驗步驟1. 系統簡介Embest EduKit-IV教學實驗平臺是一款功能強大的32位嵌入式ARM 實驗開發平臺,是深圳市英蓓特信息技術有限公司推出的更具創新意識的EduKit系列第四代嵌入式教學實驗平臺。 如圖1-1所示:圖1-1 EduKit-IV 教學實驗平臺實驗箱外觀圖(1)基本組成Embest EduKit-IV 教學實驗系統硬件由核心板、主板、功能模塊板以及相應的適配器、連接線組成;軟件資源包含了當前主流嵌入式操作系統Linux、Windows CE 6.

8、0下的BSP 包以及應用程序。Embest EduKit-IV 支持多核多操作系統,用戶可以根據學習、研究、開發的需要選擇軟硬件資源。(2)教學系統主板硬件介紹 Embest EduKit-IV主板遵循了模塊化的設計思路,提供了豐富的接口,并且具有良好的擴展性。在EduKit-IV 上設計了2組獨有專利技術規范的 CPU接口槽,用于連接EduKit-IV主板與核心子板,將核心板上的信號引至主板上。這種設計使得 EduKit-IV 主板可以支持不同的 CPU 核心子板,用戶按照主板接口CPU接口槽的信號定義,可以開發自已的目標核心板。2. 主板硬件設計原理說明(圖1-2)圖 1-2 EduKit

9、-IV 主板系統方框圖3. 主板硬件結構(如圖1-3所示)圖 1-3 主板結構圖4. Mini2410-IV 核心子板硬件介紹Embest EduKit-IV 實驗系統采用了主板與核心板分離的模塊化設計架構。主板與核心板之間遵循了一定的接口信號定義,按照這種定義,核心板把CPU 的控制信號輸出到主板上。在這里將講述Mini2410-IV 核心子板與主板的接口信號以及其相關的設計原理。Mini2410-IV 核心子板采用了功能強大的ARM 處理器SAMSUNG S3C2410。(1)嵌入式系統與最小系統介紹嵌入式系統是以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適應應用系統對功能、可靠性、

10、成本、體積、功耗嚴格需求的專用計算機系統。嵌入式系統包括硬件與軟件,嵌入式系統發展有過很長一段單片機的獨立發展道路,大多是基于 8位單片機,實現最底層的嵌入式統應用,硬件資源不是特別豐富、軟件的規模也比較小。而隨著嵌入式技術的深入發展、為了能夠處理更復雜的事件以及管理更豐富的資源,現在廣泛地使用了 32位嵌入式處理器,并且操作系統也被應用到了嵌入式系統中。從當前應用的角度來看,嵌入式系統一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶應用程序等部分組成,用于實現對其它設備的控制、監視或管理功能。 在嵌入式系統的概念上又提出了嵌入式最小系統,嵌入式最小系統要保證在最精簡的資源條件下,系

11、統能夠工作。通常,一個最小系統是以處理器為控制和管理中心,具有相配接的電源電路、時鐘電路、復位信號電路、系統存儲單元。而作為嵌入式應用,為方便開發與調試,最小系統還應該包括系統總線擴展、調試電路(通常是JTAG電路)。 在本實驗系統中,核心子板采用了處理器 SAMSUNG S3C2410,擴展了存儲系統,系統總線以及調試JTAG電路,在此基礎,利用處理器的硬件資源,根據需求擴展外部設備。(2)Mini2410-IV核心板原理說明 核心板硬件資源 處理器SAMSUNG S3C2410提供了各種應用接口,如LCD控制接口、SD 卡控制接口、USB 主/從控制接口、UART 控制接口等。 Mini2

12、410-IV 核心子板利用處理器 SAMSUNG S3C2410 提供的各種控制接口擴展了功能模塊,這些接口信號最終通過核心板輸送到主板上。比如,在核心板上通過CPU 引出LCD 控制信號,然后再輸送到主板上的 LCD 連接器上。所以,在理解電路原理圖時,讀者應該結合主板,從整體上來把握。下面講述核心板上的一些功能擴展電路。 核心板與主板的接口電路 EduKit-IV設計了2個符合PC104規范的接口Main_Con_A與Main_Con_B,用于連接EduKit-IV的主板和核心子板,將核心板的控制信號引至主板。5. 操作步驟(1)打開試驗箱,將核心板插在擴展板上。(2)確定連線無誤后打開開

13、關。(3)不可帶電插拔SD卡等外接設備。七、思考題嵌入式系統的一般構成有哪些?試分析EduKit-IV嵌入式教學系統平臺的特點。八、實驗報告實驗報告應包括實驗目的,主要內容,簡述實驗原理,方法和手段,包括對Embest EduKit-IV 教學實驗系統知識與操作環境的預習、實驗過程、結果記錄和心得體會等。九、其它說明實驗 2:RealView MDK集成開發環境實驗實驗學時:2實驗類型:演示實驗要求:必修一、實驗目的通過本實驗的學習,使學生了解Embest ARM教學系統的基本構成,掌握EDK軟件的使用。 二、實驗內容Embest ARM教學系統包括Embest IDE集成開發環境,Embes

14、t JTAG仿真器,Flash編程器,Embest Arm EduKit V開發箱、各種連接線、電源適配器以及實驗指導書等。基本實驗系統構成示意圖如2-1所示:圖2-1 實驗系統構成示意圖1、了解ULINK 2仿真器和RealView MDK 的使用;2、了解µVision IDE工程管理的方法與步驟。三、實驗原理、方法和手段µVision 3 是一個基于窗口的軟件開發平臺,它集成了功能強大的編輯器、工程管理器以及make工具。µVision3 IDE 集成的工具包括C編譯器、宏匯編器、鏈接/定位器和十六進制文件生成器。µVision 有編譯和調試兩種工

15、作模式,兩種模式下設計人員都可查看并修改源文件。µVision IDE由多個窗口、對話框、菜單欄、工具欄組成。其中菜單欄和工具欄用來實現快速的操作命令;工程工作區(Project Workspace)用于文件管理、寄存器調試、函數管理、手冊管理等;輸出窗口(Output Window)用于顯示編譯信息、搜索結果以及調試命令交互燈;內存窗口(Memory Window)可以不同格式顯示內存中的內容;觀測窗口(Watch & Call Stack Window)用于觀察、修改程序中的變量以及當前的函數調用關系;工作區(Workspace)用于文件編輯、反匯編輸出和一些調試信息顯示

16、;外設對話框(Peripheral Dialogs)幫助設計者觀察片內外圍接口的工作狀態。 四、實驗組織運行要求根據本實驗的特點、首先采用集中授課形式介紹µVision3 IDE開發環境和使用µVision3 IDE 建立工程,編譯,鏈接,調試操作的具體過程。然后每個學生動手建立工程,完成編譯,鏈接,調試等操作。五、實驗條件硬件: Embest ARM EduKit V開發箱, PC機;軟件:Windows98/XP/2000 系統,µVision3 IDE集成開發環境。六、實驗步驟1. ARM 開發工具簡介用戶選用ARM處理器開發嵌入式系統時,選擇合適的開發工具

17、可以加快開發進度,節省開發成本,用戶在建立自己的基于 ARM 嵌入式開發環境時,可供選擇的開發工具是非常多的。目前世界上有幾十多家公司提供不同類別的 ARM 開發工具產品,根據功能的不同,分別有編譯軟件、匯編軟件、鏈接軟件、調試軟件、嵌入式操作系統、函數庫、評估板、JTAG 仿真器、在線仿真器等。有些工具是成套提供的,有些工具則需要組合使用。在本節中,我們將簡要介紹幾種比較流行的 ARM 開發工具,包括ARM SDT、ARM ADS、Multi 2000、RealViewMDK 等集成開發環境以及 OPENice32-A900仿真器、Multi-ICE仿真器、ULink 2仿真器等。(1) R

18、ealView MDKMDK(Microcontroller Development Kit)是Keil公司(An ARM Company)開發的ARM開發工具,是用來開發基于ARM核的系列微控制器的嵌入式應用程序的開發工具。它適合不同層次的開發者使用,包括專業的應用程序開發工程師和嵌入式軟件開發的入門者。MDK包含了工業標準的C 編譯器、宏匯編器、調試器、實時內核等組件,支持所有基于ARM的設備,能幫助工程師按照計劃完成項目。 Keil ARM開發工具集集成了很多有用的工具(如圖2-2所示),正確的使用它們,可以有助于快速完成項目開發。圖 2-2 MDK 開發工具的組件MDK 的最新版本是&

19、#181;Vision 3,可以開發基于ARM7、ARM9、Cortex-M3的微控制器應用程序。它易學易用且功能強大。(1) ULINK 2仿真器 ULINK 是Keil公司提供的USB-JTAG 接口仿真器,目前最新的版本是2.0。它支持諸多芯片廠商的 8051、ARM7、ARM9、Cortex M3、Infineon C16x、Infineon XC16x、Infineon XC8xx、STMicroelectronics µPSD等多個系列的處理器。ULINK 2內部實物如圖1-12所示,電源由PC機的USB 接口提供。ULINK2 不僅包含了 ULINK USB-JTAG

20、適配器具有的所有特點,還增加了串行線調試(SWD)支持,返回時鐘支持和實時代理功能。ULINK2適用與標準的Windows USB驅動等功能。 ULINK 2的主要功能: l 下載目標程序; l 檢查內存和寄存器; l 片上調試,整個程序的單步執行; l 插入多個斷點; l 運行實時程序; l 對FLASH存儲器進行編程。 ULINK2 新特點:l 標準Windows USB 驅動支持,也就是ULINK2 即插即用; l 支持基于 ARM Cortex-M3的串行線調試; l 支持程序運行期間的存儲器讀寫、終端仿真和串行調試輸出; l 支持10/20 針連接器。2. RealView MDK

21、的使用(1)RealView MDK 的安裝 這里主要介紹如何安裝實驗系統的軟件平臺、如何搭建和如何進行軟件平臺與硬件平臺的連接。在安裝µVision3 IDE集成開發環境之前請首先閱讀軟件使用許可協議。安裝µVision 3 評估軟件必須滿足的最小的系統要求為: l 操作系統:Windows 98,Windows NT4,Windows 2000,Windows XP; l 硬盤空間:30M 以上; l 內存:128M 以上。 µVision IDE集成開發環境的安裝方法如下: 購買MDK的安裝程序,或從下載MDK的評估版;雙擊安裝文件。 建議在安裝之前關閉所有

22、的應用程序,單擊Next,彈出對話框;仔細閱讀許可協議,選中 I agree to all the terms of the preceding License Agreement 選項,單擊Next,彈出如圖3-2-3所示對話框;單擊 Browse選擇安裝路徑,然后單擊Next,彈出對話框;輸入First Name、Last Name、Company Name 以及E-mail地址后,單擊 Next;安裝程序將在計算機上安裝MDK,依據機器性能的不同,安裝程序大概耗時半分鐘到兩分鐘不等,之后將會彈出對話框,單擊 Finish結束安裝。至此,開發人員就可在計算機上使用 MDK軟件來開發應用程序

23、了。µVision IDE集成開發環境安裝完畢后,點擊µVision IDE的圖標 即可運行 µVision IDE。第一次使用µVision IDE正式版時,用戶必須注冊。µVision 3的有兩種許可證:單用戶許可證和浮動許可證。單用戶許可證只允許單用戶最多在二臺計算機上使用MDK,而浮動許可證則允許局域網眾多臺計算機分時使用MDK。目前,所有的Keil軟件均可使用單用戶許可證注冊,絕大多數Keil軟件可使用浮動許可證注冊。(2)µ Vision IDE主框架窗口µVision IDE由如圖2-3所示的多個窗口、對話框、

24、菜單欄、工具欄組成。其中菜單欄和工具欄用來實現快速的操作命令;工程工作區(Project Workspace)用于文件管理、寄存器調試、函數管理、手冊管理等;輸出窗口(Output Window)用于顯示編譯信息、搜索結果以及調試命令交互燈;內存窗口(Memory Window)可以不同格式顯示內存中的內容;觀測窗口(Watch & Call Stack Window)用于觀察、修改程序中的變量以及當前的函數調用關系;工作區(Workspace)用于文件編輯、反匯編輸出和一些調試信息顯示;外設對話框(Peripheral Dialogs)幫助設計者觀察片內外圍接口的工作狀態。圖2-3

25、µVision IDE 開發環境軟件界面µVision IDE集成開發環境的菜單欄可提供如下菜單功能:編輯操作、工程維護、開發工具配置、程序調試、外部工具控制、窗口選擇和操作,以及在線幫助等。工具欄按鈕可以快速執行 µVision 3的命令。狀態欄顯示了編輯和調試信息,在View菜單中可以控制工具欄和狀態欄是否顯示。鍵盤快捷鍵可以快速執行µVision 3的命令,它可以通過菜單命令Edit Configuration - Shortcut Key來進行配置。3. 工程管理 (1)工程管理介紹: 在µVision IDE集成開發環境中,工程是一個

26、非常重要的概念,它是用戶組織一個應用的所有源文件、設置編譯鏈接選項、生成調試信息文件和最終的目標 Bin 文件的一個基本結構。一個工程管理一個應用程序的所有源文件、庫文件、其它輸入文件,并根據實際情況進行相應的編譯鏈接設置,一個工程須生成一個相對應的目錄,以進行文件管理。 µVision IDE工程管理提供以下功能: µVision IDE的工作區由五部分組成, 分別為Files頁、 Regs頁、 Books頁、 Functions頁、 Templates頁。工作區如圖2-4所示,它顯示了工程結構。圖 2-4 工程管理區結構圖(2)工程的創建: µVision 3

27、 所提供的工程管理,使得基于 ARM 處理器的應用程序設計開發變得越來越方便。通常使用µVision 3 創建一個新的工程需要以下幾步:選擇工具集、創建工程并選擇處理器、創建源文件及文件組、配置硬件選項、配置對應啟動代碼、最后編譯鏈接生成HEX文件。(3) 建立一個新的源文件: 創建一個工程之后,就應開始編寫源程序。選擇菜單項File - New可創建新的源文件, µVision IDE將會打開一個空的編輯窗口用以輸入源程序。在輸入完源程序后,選擇File - Save As菜單項保存源程序,當以*.C為擴展名保存源文件時,µVision IDE將會根據語法以彩色

28、高亮字體顯示源程序。(4)工程中文件的加入: 創建完源文件后便可以在工程里加入此源文件,µVision 提供了多種方法加入源文件到工程中。例如,在Project Workspace Files菜單項中選擇文件組,右擊將會彈出如圖2-5所示快捷菜單,單擊選項Add Files to Group打開一個標準文件對話框,將已創建好的源文件加入到工程中。圖2-5 加入源文件到工程中通常,設計人員應采用文件組來組織大的工程,將工程中同一模塊或者同一類型的源文件放在同一文件組中。例如,可在 Project Manage- Components, Environment, Books對話框中創建自

29、己的文件組Sysem Files來管理CPU啟動代碼和其它系統配置文件等,如圖2-6所示。可使用New (Insert)按鈕可創建新的文件組,或在Groups文件組中選定一個文件組,然后點擊Add Files為其添加文件。圖2-6 創建新的文件組(5) 設置活動工程在µVision IDE中可以存在幾個同時打開的工程,但只有一個工程處于活動狀態并顯示在工程區中,處于活動狀態的工程才可以作為調試工程。可在圖 2-6中的工程目標框中選擇需要激活的工程,然后單擊 按鈕即可。4. 工程基本配置(1)硬件選項配置µVision 3可根據目標硬件的實際情況對工程進行配置。通過單擊目標工

30、具欄圖標 或者單擊菜單項Project - Options for Target,在彈出的Target頁面可指定目標硬件和所選擇設備片內組件的相關參數。(2)處理器啟動代碼配置 通常情況下,ARM程序都需要初始化代碼用來配置所對應的目標硬件。如前面章節所述,當創建一個應用程序時µVision 3會提示使用者自動加入相應設備的啟動代碼。(3)仿真器配置 選擇菜單項Project->Project-Option for Target 或者直接單擊 ,打開 Option for Target對話框的Debug頁,彈出如下對話框,進行仿真器的連接配置。(4)工具配置 工具選項主要設置F

31、lash下載選項。打開菜單欄的Project->Project-Option for Target對話框選擇其“Utilities”頁,或者打開菜單 Flash->Configue Flash Tools。 (5)調試設置 µVision 3調試器提供了兩種調試模式,可以從Project->Options for Target對話框的 Debug 頁內選擇操作模式。軟件仿真模式:在沒有目標硬件情況下,可以使用仿真器(Simulator)將µVision3 調試器配置為軟件仿真器。它可以仿真微控制器的許多特性,還可以仿真許多外圍設備包括串口、外部 I/O 口

32、及時鐘等。 所能仿真的外圍設備在為目標程序選擇 CPU 時就被選定了。在目標硬件準備好之前,可用這種方式測試和調試嵌入式應用程序。 GDI 驅動模式:使用高級GDI 驅動設備連接目標硬件來進行調試,例如使用ULINK Debugger。(6)編譯配置選擇編譯器: µVision IDE 目前支持 RealView、Keil CARM 和 GNU 這三種編譯器,從菜單欄的Project->Manage->Component,Environment,Books或者直接單擊工具欄中的 圖標,打開其Folder/Extensions頁進入編譯器選擇界面。配置編譯器: 選擇好編譯器

33、后,單擊 圖標,打開Option for Target對話框的C/C+頁,出現編譯屬性配置頁面(這里主要說明RealView編譯器的編譯配置):匯編選項設置 打開Option for Target對話框的Asm頁,出現匯編屬性配置頁面.鏈接選項設置 鏈接器/定位器用于將目標模塊進行段合并,并對其定位,生成程序。既可通過命令行方式使用鏈接器,也可在µVision IDE 中使用鏈接器。單擊 圖標,打開 Option for Target 對話框的Linker頁,出現鏈接屬性配置頁面:輸出文件設置 在Project->Option for Target 的Output頁中配置輸出文

34、件,如圖 2-7所示。圖2-7 輸出文件配置頁5 編譯、鏈接與調試(1)工程的編譯鏈接完成工程的設置后,就可以對工程進行編譯鏈接了。用戶可以通過選擇主窗口 Project 菜單的Build target項或工具條 按鈕,編譯相應的文件或工程,同時將在輸出窗的Build 子窗口中輸出有關信息。如果在編譯鏈接過程中,出現任何錯誤,包括源文件語法錯誤和其它錯誤時,編譯鏈接操作立刻終止,并在輸出窗的 Build子窗口中提示錯誤,如果是語法錯誤,用戶可以通過鼠標左鍵雙擊錯誤提示行,來定位引起錯誤的源文件行。(2)加載調試µVision 3調試器提供了軟件仿真和GDI 驅動兩種調試模式,采用UL

35、INK2仿真器調試時,首先將集成環境與ULINK2仿真器連接,按照前面 3小節中的工程配置方法對要調試的工程進行配置后,點擊Flash-> Download菜單項可將目標文件下載到目標系統的指定存儲區中,文件下載后即可進行在線仿真調試。七、思考題利用µVision IDE完成一個匯編語言程序的設計需要哪些步驟?如何利用µVision IDE建立與配置一個工程?八、實驗報告實驗報告應包括實驗目的,主要內容,簡述實驗原理,方法和手段,包括對µVision IDE軟件知識與操作環境的預習、實驗過程、結果記錄和心得體會等。九、其它說明不可在上電時插拔串口,JTAG,

36、SD卡等外圍設備。實驗 3:匯編指令實驗實驗學時:2實驗類型:驗證實驗要求:必修一、實驗目的1、本實驗將介紹幾個簡單的基礎開發實例,既能幫助讀者掌握 MDK 嵌入式軟件的基本開發過程,同時也能讓讀者了解ARM 處理器的基本結構、指令集、存儲系統以及基本接口編程。2、初步學會使用µVision IDE for ARM 開發環境及ARM 軟件模擬器; 3、通過實驗掌握簡單ARM 匯編指令的使用方法。二、實驗內容Ø 1、熟悉開發環境的使用并使用 ldr/str,mov 等指令訪問寄存器或存儲單元Ø 2、使用add/sub/lsl/lsr/and/orr 等指令,完成基本

37、算術/邏輯運算。三、實驗原理、方法和手段ARM 處理器共有37個寄存器: l1. 31個通用寄存器,包括程序計數器(PC)。這些寄存器都是 32 位的; l2. 6個狀態寄存器。這些寄存器也是 32 位的,但是只是使用了其中的12 位。這里簡要介紹通用寄存器,關于狀態寄存器的介紹,請參照下一節。(1)ARM 通用寄存器 通用寄存器(R0-R15)可分為三類: l 不分組寄存器R0R7; l 分組寄存器 R8R14; l 程序計數器 PC。(2)存儲器格式 ARM 體系結構將存儲器看作是從零地址開始的字節的線性組合。字節零到字節三放置第一個字(WORD),字節四到字節七存儲第二個字,以此類推。(

38、3)REALVIEW 基礎知識 µVision3 IDE 集成了REALVIEW匯編器AARM、編譯器 CARM、鏈接器LARM,若采用GNU 編譯器則需要下載安裝相應的工具包。本書所有例程代碼均按照 REALVIEW的語法和規則來書寫。關于AARM、CARM 和LARM 的規范和具體使用,可參照 µVision3 IDE 所帶的幫助文檔,在此不再贅述。四、實驗組織運行要求采用集中授課形式。五、實驗條件硬件:PC 機; 軟件:MDK集成開發環境,Windows 98/2000/NT/XP。六、實驗步驟1. 新建工程 首先在KeilARMExamplesMini2410-IV

39、4.1_asm1 目錄下建立文件夾命名為 Asm1_a,運行µVision3 IDE 集成開發環境,選擇菜單項“Project -> New-> µVision Project” ,系統彈出一個對話框,按照圖4-1-3 所示,輸入相關內容。點擊“保存”按鈕,將創建一個新工程 asm_1a.Uv2。2. 為工程選擇 CPU 新建工程后,要為工程選擇 CPU,如圖3-1所示,在此選擇 SAMSUNG 的S3C2410A:圖3-1 選擇 CPU3. 添加啟動代碼在圖1中點“確定”后,會彈出一個對話框,問是否要添加啟動代碼。如圖1所示。由于本實驗是簡單的匯編實驗,因此不

40、需要啟動代碼,選擇否。4. 選擇開發工具 要為工程選擇開發工具,在 Project - Manage - Components,Environment and Books - Folder/Extensions對話框的 Folder/Extensions頁內選擇開發工具,如圖3-2所示。圖3-2 選擇開發工具從圖中可以看到,有三個開發工具可選,在此選擇RealView Compiler。 5. 建立源文件 點擊菜單項File - New,系統彈出一個新的、沒有標題的文本編輯窗,輸入光標位于窗口中第一行,按照實驗參考程序編輯輸入源文件代碼。編輯完后,保存文件 asm1_a.s。(源代碼可以參考D

41、ISK3_S3C241003-Codes01-MDKMini2410-IV4.1_asm1中的asm1_a.s文件) 6. 添加源文件單擊工程管理窗口中的相應右鍵菜單命令,選擇Add Files to,會彈出文件選擇對話框,在工程目錄下選擇剛才建立的源文件 asm1_a.s。如圖3-3所示。圖3-3 添加源文件7. 工程配置 把光盤 DISK3_S3C241003-Codes01-MDKMini2410-IV4.1_asm1Asm1_a 目 錄 中 的DebugINRam.ini 文件拷貝到KeilARMExamplesMini2410-IV4.1_asm1Asm1_a 目錄下。選擇菜單項Pr

42、oject->Option for Target,將彈出工程設置對話框,如圖3-4所示。對話框會因所選開發工具的不同而不同,在此僅對 Target選項頁、Linker 選項頁及 Debug 選項頁進行配置。Target選項頁的配置如圖3-4;Linker 選項頁的配置如圖3-5;Debug 選項頁的配置如圖3-6。需要注意,在 Debug 選項頁內需要一個初始化文件:DebugINRam.ini。此.INI 文件用于設置生成的.AXF 文件下載到目標中的位置,以及調試前的寄存器、內存的初始化等配置操作。它是由調試函數及調試命令組成調試命令腳本文件。圖3-4 基本配置Target圖3-5

43、基本配置Linker圖3-6 基本配置Debug8. 生成目標代碼 選擇菜單項Project - Build target或快捷鍵F7,生成目標代碼。在此過程中,若有錯誤,則進行修改,直至無錯誤。若無錯誤,則可進行下一步的調試。 9. 調試 選擇菜單項Debug - Start/Stop Debug Session 或快捷鍵 Ctrl+F5,即可進入調試模式。若沒有目標硬件,可以用µVision 3 IDE 中的軟件仿真器,做如下調試工作: l 打開memory 窗口,單步執行,觀察地址 0x30200000 中內容的變化; l 單步執行,觀察寄存器的變化; l 結合實驗內容和相關資

44、料,觀察程序運行,通過實驗加深理解 ARM 指令的使用; l 理解和掌握實驗后,完成實驗練習題。 實驗B 與上述步驟完全相同,只要把對應的 asm1_a.s文件改成asm1_b.s以及工程名即可。實驗參考程序 1. 實驗A 匯編程序: ;* ; NAME: asm1_a.s ; Author: TYW /WUHAN R&D Center,Embest ; Desc: ARM instruction examples ; History: 2007.5.1 ;* ;/*- */ ;/* constant define */ ;/*- -*/ x EQU 45 ; x=45 y EQU 6

45、4 ; y=64/ stack_top EQU 0x30200000 ; define the top address for stacks export Reset_Handler ;/*- -*/ ;/* code */ ;/*-*/ AREA text,CODE,READONLY export Reset_Handler ; code start */ ldr sp, =stack_top mov r0, #x ; put x value into R0 str r0, sp ; save the value of R0 into stacks mov r0, #y ; put y va

46、lue into R0 ldr r1, sp ; read the data from stack,and put it into R1 add r0, r0, r1 ; R0=R0+R1 str r0, sp stop b stop ; end the code cycling end 注意:語句export Reset_Handler前面必須有空格,具體原因請參考ARM指令格式文檔。 調試命令腳本文件: /* <<< Use Configuration !disalbe! Wizard in Context Menu >>> */ /* Name: De

47、bugINRam.ini */ FUNC void Setup (void) / <o> Program Entry Point, .AXF File download Address PC = 0x30000000; map 0x00000000,0x00200000 read write exec / Map this memory to be read、write and exec map 0x30000000,0x34000000 read write exec / Map this memeory to be read,write and exec Setup(); /

48、Setup for Running /g, main 2. 實驗B 匯編程序 ;#* ;# NAME: asm1_b.s ;# Author: WUHAN R&D Center, Embest ;# Desc: ARM instruction examples ;# History: TianYunFang 2007.05.12 ;#* ;/*- */ ;/* constant define */ ;/*- */ x EQU 45 ;/* x=45 */ y EQU 64 ;/* y=64 */ z EQU 87 ;/* z=87 */ stack_top EQU 0x30200000

49、 ;/* define the top address for stacks*/ export Reset_Handler ;/*- */ ;/* code */ ;/*- */ AREA text,CODE,READONLYReset_Handler ;/* code start */ mov r0, #x ;/* put x value into R0 */ mov r0, r0, lsl #8 ;/* R0 = R0 << 8 */ mov r1, #y ;/* put y value into R1 */ add r2, r0, r1, lsr #1 ;/* R2 = (R

50、1>>1) + R0 */ ldr sp, =stack_top str r2, sp mov r0, #z ;/* put z value into R0 */ and r0, r0, #0xFF ;/* get low 8 bit from R0 */ mov r1, #y ;/* put y value into R1 */ add r2, r0, r1, lsr #1 ;/* R2 = (R1>>1) + R0 */ ldr r0, sp ;/* put y value into R1 */ mov r1, #0x01 orr r0, r0, r1 mov r1

51、, R2 ;/* put y value into R1 */ add r2, r0, r1, lsr #1 ;/* R2 = (R1>>1) + R0 */ stop b stop ;/* end the code cycling*/ END調試命令腳本文件與實驗A 相同。七、思考題1編寫程序循環對 R4R11 進行累加 8 次賦值,R4R11 起始值為 18,每次加操作后把R4R11 的內容放入SP 棧中,SP 初始設置為0x800。最后把R4R11 用 LDMFD指令清空賦值為0。 2更改實驗A中X、Y 的值,觀察執行結果。 八、實驗報告實驗報告應包括實驗目的,主要內容,簡述實驗原理,方法和手段,包括對µVision IDE軟件知識與操作

溫馨提示

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

評論

0/150

提交評論