第一篇:ARM嵌入式基礎教程知識點總結
1、舉出書本中未提到的嵌入式在每種異常模式下都有一個對統:嵌入式μCLinux、Windows 系統的例子:紅綠燈控制,數字應的物理寄存器——程序狀態CE、VxWorks、μC/OS-II 空調,機頂盒、鍵盤、鼠標、掃保存寄存器SPSR。當異常出現
18、ARM是什么樣的公司?它是描儀 時,SPSR用于保存CPSR的狀態,一家微處理器行業的知名企業,2、嵌入式系統:嵌入到對象體以便異常返回后恢復異常發生該企業設計了大量高性能、廉系中的專用專用計算機應用系時的工作狀態。價、耗能低的RISC處理器。特統。特點:嵌入性、內含計算機、12、ARM7TDMI 產生異常的條點是只設計芯片,而不生產。它專用性。件?ARM的異常有哪幾種,各進將技術授權給世界上許多著名
3、嵌入式處理器:為完成特殊入何種工作模式?他們退出各的半導體、軟件和OEM廠商,并的應用而設計的特殊目的的處采用什么指令? 提供服務。理器。嵌入式處理器分為三類:答:當正常的程序被暫時中止,19、RISC是精簡指令集計算機的1)注重尺寸,能耗,價格2)關處理器就進入異常模式。1)復縮寫。CISC是復雜指令集計算機注性能3)關注全部四個需求。位異常(管理模式);2)未定的縮寫。集體分為四類:嵌入式微處理義指令異常(未定義模式);3)20、ARM處理器核:ARM7系列、器、嵌入式微控制器、嵌入式DSP 軟件中斷異常(管理模式);4)ARM9系列、ARM10系列、ARM1130、寄存器CPSR,SPSR的功能
各是什么?
答:1)CPSR包含條件碼標志、中斷禁止位、當前處理器模式以及其它狀態和控制信息。所有處理器模式下都可以訪問當前的程序狀態寄存器CPSR。2)在每種異常模式下都有一個對應的物理寄存器——程序狀態保存寄存器SPSR。當異常出現時,SPSR用于保存 CPSR的狀態,以便異常返回后恢復異常發生時的工作狀態。
31、LPC2000系列ARM7微控制器具有哪兩種低耗模式?如何降處理器、嵌入式片上系統
4、嵌入式操作系統:是操作系統的一種類型,是在傳統操作系統的基礎上加入符合嵌入式系統要求的發展而來的。首先,嵌入式實時操作系統提高了系統的可靠性。其次,提高了開發效率,縮短了開發周期。再次,嵌入式實時操作系統充分發揮了 32 位 CPU 的多任務潛力。
5、ARM7TDMI中的T高密度 16 位的Thumb指令集擴展、D支持片上調試、M64 位乘法指令、Embedded ICE 硬件仿真功能模塊
6、ARM7TDMI采用三級流水線(取指 譯碼 執行)。存儲器編址方式:使用了馮·諾依曼結構,指令和數據共用一條32 位總線。
7、處理器模式指的是處理器在執行程序時在不同時刻所處的不同狀態,處理器狀態指的是處理器當前所執行的指令集。
8、ARM的處理器模式:用戶模式(usr)-正常程序執行的模式。快中斷模式(fiq)-FIQ異常響應時進入此模式。中斷模式(irq)-IRQ異常響應時進入此模式。、管理模式(svc)-系統復位和軟件中斷響應時進入此模式。中止模式(abt)-用于虛擬存儲及存儲保護。未定義模式(und)-未定義指令異常響應時進入此模式。系統模式(sys)-與用戶類似,但有直接切換到其它模式等特權。狀態:ARM狀態,32 位,這種狀態下執行的是字方式的ARM 指令。Thumb狀態,16 位,這種狀態下執行半字方式的 Thumb 指令。
9、堆棧指針R13(SP):用于保存堆棧的出入口地址,保存待使用寄存器的內容。鏈接寄存器R14(LR):當使用BL指令調用子程序時返回地址將自動存入R14中;當發生異常時,將R14對應的異常模式版本設置為異常返回地址,其他時候為通用寄存器。程序計數器R15(PC):R15總是指向正在“取值”的指令。
10、ARM狀態和Thumb狀態的寄存器之間的關系:1)R0-R7相同;2)CPSR相同,Thumb狀態無SPSR。Thumb狀態下不能更新CPSR中的ALU標志位。Thumb指令對R8-R15寄存器訪問受限。
11、ARM7TDMI(-S)尋址方式: 1)寄存器尋址2)立即尋址3)寄存器移位尋址4)寄存器間接尋址5)基址尋址6)多寄存器尋址7)堆棧尋址8).相對尋址.寄存器CPSR,SPSR的功能各是什么?答:1)CPSR包含條件碼標志、中斷禁止位、當前處理器模式以及其它狀態和控制信息。所有處理器模式下都可以訪問當前的程序狀態寄存器CPSR。2)指令預取中止異常(中止模式);系列、Intel的XScale系列和5)數據訪問中止(中止模式);MPCore系列。6)快速中斷請求(FIQ模式);
21、LPC2000系列器件有幾種常7)外部中斷請求(IRQ模式)。見的封裝形式和其封裝特點?異常返回指令:1)SWI,未定義常見的封裝有64腳封裝,144腳的返回:MOVS PC,R14;2)IRQ,FIQ,封裝,功耗低,有多個32位定預取中止的返回:SUBS 時器,多達9個外部中斷,16KPC,R14,#4;3)數據中止返回并字節靜態RAM,1/128/256k字節重新存取:SUBS PC,R14,#8異常片Flash存儲器,128為寬度接中斷的優先級:復位(最高優先口加速器,4路10位ADC或8路級)--> 數據異常中止--->FIQ 10位ADC(64腳和144腳封裝),---> IRQ--->預取指異常中止46或76~112個GPIO(64腳和--->SWI---->未定義指令(包括144腳封裝)。缺協處理器)。
22、簡要說明一下LPC2000系列
13、小端存儲器組織是較高的有器件片內存儲器的特點?片內效字節存放在較高的存儲器地存儲器分為片內Flash和片內靜址,較低的有效字節存放在較低態RAM。片內Flash通過128位的存儲器地址(同同小)。大端寬度的總線與ARM內核相連,具存儲器組織是較高的有效字節有很高的速度,特有的存儲器加存放在較低的存儲器地址,較低速功能,可以將程序直接放在的有效字節存放在較高的存儲Flash上運行。SRAM支持8位、器地址(正反大)。16位和32位的讀寫訪問。
14、描述一下LPC2210的PO.14、23、存儲器重映射是為了實現引P1.20、P1.26、BOOT1和BOOT0導塊和異常向量表地址的固定。引腳在芯片復位時分別有什么重映射引導塊,有利于用戶調用作用?并簡單說明LPC2000系列其中的某些程序,增加代碼的可ARM7微控制器的復位處理流程。移植性;異常向量表重映射為了 P0.14的低電平強制片內引能讓ARM內核通過訪問0x0000~導裝載程序復位后控制器件的0x003F地址訪問到其他存儲區操作,即進入ISP 狀態。P1.20域的向量表。的低電平使 P1.25~P1.16復
24、LPC2000系列ARM7微控制器位后用作跟蹤端口。P1.26的對向量表有什么要求(向量表中低電平使 P1.31~P1.26復位的保留字)? 后用作一個調試端口。當RESET 向量表中有一個空隙以確保軟為低時,BOOT0 與BOOT1 一同控件能與不同的ARM結構兼容;表制引導和內部操作。引腳的內部中異常入口地址處放置的是跳上拉確保了引腳未連接時呈現轉指令,已轉向中斷子程序。FIQ高電平。外部復位輸入:當該引地址要放在向量表的最后。腳為低電平時,器件復位,I/O25、FLASH是128位寬度的接口,口和外圍功能進入默認狀態,處通過存儲器加速模塊提高其訪理器從地址0 開始執行程序。復問速度。位信號是具有遲滯作用的TTL
26、FIQ、IRQ有什么不同?向量電平。IRQ和非向量IRQ有什么不同?
15、LDR/STR指令的偏移形式有FIQ是快速中斷,具有最高優先哪4種?LDRB和LDRSB有何區級,中斷處理轉入FIQ模式;IRQ別? 是普通中斷,優先級低于FIQ,1)零偏移;2)前索引偏移;3)中斷處理轉入IRQ模式。向量IRQ程序相對偏移;4)后索引偏移。支持16個向量IRQ中斷,16個LDRB:讀出指定地址的數據并存優先級,能為每個中斷源設置服入指定寄存器,LDRSB:讀出指務程序地址;非向量IRQ支持一定地址的數據,并高24位用符個非向量IRQ中斷,所有中斷都號位擴展,再存入指定寄存器。共用一個相同的服務程序入口
16、ARM7TDMI指令集包括1)ARM地址。指令集:指令32位,效率高,27、LPC2000系列芯片共有共有代碼密度低,所有ARM指令都是4個外接中斷輸入,它們既可以可以有條件執行的。Thumb指令是IFQ也可以是IRQ。集:指令16位,代碼密度高,28、LPC2000系列芯片常用的開Thumb指令僅有一條指令具備條發工具:ADS、IAR、JATG、ISP 件執行功能保持ARM的大多數性
29、嵌入式處理器的最小系統是能上的優勢,是ARM指令集的子指提供嵌入式處理器運行所必集。須的條件的電路與嵌入式處理
17、廣泛使用的三種類型的操作器共同構成的系統。嵌入式處理系統:多道批處理操作系統、分器的最小系統的基本電路包含:時操作系統以及實時操作系統。時鐘系統、供電系統、復位及其常見的4種嵌入式實時操作系配置系統、存儲器系統(可選)、調試測試系統(可選)。
低系統的功耗?空閑和掉電。目前大多數電路采用CMOS工藝,靜態功耗很小,可以忽略,起主要作用的是動態功耗,因此降低功耗主要從降低動態功耗入手。低功耗設計技術:低功耗器件、低功耗電路形式、降低或動態改變處理器的時鐘頻率、降低持續工作電流、減少處理器工作時間、采用快速算法。
32、內部寄存器特點:ARM7TDMI處理器內部有37個用戶可見的寄存器,31個通用32位寄存器,6個狀態寄存器。這些寄存器不能在同一時間被訪問,究竟何時才能訪問上述寄存器完全取決于處理器狀態和模式。
33、用戶模式CPSR模式位的值:1000034、系統模式CPSR模式位的值:1111134、列舉異常向量的向量地址。復位 0x00000000未定義 0x00000004軟件中斷 0x00000008
中止 0x0000000c中止(數據)0x00000010保留 0x00000014IRQ 0x00000018FIQ0x0000001c35、異常優先級順序:復位數據中止FIQIRQ中止未定義 SWI36、最大中斷延時27個周期,最小中斷延時4個周期 N負標志位、運算結果的第31位值,記錄標志設置的結果Z零標志位、如果標志設置操作的結果為0,則置位。C進位標志位、記錄無符號加法溢出,減法無錯位,循環移位。V溢出標志位、記錄標志設置操作的有符號溢出。控制位:I、F、T、M【4:0】中斷禁止位:I、F(I=1:禁止IRQ中斷F=0:禁止FIQ中斷)標志位:T反映處理器的運行狀態。T=1時,程序運行Thumb狀態,否則運行于ARM狀態。模式控制位:M【4:0】決定了處理器的運行模式
總線就是各種信號線的集合,是計算機各部件之間傳送數據、地址和控制信息的公共
路。總線的主要參數有:總線的帶寬、總線的位寬、總線的工作時鐘頻率。
預分頻功能:通過設置某個常量來控制pclk(定時器的時鐘源)的分頻。匹配功能:當定時器值等于預設的匹配值時,從引腳輸出特定的信號。捕獲功能:如果輸入信號滿足設定的要求,將觸發捕獲動作,將定時器的計數值保存到捕獲寄存器中。
。除了用戶模式外,其他模式均可視為特權模式。后五個為異常模式。
第二篇:實習總結-嵌入式ARM
實訓總結
班級 卓越1301姓名***
通過這段時間的學習使我學到了很多知識,并且了解到ARM的應用以及對開發板的應用,為以后的學習奠定了一定的基礎。
嵌入式系統一般定義為以應用為中心、以計算機技術為基礎,軟硬件可裁剪,應用系統對功能、可靠性、成本、體積、功耗和應用環境有特殊要求的專用計算機系統。是將應用程序、操作系統和計算機硬件集成在一起的系統這是從技術角度。從系統角度上是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統。
廣義上講,凡是帶有微處理器的專用軟硬件系統都可稱為嵌入式系統。如各類單片機和DSP系統。這些系統在完成較為單一的專業功能時具有簡潔高效的特點。但由于他們沒有操作系統,管理系統硬件核軟件的能力有限,在實現復雜多任務功能時,往往困難重重,甚至無法實現。從狹義上講,我們更加強調那些使用嵌入式微處理器構成獨立系統,具有自己操作系統,具有特定功能,用于特定場合的嵌入式系統。
嵌入式的應用也比較廣泛涉及軍事國防、工業控制、消費電子和網絡。在家用方面更是數字電視、信息家電、智能玩具、手持通訊、存儲設備的核心。
在ARM指令集中了解到ARM的尋址方式以及它的的特性,具有高效、快速的特點,還有Thumb指令集具有靈活、小巧的特點。
在這次實訓中做了兩個項目,一個是LED燈,實現LED燈的點亮是比較簡單的,通過查找手冊可以很快的了解到要使用的寄存器和方法,另一個項目是DS18B20這個比較復雜,除了要掌握對寄存器的使用,還要對了解對串口的初始化,讀寫字節等等。
感謝這次實訓,通過這次的實訓項目,使我大體了解制作項目的步驟,了解了嵌入式技術的掌握是需要一個過程的。實事求是的說,嵌入式技術的全面掌握是有相當難度的,通過積累和動手總會有收獲的,從實驗中也明白了一個大的項目并不是一個人可以完成的,團隊協作很重要。
姓名:***
年級:卓越1301
2014-7-5
第三篇:哈工大ARM嵌入式系統考試知識點總結
接VIC部分
一旦產生IRQ中斷,微控制器切換到IRQ模式,并跳轉到向量表0x0018地址執行指令。一旦產生FIQ中斷,微控制器切換到FIQ模式,并跳轉到向量表0x001C地址執行指令,然后跳轉到FIQ_Handler代碼段。
第四篇:ARM嵌入式技術復習總結
第一章 1.嵌入式系統定義/概念:嵌入式系統就是嵌入到對象體中的專用計算機系統。三要素:嵌入、專用、計算機。嵌入性:嵌入到對象體系中,有對象環境要求,專用性:軟、硬件按對象要求裁減,計算機:實現對象的智能化功能。廣義的講,一個嵌入式系統就是一個具有特定功能或用途的計算機軟硬件集合體,即以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用對功能。可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式系統發展的最高形式——片上系統(SOC)2.嵌入式系統的特性:a.只執行特定功能;b.以微控制器、外圍器件為中心,系統構成可大可小;c.有嚴格的時序性和穩定性要求;d.自動操作循環,等待中斷控制;e.程序被燒寫在存儲芯片中。(開發時應注意的a.嵌入式系統是面向具體應用的產品b.嵌入式軟件特征:具有實時性,高質量、高可靠,程序固化c.需要軟硬件開發工具和系統軟件d.需要應用專家參與開發e.嵌入式系統分散而不可壟斷)3.嵌入式系統的分類:a.按表現形式分(硬件范疇):芯片級嵌入(含程序或算法的處理器)、模塊級嵌入(系統中的某個核心模塊)、系統級嵌入(完整系統并有嵌入軟件)b.按實時性要求分(軟件范疇):非實時系統(PDA)、實時系統(軟實時系統:消費類產品。硬實時系統:工業和軍工系統)4.嵌入式微處理器(發展趨勢:經濟性、微型化、智能化)主要分類: 微控制器(MCU)(51單片機)、微處理器(MPU)(ARM、PowerPC)、數字信號處理器(DSP)(一般用在快速執行算法,做控制比較困難)、混合處理器和片上系統(SOC)(結構簡潔,體積小、功耗低,可靠性高,設計生產效率高。Smart XA)、可編程片上系統(SOPC)5.嵌入式系統組成:粗略劃分:嵌入式處理器、外圍設備、嵌入式操作系統(可選)、嵌入式應用軟件。稍細劃分:嵌入式處理器、外圍設備、驅動程序、嵌入式操作系統、應用接口、嵌入式應用軟件。6.嵌入式操作系統簡介:a.嵌入式操作系統是支持嵌入式系統的操作系統,它是嵌入式應用軟件的基礎和開發平臺。b.功能:進程調度、內存管理、設備管理、文件管理、中斷管理、系統功能接口(API調用,如網絡功能)、設備驅動。c.特點:系統可裁減、可配置,系統具有實時性,系統穩定、可靠。d.實時系統的定義:能夠對外部事件做出及時響應的系統,響應時間要有保證。硬實時系統:對系統響應時間有嚴格的要求,如果系統響應時間不能滿足,就會引起系統崩潰或致命的錯誤。軟實時系統:對系統響應時間有要求,但是如果系統響應時間不能滿足,它并不會導致系統出現致命的錯誤或崩潰,只是降低系統的吞吐量。e.幾種主流的嵌入式操作系統:μC/OS-II:教學的免費、面向中小型嵌入式系統應用。Vxworks:具有可靠、實時、可裁減特性。WinCE:它是微軟針對個人電腦以外的電腦產品所研發的嵌入式操作系統。Linux/μCLinux:免費、源碼開放的操作系統,μclinux面向沒有MMU的硬件平臺。PalmOS :具有開放的操作系統應用程序接口(API),可讓用戶靈活方便地定制操作系統。
第二章1.ARM體系的特點:a.低功耗、低成本、高性能(3/5級流水線)。b.采用RISC體系結構。c.使用大量的寄存器(37個寄存器31個通用6個狀態)d.高效的指令系統(Thumb指令與等價的ARM代碼相比較可節省30~40%以上的存儲空間)e.在保證高性能的前提下盡量縮小芯片面積、降低功耗;所有的指令都可以根據前面的執行結果決定是否被執行。2.ARM7采用3級流水線(是把一個重復的過程分解為若干個子過程,每個子過程可以與其他子過程同時進行):取指(從程序存儲器中取指令,放入指令流水線,占用存儲器訪問操作)、譯碼(指令譯碼,占用譯碼邏輯)、執行(執行指令/讀寫reg,占用ALU及數據路徑)。一條指令有3個時鐘周期的執行時間,但吞吐量是每個周期1條指令。PC 指向處于讀取級的指令地址,而不是處于執行級的指令地址PC=當前執行指令地址+8。比較:ARM9是5級流水線(取指、譯碼、執行、存儲器、寫),哈佛架構,擁有獨立的指令和數據總線;指令和數據的讀取可以在同一周期進行。3級流水的ARM7內核是指令和數據總線復用的馮.諾依曼架構,指令和數據的讀取不能在同一周期進行;5級流水線設計把寄存器讀取、邏輯運算、結果回寫分散在不同的流水當中,每一級流水的操作簡潔,提升了處理器的主頻。3.ARM微處理器的工作狀態與模式:兩種工作狀態:ARM狀態,此時處理器執行32位的字對齊的ARM指令;Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。狀態切換:ARM?THUMB:當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法;當處理器處于Thumb狀態時發生異常,則異常處理返回時,自動切換到Thumb狀態。THUMB?ARM:當操作數寄存器的狀態位為0時,執行BX指令;在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可使處理器切換到ARM狀態。模式:用戶模式:ARM處理器正常的程序執行狀態,大部分任務執行在這種模式;快速中斷模式:當一個高優先級中斷產生時將會進入這種模式,用于高速數據傳輸或通道處理;外部中斷模式:當一個低優先級中斷產生時將會進入這種模式,用于通用的中斷處理;管理模式:當復位或軟中斷指令執行時將會進入這種模式,供操作系統使用的一種保護模式;中止模式:當存取異常時將會進入這種模式,用于虛擬存儲及存儲保護;未定義模式:當執行未定義指令時會進入這種模式,軟件仿真硬件協處理器;系統模式:供需要訪問系統資源的操作系統任務使用,運行具有特權的操作系統任務。模式特點:1)用戶模式特點:應用程序不能夠訪問受操作系統保護的系統資源;應用程序不能進行處理器模式的切換。2)系統模式特點:不屬于異常模式,不是通過異常進入的。系統模式屬于特權模式,可以訪問所有的系統資源,也可以直接進行模式的切換。它主要供操作系統使用。3)特權模式:除用戶模式之外的工作模式,特點:應用程序可以訪問所有的系統資源;可以任意地進行處理器模式的切換 4)異常模式:除用戶模式、系統模式之外的五種模式,特點:以各自的中斷或異常方式進入,并且處理各自的中斷或異常。模式切換:軟件控制進行切換(在特權模式下通過改變CPSR中的運行模式位[4:0]);通過外部中斷和異常進行切換。4.數據類型: 8位、16位(半字對齊)、32位(字對齊)的有符號和無符號型。5.存儲字數據:兩種方法(大端、小端格式)。大端格式:字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中;小端格式:與大端存儲格式相反。缺省設置為小端格式。6.ARM狀態下寄存器:程序計數器PC(R15)(ARM狀態下,位[1:0]為0,位[31:2]用于保存PC;Thumb狀態下,位[0]為0,位[31:1]用于保存PC)。R13常用作堆棧指針(SP)。R14也稱作子程序連接寄存器或連接寄存器LR。當執行BL子程序調用指令時,可以從R14中得到R15的備份。寄存器R16用作CPSR(當前程序狀態寄存器)。7.ARM/Thumb下寄存器區別:Thumb狀態下的寄存器集是ARM狀態下寄存器集的一個子集,Thumb和ARM狀態下的R0~R7、CPSR和所有的SPSR是相同的;Thumb狀態下的SP對應于ARM狀態下的R13;Thumb狀態下的LR對應于R14;Thumb狀態下的PC對應于R15。8.異常:ARM有7種異常:復位、未定義指令、軟件中斷、指令預取中止、數據中止、IRQ、FIQ。異常響應:復位異常立即中止當前指令。其他:保存返回地址(將引起異常指令的下一條指令的地址保存到新的異常模式下的R14);保存當前狀態寄存器CPSR的內容(將CPSR的內容保存到將要執行的異常中斷對應的SPSR中);設置當前狀態寄存器CPSR中的相應位(設置控制位使進入響應執行模式;禁止FIQ、IRQ);轉去執行中斷處理程序(取相應的中斷向量給程序計數器PC)。返回:將返回地址裝入PC ;恢復CPSR的值 ;清除中斷屏蔽位。9.異常向量地址:復位-0x00000000(管理模式);未定義-0x00000004(未定義);軟件中斷-08(管理);中止(預取指令)-0c(中止);中止(數據)-10(中止);保留-0x00000014;IRQ-18(IRQ);FIQ-1C(FIQ)。10.異常優先級:復位>數據中止>FIQ>IRQ>預取指令中止>未定義中止、SWI
第五章1.編寫應用程序都要用到的文件:a.INC目錄下的文件: Def.h(基本數據類型重定義頭文件U32,S16等)Option.h(是硬件系統重要設置頭文件,修改系統的工作頻率,總線寬度,一些重要地址的值)2410addr.h(是2410的寄存器的地址宏定義頭文件)2410lib.h(調試時常用函數,還有一些其它的常用函數的頭文件)b.SRC目錄下的文件: 2410init.s 是2410初始化啟動程序,由匯編語言寫成2.ARM的啟動過程—系統的初始化:包括兩個級別的操作:系統運行環境初始化、應用程序初始化。a.運行環境初始化(對于嵌入式應用系統來說,由于沒有操作系統的支持,存放在ROM的代碼必須進行所有的初始化工作):①設置初始入口點(初始入口點是映象文件運行時的入口點,每個映像文件只有一個唯一的初始入口點,它保存在ELF頭文件中。初始入口點必須位于映像文件的可執行區域;包含初始入口點的可執行域不能被覆蓋,它的加載時地址和運行時地址必須是相同的)②設置中斷向量表(如果系統運行時,地址0x00處為RAM,則系統初始化時必須重建異常中斷向量表)③初始化存儲系統④初始化數據棧指針⑤初始化關鍵的IO設備⑥設置中斷昔日需要的RAM變量⑦使能異常中斷(通過清除CPSR寄存器的中斷禁止位實現)⑧切換處理器模式(系統還處于特權模式,如果下面要運行的應用程序是在用戶模式下運行,就需要將處理器切換到用戶模式。)⑨切換程序狀態(所有的RAM內核都是從ARM狀態開始執行的)b.應用程序初始化①將已經初始化的數據搬運到可寫的數據區(這部分數據就是映像文件中的RW屬性的數據)②在可寫存儲區建立ZI屬性的可寫數據區3.ARM的啟動過程—初始化程序分析:①定義程序入口地址(由AREA偽操作定義: AREA Init,CODE,READONLYENTRY)②建立異常向量以及中斷處理:1)建立中斷向量入口2)建立中斷服務程序入口地址表3)看門狗與中斷禁止(當系統復位后,看門狗與中斷要被首先禁止與被初始化,否則,當看門狗溢出產生的系統復位,引起中斷,其它中斷源產生中斷時,CPU會進入一個未知的狀態,出現程序跑飛等現象)4)系統時鐘初始化5)電源低功耗模式6)內存控制器初始化(接口時序優化)7)模式的堆棧初始化地址(對程序中需要用到的每一種模式都要給SP定義一個堆棧地址)8)初始化用戶執行環境(應用程序執行環境的初始化,就是完成必要的從ROM到RAM的數據傳輸和內容清零)9)呼叫主應用程序(IMPORT main或B main)4.ARM映像文件:arm映像文件其實就是可執行文件,包括bin或hex兩種格式,可以直接燒到rom里執行。映像文件一般由域組成。域最多由三個輸出段組成(RO、RW、ZI)組成,輸出段又由輸入段(代碼和數據)組成。5.中斷(☆注:異常包含5種模式:管理(復位、軟件中斷SWI)、中止(指令預取中止、數據中止)、未定義、快速中斷FIQ、外部中斷IRQ。中斷分兩類:SWI、硬件(FIQ、IRQ)。異常包含中斷,中斷都屬于異常)中斷仲裁:決定中斷的優先級,當中斷控制器接收到多個中斷請求時,其內的優先級仲裁器裁決后向CPU發出優先級最高的中斷請求信號或快速中斷請求信號,中斷系統有6個分仲裁器和1個總仲裁器,每一個仲裁器可以處理6路中斷。在編寫中斷服務程序時需要滿足如下要求:(1)不能向中斷服務程序傳遞參數;(2)中斷服務程序沒有返回值;(3)中斷服務程序應要盡可能短,來減少中斷服務程序的處理時間,保證實時系統的性能。使用中斷的步驟:(1)在使用中斷前先設置好相應模式下的堆棧。如當發生快速中斷FIQ 時,CPU進入“快中斷模式”,這時使用“快中斷模式”下的堆棧。(2)對于“Request sources”中的中斷,將INTSUBMSK 寄存器中相應位設為0。(3)將INTMSK 寄存器中相應位設為O。(4)確定使用的方式:是FIQ 還是IRQ。如果是FIQ,則在INTMOD 寄存器設置相應位為1。如果是IRQ,則在PRIORITY 寄存器中設置優先
級(5)準備好中斷處理函數:①中斷向量:在中斷向量設置好當FIQ 或IRQ 被觸發時的跳轉函數。②對于IRQ,在跳轉函數中讀取INTPND 寄存器或INTOFFSET 寄存器的值來確定中斷源,然后調用具體的處理函數。③對于FIQ,因為只有一個中斷可以設為FIQ,無須判斷中斷源。④中斷處理函數進入和返回。(6)設置CPSR 寄存器中的F位對于FIQ,或I位對于IRQ,其值為0時,表示開中斷。
第六章1.Nor Flash與Nand Flash比較:Nor flash:讀速度高,而擦、寫速度低,容量小,價格高。Nand flash:讀速度不如Nor flash,但擦、寫速度高,容量大,價格低。有取代磁盤的趨勢。現在不少用戶從Nand flash啟動和引導系統(開始 4KB代碼,BANK0中,自動復制到內部SRAM中,利用這4KB的代碼把更多的代碼從Nand flash中讀到SDRAM中),而在SDRAM上執行主程序代碼。2.串口介紹:(1)UART(通用異步串行口):有三個獨立的異步串行I/O 端口,每個串口(11個專用寄存器,共39個)都可以在中斷和DMA 兩種模式下進行收發。UART支持的最高波特率達230.4kbps。每個UART 包含:波特率發生器(以PCLK或UCLK為時鐘源)、接收器、發送器和控制單元。發送器和接收器各包含1個16 字節的FIFO 寄存器和移位寄存器。工作原理:(FIFO模式)當發送數據的時候,數據先寫到FIFO 然后拷貝到發送移位寄存器,然后從數據輸出端口(TxDn)依次被移位輸出。被接收的數據也同樣從接收端口(RxDn)移位輸入到移位寄存器,然后拷貝到FIFO 中。使用FIFO與不使用FIFO的比較:前者是通過對FIFO狀態寄存器UFSTATn的查詢,確定進行收發,后者是通過對收/發狀態寄存器UTRSTATn的查詢,確定進行收發。中斷或DMA請求: 7種中斷請求事件是:溢出錯誤、奇偶校驗錯誤、幀格式錯誤、傳輸中斷信號、接收緩沖器數據就緒、發送緩沖器空、發送移位器空。分成3類:錯誤中斷請求、接收中斷請求、發送中斷請求。RS232:全雙工,采用負邏輯,單端傳送,適合短距離傳輸;RS422:單工差分,兩條線相對電壓傳送,至少需要四條線傳輸;RS485:半雙工,單工差分,差分異步傳輸,適合遠距離傳輸。(2)USB接口(通用串行總線)(49個reg):主要用于PC與外圍設備互連,數據傳輸速度為:低速1.5Mb/s,全速12Mb/s,高速480Mb/s。主要由5部分組成:USB芯片及協議程序(固件)、控制器(控制USB芯片)、控制器程序、USB設備驅動程序、USB設備。USB總線主要特點:USB端口不區分設備,即插即用、可熱插拔,傳輸速度高,易擴展、可擴展到127個USB設備,對設備提供電源,成本低等。(3)I2C串行總線接口:(4個reg)總線信號為兩線,一個能夠雙向傳輸的數據線SDA、另一個能夠雙向傳輸的時鐘線SCL。是信號線
2最少的串行總線。總線的特點:a.有一個IC總線接口。b.I2C總線的速度:可以標準速度傳輸(100kb/s),也可以高速傳輸(高達400kb/s)。c.可以查詢方式
和中斷方式工作。d.可以主設備身份傳輸,也可以從設備身份傳輸,因此共有4種操作模式(主機、從機發送、接收)。主要有5部分構成:數據收發寄存器、數據移位寄存器、地址寄存器、時鐘發生器、控制邏輯等部分。系統要求:a.各個節點設備必須具有I2C接口功能;b.各個節點設備必須共地;c.兩個信號線必須接上拉電阻。(4)I2S串行總線接口:a.1通道音頻I2S總線接口,可基于 DMA方式工作;b.串行,每通道 8/16 位數據傳輸;c.發送和接收具備 128 字節(64 字節加64 字節)FIFO;d.支持 IIS 格式和 MSB-justified數據格式。(5)網絡接口:支持8位、16位的微處理器,可以工作在I/0方式或Memory方式。片內集成了雙工SA總線接口,可以直接和有雙工SA總線的微處理器系統無縫連接。(6)JTAG接口:硬件仿真器可以通過JTAG接口對開發板進行在線仿真調試,也可以使用sjf2410等燒寫工具通過JTAG接口對其擴展的Flash存儲器進行編程。(7)SPI 接口:a.兼容 2 通道 SPI 協議 2.11版;b.發送和接收具有 2×8 位的22移位寄存器;c.可以基于 DMA或中斷模式工作3.串口總結:芯片級(IC、IS、SPI、USB),系統級(網絡接口、JTAG接口、USB、UAR T :RS232/485/422)。URAT
傳輸距離:RS232<485(差分)<光纜。4.看門狗:看門狗是一種電路,具有監視并恢復程序正常運行的功能,是一個定時器電路。基本原理:設一系統程序完整運行一周期的時間是Tp,看門狗的定時周期為Ti,要求Ti>Tp。在程序運行一周期后,修改定時器的計數值,只要程序正常運行,定時器就不會溢出。若由于干擾等原因使系統不能在Tp 時刻修改定時器的計數值,定時器將在Ti 時刻溢出,引發系統復位,使系統得以重新運行,從而起到監控作用。功能:定時器功能、復位功能。構成:時鐘、看門狗計時器、看門狗數據寄存器、復位信號發生器、控制邏輯等。5.補充:(1)I/O端口寄存器:引腳配置寄存器、數據reg、引腳上拉reg、保留reg。(2)LCD(液晶顯示器):是一種數字顯示技術,可以通過液晶和彩色過濾器過濾光源,在平面面板上產生圖象。組成:LCD顯示屏、顯示控制器、緩沖存儲器。
第七章1.Linux系統及特點:Linux是一套免費使用和自由傳播的類Unix操作系統。特點:自由軟件,開放源代碼;真正的多用戶、多任務操作系統;可靈活裁剪配置;支持多種硬件平臺;提供強大的管理功能;完全符合POSIX標準;具有豐富的圖形界面;具有強大的網絡功能。2.Linux組成:①Linux內核,功能是:進程管理(負責創建和撤銷進程以及處理他們和外部世界的連接)、內存管理(內核在有限的可用資源上為每個進程都創建了一個虛擬尋址空間)、文件系統(內核在沒有結構硬件上構造結構化的文件系統)、設備控制(內核必須為系統中的每件外設嵌入相應的驅動程序)、網絡功能(處理路由和地址解析問題)。②Linux Shell:常用的有:Bourne Shell(sh,最初始的Shell,并且在每種Unix上都可以使用),C-Shelll(csh),Korn Shell(ksh),Bourne Again Shell(bash,大多數Linux系統的默認Shell)。③Linux文件結構:文件結構是文件存放在磁盤等存儲設備上的組織方法,主要體現在對文件和目錄的組織上,目錄提供了管理文件的一個方便而有效的途徑。Linux目錄采用多級樹形結構,用戶可以瀏覽整個系統,可以進入任何一個已授權進入的目錄,訪問那里的文件,目錄樹只有一個,不管OS管理幾個磁盤分區。④Linux實用工具,分三類:編輯器:用于編輯文件;過濾器:用于接收數據并過濾數據;交互程序:允許用戶發送信息或接收來自其他用戶的信息。
第八章1.交叉編譯環境的軟件工具1)Binutils:Binutils是一組針對目標系統的二進制開發工具,包括連接器、匯編器和其他用于目標文件和檔案的工具。2)GCC:編譯器,gcc不但能夠支持C/C++語言的編譯,而且能夠支持FORTRAN JAVA ADA等編程語言。3)Glibc:Glibc庫是提供系統調用和基本函數的C庫,可以編譯生成靜態庫和動態庫。4)GDB:GDB可以調試C和C++語言程序,功能:a.啟動被調試程序。b.讓被調試的程序在指定的位置停住。c.當程序被停住時,可以檢查程序狀態(如變量值)。5)Crosstool:實際上是一個腳本,用于編譯和測試大多數體系結構的各gcc和glibc的版本組合。2.Linux開發環境組建:可分別建立以LINUX為操作系統的開發環境或者在Windows下安裝模擬Linux環境的軟件。幾種組建方案:① Windows+ Linux +目標系統(可以解決開發環境問題,但同時用兩個操作系統,來回切換,浪費時間)、②Windows+cygwin+目標系統(cygwin是運行于windows下的linux模擬運行環境,但是在使用某些特殊功能時,需要添加一些補丁)、③Windows+虛擬機(Linux)+目標系統(在不破壞原有操作系統的基礎上,虛擬一臺‘真實’計算機,在它上面安裝linux和操作真實的linux一樣)、④Windows+Linux服務器 +目標系統(只需要一臺linux服務器即可,對客戶機和服務器的硬件要求沒什么特別需求)。3.用戶、Shell、Linux之間關系:Shell作為操作系統的外殼,為用戶提供使用操作系統的接口。它是命令語言、命令解釋程序及程序設計語言的統稱。Shell是用戶和操作系統之間最主要接口。通過Shell,可以同時在后臺運行多個應用程序,并且在把需要與用戶交互的程序放在前臺運行。4.makefile文件的作用:使用make 工具,可以將大型的開發項目分解成為多個易于管理的模塊,make在執行時,需要一個命名為Makefile的文件。Makefile文件描述了整個工程的編譯,連接等規則。Makefile說明了組成程序的各模塊間的相互關系及更新模塊時必須進行的動作,make按照這些說明自動地維護這些模塊。在makefile(Makefile)中,自頂向下說明各模塊之間的依賴關系及實現方法。
第九章1.BootLoader概念:系統上電之后,需要一段程序來進行初始化,如果它能將操作系統內核(從本地Flash或通過網絡)復制到內存中運行,就稱這段程序為Bootloader。其作用是,在系統上電時開始執行,初始化硬件設備、準備好軟件環境,最后調用操作系統內核。2.兩種操作模式:①啟動加載模式,即Bootloader從目標機上的某個固態存儲設備上將操作系統加載到RAM中運行,整個過程并沒有用戶的介入;②下載模式,目標機上的Bootloader將通過串口連接或網絡連接等通信手段從主機下載文件,這種模式通常在第一次安裝內核與根文件系統時被使用,以后的系統更新也會使用Bootloader的這種工作模式。3.啟動方式:①網絡啟動方式,使用這種啟動方式之前,需要把Bootloader安裝到板上的EPROM或者Flash中。Bootloader通過以太網接口遠程下載Linux內核映像或者文件系統。②磁盤啟動方式,傳統的Linux系統運行在臺式機或者服務器上,這些計算機一般都使用BIOS引導,并且使用磁盤作為存儲介質,在硬盤的主引導區,需要一個Bootloader可以從磁盤文件系統中把操作系統引導起來。③Flash啟動方式,Bootloader的入口位于處理器上電執行第一條指令的位置,Bootloader引導Linux內核,就是要把內核映像解壓到RAM中去,然后跳轉到內核映像入口執行,從而實現自舉啟動,與磁盤啟動相似。4.種類與特點:Bootloader種類繁多,比如x86上有LILO、GRUB等;對于ARM架構的CPU,有U-Boot、Vivi等。特點:LILO是Linux磁盤引導程序,GRUB是GNU的LILO替代程序;ViVi支持串口下載功能,代碼量小;U-boot通用引導程序,支持串口、網絡下載功能,代碼量大;Redboot支持串口、網絡下載功能,代碼量最大;Blob:支持串口、網絡下載功能,代碼量小5.基本原理:①操作模式:? ②通信:目標機上的Bootloader一般可通過串口與主機之間進行文件傳輸,也可以通過以太網連接并借助TFTP協議來下載文件,這樣傳輸更快; ③Bootloader 的功能與結構:由于Bootloader的實現依賴于CPU的體系結構,大多數Bootloader都分為stage1和 stage2兩大部分。stage1通常包括以下工作:硬件設備初始化、為加載Bootloader的stage2準備RAM空間、拷貝Bootloader的stage2到RAM空間中、設置堆棧、跳轉到stage2的C入口點。stage2的代碼通常用C語言來實現,stage2 執行映像的入口點是用匯編語言寫一段trampoline小程序,用這段trampoline小程序來作為main()函數的外部包裹。
補充:1.LCD屏的主要技術參數:(1)像素:顯示屏上所能控制的最小單位(2)分辨率:分辨率指 LCD 上象素的數目3)色深:在某一分辨率下,每一個像點可以有多少種色彩來描述,單位是“bit”,色深和分辨率之積決定了顯示緩存區的大小(4)刷新頻率:圖像在屏幕上更新的速度,也即屏幕上的圖像每秒鐘出現的次數,單位是赫茲(5)物理尺寸:LCD的外觀尺寸對角線長度,單位為英寸
2.分散裝載技術:ARM的連接器提供了一種分散加載機制,在連接時可以根據分散加載文件中指定的存儲器分配方案,將可執行鏡像文件分成指定的分區并定位于指定的存儲器物理地址,當嵌入式系統在復位或重新上電時,在對CPU相應寄存器進行初始化后,首先執行ROM存儲器的Bootloader代碼,根據連接時的存儲器分配方案,將相應代碼和數據由加載地址拷貝到運行地址,定位在RAM存儲器的代碼和數據就在RAM存儲器中運行,而不再從ROM存儲器中取數據或取指令,從而大大提高了CPU的運行速率和效率。最常用的2種情況:(1)把中斷程序作為一個單獨的運行域,放在32位的RAM,(2)將啟動代碼以外的所有代碼都復制到RAM中運行。
3.PWM:只對一方波序列信號的占空比按照要求進行調制,而不改變方波信號的其它參數,即不改變幅度和周期,因此脈寬調制信號的產生和傳輸,都是數字式的。只要帶寬足夠(頻率足夠高或周期足夠短),任何模擬信號都可以使用PWM 來實現。應用:借助于微處理器,使用脈寬調制方法實現模擬信號是一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。
第五篇:嵌入式系統ARM實驗報告
南京郵電大學通信與信息工程學院
實驗報告
實驗名稱:實驗一基于ADS開發環境的設計
實驗二嵌入式Linux交叉開發環境的建立 實驗三嵌入式Linux環境下的程序設計
課程名稱嵌入式系統B
班級學號B13010711 姓名馬俊民
開課時間 2015/2016學年第1學期
實驗一基于ADS開發環境的程序設計
一、實驗目的
1、學習ADS開發環境的使用;
2、學習和掌握ADS環境下的匯編語言及C語言程序設計;
3、學習和掌握匯編語言及C語言的混合編程方法。
二、實驗內容
1、編寫和調試匯編語言程序;
2、編寫和調試C語言程序;
3、編寫和調試匯編語言及C語言的混合程序;
4、編寫程序測試多寄存器傳送指令的用法。
三、實驗原理
ADS全稱為ARM Developer Suite,是ARM公司推出的新一代ARM集成開發工具。現在常用的ADS版本是ADS1.2,它取代了早期的ADS1.1和ADS1.0。
ADS用于無操作系統的ARM系統開發,是對裸機(可理解成一個高級單片機)的開發。ADS具有極佳的測試環境和良好的偵錯功能,它可使硬件開發工作者更深入地從底層去理解ARM處理器的工作原理和操作方法,為日后自行設計打基礎,為BootLoader的編寫和調試打基礎。
1.ADS軟件的組成
ADS由命令行開發工具、ARM運行時庫、GUI開發環境(CodeWarrior和AXD)、實用程序、支持軟件等組成。
2.GUI開發環境
ADS GUI開發環境包含CodeWarrior和AXD兩種,其中Code Warrior是集成開發工具,而AXD是調試工具。
使用匯編語言進行編程簡單、方便,適用于初始化硬件代碼、啟動代碼等。匯編語言具有一些相同的基本特征:
1.一條指令一行。
2.使用標號(label)給內存單元提供名稱,從第一列開始書寫。3.指令必須從第二列或能區分標號的地方開始書寫。4.注釋必須跟在指定的注釋字符后面,一直書寫到行尾。
在ARM匯編程序中,每個段必須以AREA作為段的開始,以碰到下一個AREA作為該段的結束,段名必須唯一。程序的開始和結束需以ENTRY和END來標識。嵌入式C語言設計是利用基本的C語言知識,面向嵌入式工程實際應用進行程序設計。為了使單獨編譯的C語言程序和匯編程序之間能夠相互調用,必須為子程序之間的調用規定一定的規則。ATPCS就是ARM程序和Thumb程序中子程序調用的基本規則。
四、實驗過程與關鍵代碼分析
1.創建項目工程
在File菜單中選擇New命令,打開一個新建工程對話框。在Project選項卡下,選擇ARM Executable Image, 然后在Project name文本框里輸入項目名稱,點擊確定。彈出工程窗口。
選擇File菜單中的New命令,選擇File標簽頁,在File name文本框中輸入要創建的文件名。匯編程序以.s結尾,c程序以.c結尾。在Location文本框中指定文件的存放位置,選中Add to Project,在Targets中選中DebugRel,單擊確定關閉窗口。
2.用匯編語言設計程序實現10的階乘
AREA EXAMPLE, CODE, READONLY ENTRY start MOV R0, #10 MOV R1, #1 LOOP MUL R0, R0, R1 SUB R0, R0, 1 CMP R0, #1 BHI LOOP END 在這個程序中,我們首先對R0和R1賦值,將R0作為一個變量,而R1作為一個存貯階乘值的寄存器。在每進行一次乘法之后,將R0減1。同時在做完減法后進行判斷,如果此時R0大于1,則返回繼續乘法,否則結束程序,輸出結果。
3.用調用子程序的方法實現1!+2!+3!+?+10!,代碼如下: asmp.s
AREA JC, CODE, READONLY
EXPORT JCP
ENTRY JCP
ADD R3, R0, #1
MOV R2, #1
MOV R1, #1 LOOP MUL R0, R1, R2
MOV R1, R0
ADD R2, R2, #1
CMP R2, R3
BNE LOOP
NOP
NOP
MOV PC, LR
END
PROGC.c #include
int main(){ int res=0;int m=10;int i;for(i=1;i<=m;i++)
res=res+JCP(i);printf(“The result =%dn”,res);return 0;} 在這個程序中,主程序由c語言完成作求和,子程序由匯編語言寫成作階乘。
5.實現字符串的逆序復制TEXT1=“HELLO”=>TEXT2=“OLLEH”
AREA invstring, CODE, READONLY start
ADR R1,TEXT1
ADR R2,TEXT2
MOV R3, #0 LOOP
LDRB R0,[R1], #1
ADD R3,R3,#1
CMP R0,#0
BNE LOOP
SUB R1,R1,#2
LOOP1
LDRB R0,[R1], #-1
STRB R0,[R2], #1
SUB R3,R3, #1
CMP R3,#1
BNE LOOP1
MOV R5,#&55
TEXT1
TEXT2 NOP =“HELLO”,0 ALIGN =“OELLH” END
五、實驗小結
在這次實驗中,學會了如何使用匯編程序進行編程。對匯編程序編程一些基本的要求有了一定的了解,學習了C語言的語法和在其中調用匯編程序的方法。學會了利用CodeWarrior IDE開發C和ARM匯編代碼。學會了在AXD中進行代碼調試的方法和過程,對AXD的調試有初步的了解。,實驗二嵌入式Linux交叉開發環境的建立
一、實驗目的
1、掌握嵌入式Linux交叉開發環境的建立方法
2、學習和掌握Linux常用命令
3、學習和掌握vi編輯器的使用
二、實驗內容
1、搭建嵌入式Linux交叉開發環境
2、熟悉Linux的常用命令
3、熟悉vi編輯器的常用命令
三、實驗原理
Linux系統是UNIX系統的分支,是UNIX的微機版。Linux具有異常豐富的驅動程序資源,支持各種主流的硬件設備與技術。Linux包含了現代的UNIX操作系統的所有功能特性,這些功能包括多任務、虛擬內存、虛擬文件系統、進程間通信、對稱所處理器、多用戶支持等。
Vi編輯器是所有UNIX和Linux下的標準編輯器。它包含3種工作模式。嵌入式系統是專用的計算機系統,它對系統的功能、可靠性、成本、體積、功耗等有嚴格的要求。大部分嵌入式系統沒有大容量存儲設備,一般不能安裝大型開發軟件,系統的開發需要采用交叉開發模式。
四、實驗過程與關鍵代碼分析
實驗用的是UP-NetARM2410-S試驗箱,里面配有三星的芯片S3c2410X。打開電腦上VMWare軟件,在Windows系統下啟動虛擬機里的Linux系統。接著需要
1.宿主機的環境搭建
下載并運行VMWare,根據向導創建一臺新虛擬機并選擇Linux作為客戶操作系統,再根據向導安裝RedHat Linux 9.0。
2.虛擬機中啟動Linux操作系統
使用root登陸,用戶名為root,密碼為123456。之后對共享文件設置進行調整:打開settings界面,打開shared folders功能,同時將路徑設置到有課前下載的軟件的目錄下。
3.開發工具軟件的安裝(1)安裝gcc 打開Linux后,打開終端窗口,在共享的目錄下找到install.sh并運行,命令如下: ls./ install.sh 安裝程序將自動建立/arm2410s目錄,并將所有的開發軟件包安裝到/arm2410s 目錄下,同時自動配置編譯環境,建立合適的符號鏈接。安裝完成后在目錄/opt/host/armv4l/bin/下應該能看到主編譯器。(2)配置PATH路徑
vi.bash.profile 將里面PATH變量改為PATH=$PATH:$HOME/bin:/opt/host/armv41/bin/;存盤后執行
source.bash_profile 以后armv4l-unknown-linux-gcc將被自動搜索到
4.宿主機上的開發環境配置(1)配置IP地址
ifconfig eth0 192.168.0.121 命令配置了宿主機的IP地址。然后打開網絡配置窗口,重新探測MAC地址。重新激活。(2)關閉防火墻
單擊“Red”菜單→“系統設置”→“安全級別”→打開“安全級別配置”窗口,選擇“無防火墻選項。”(3)配置NFS。
單擊“Red”菜單→“系統設置”→“服務器設置”→“服務”,在“服務配置”窗口中勾選nfs,單擊“開始”(4)NFS設置
單擊“Red”菜單→“系統設置”→“服務器設置”→“NFS服務器”,打開“NFS服務器配置”窗口,設置NFS共享。
然后在NFS服務器中增加主機IP地址的鏈接許可和目錄。完成配置。
5.目標機的信息輸出
Windows系統下,“開始”→“所有程序”→“附件”→“通訊”→“超級終端”,新建一個通信終端。區號、電話號碼隨意輸入。設置每秒位數為“115200”,數據位為“8”,無奇偶校驗,停止位為“1”,無數據流控制。單擊“確定”。
6.程序的運行
打開超級終端,啟動Linux,屏幕顯示:
[/mnt/yaffs] 在超級終端上執行掛載命令:
[/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs 掛載成功后可執行程序。
五、實驗小結
在這次實驗中,學會建立Linux交叉開發環境,學會了ls和vi,cd等常用的Linux命令,并掌握了Vi編輯器的使用方法。同時知道了如何在搭建失敗時尋找錯誤進行排錯。
實驗三嵌入式Linux環境下的程序設計
一、實驗目的
1、掌握嵌入式Linux環境下的程序設計方法
2、學會編寫Makefile文件
二、實驗內容
1、熟悉嵌入式教學實驗箱的使用
2、編寫C程序和Makefile文件
3、編譯程序產生可執行程序
4、完成主機的掛載和程序的執行
三、實驗原理
在嵌入式Linux環境下的程序設計方法有一下幾個步驟:
1.編寫源程序
2.編寫Makefile文件 3.編譯程序
4.運行和調試程序
5.將生產的可執行文件加入文件系統。
前三個步驟在宿主機上完成,后面的步驟在目標機上完成。
四、實驗過程與關鍵代碼分析
1.建立工作目錄
mkdir hello cd hello
2.編寫源程序
用vi編輯器編輯Hello.c文件
vi Hello.c 在Vi中輸入源程序如下:
#include
printf(“hello world n”);}
3.編寫Makefile文件
vi Makefile 在vi中編輯Makefile文件如下:
CC= armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+=-static all: $(EXEC)$(EXEC):(OBJS)$(CC)$(LDFLAGS)–o $@ $(OBJS)clean:
-rm –f $(EXEC)*.elf *.gdb *.o
4.編譯程序
在hello目錄下運行“make”來編譯程序。
make clean
make 編譯成功后,生成可執行文件Hello.o。
5.下載調試
在宿主機上啟動nfs服務,并將/arms2410s設置為共享目錄。接下來啟動超級終端,建立通訊,掛載。
[/mnt] mount –t nfs 192.168.0.121:/arm2410s /mnt/nfs 掛載成功后,進入/mnt/nfs,再進入/mnt/nfs/hello,直接運行剛剛編譯生成的可執行文件Hello.o,查看運行結果
cd hello./hello 可以看見“Hello world”
只需要掛載一次便可,只要實驗箱沒有重啟,就可以一直保持連接。反復修改、編譯、調試,直至程序調試通過。
6.可執行文件加入文件系統
程序調試通過后,可以把可執行文件拖放到usr/bin目錄下,然后使用mkcramfs制作工具生成新的文件系統。當系統啟動后,就可以在相應目錄下執行可執行程序hello.五、實驗小結 在這次實驗中,學會了在嵌入式Linux環境下設計程序。同時知道了如何對目標機進行掛載。以及如何在發現掛載不成功尋找錯誤進行修改。另外在編譯文件時需要注意的也都有所了解。
實驗四多線程程序設計
一、實驗目的1、2、二、實驗內容1、2、3、4、三、實驗原理
四、實驗過程與關鍵代碼分析
五、實驗小結
3+