freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

arm培訓(xùn)講義提綱(已修改)

2025-05-23 22:20 本頁(yè)面
 

【正文】 ARM培訓(xùn)講義提綱單 位:西安電子科技大學(xué) 編 寫(xiě): 何方勇 編寫(xiě)日期: 2005年7月1日 1. 緒言本次ARM培訓(xùn)主要使各位受訓(xùn)人員了解嵌入式操作系統(tǒng)的基本概念、軟硬件構(gòu)成框架、以及掌握與嵌入式操作系統(tǒng)相關(guān)的知識(shí)。隨著通信技術(shù)、電子技術(shù)、計(jì)算機(jī)技術(shù)、以及微電子技術(shù)的發(fā)展,片上系統(tǒng)(SOC)成為當(dāng)今電子技術(shù)的一大主流;這就使得嵌入式開(kāi)發(fā)技術(shù)成為整個(gè)業(yè)界的研究和開(kāi)發(fā)的熱點(diǎn)。我們知道當(dāng)今世界通信與信息技術(shù)發(fā)展的3大熱點(diǎn)是:第三、四代移動(dòng)通信技術(shù)、數(shù)字電視技術(shù)、以及汽車電子技術(shù)。在這幾個(gè)熱點(diǎn)技術(shù)的最終實(shí)現(xiàn)將被納入系統(tǒng)的概念,其中嵌入式系統(tǒng)將在里面伴有重要的角色。2. 嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)作為一種新的系統(tǒng),我們應(yīng)該怎么把握呢?以下我們將簡(jiǎn)要介紹一下嵌入式系統(tǒng)。. 嵌入式操作系統(tǒng)的基本概念從字面上,我們可以從兩方面理解嵌入式系統(tǒng):嵌入式、系統(tǒng)。列舉適當(dāng)?shù)睦诱f(shuō)明嵌入式系統(tǒng)的應(yīng)用:手持設(shè)備、大型通信設(shè)備. 嵌入式操作系統(tǒng)與常見(jiàn)的單片機(jī)、DSP系統(tǒng)的細(xì)微區(qū)別從系統(tǒng)的概念出發(fā)講解:?jiǎn)纹瑱C(jī)、和DSP是沒(méi)有系統(tǒng)概念的. 嵌入式操作系統(tǒng)的軟硬件平臺(tái)開(kāi)發(fā)1.嵌入式操作系統(tǒng)的硬件構(gòu)成:核心處理器、程序和數(shù)據(jù)存儲(chǔ)器、總線系統(tǒng)、外圍接口(設(shè)備)等;2.嵌入式操作系統(tǒng)的軟件構(gòu)成:系統(tǒng)軟件、API、底層驅(qū)動(dòng)、應(yīng)用程序等結(jié)合微機(jī)系統(tǒng)操作系統(tǒng)講解3.常見(jiàn)嵌入式操作系統(tǒng):VxWorks、PSOS、LINUX、WINCE、NUCLEUS等,各種操作系統(tǒng)的區(qū)別和優(yōu)點(diǎn)及應(yīng)用前景。. 怎樣進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)開(kāi)發(fā)是本次培訓(xùn)的主要內(nèi)容,那我們應(yīng)該從以下方面入手:處理器、硬件部件、操作系統(tǒng)、編程語(yǔ)言、軟件開(kāi)發(fā)工具、硬件開(kāi)發(fā)平臺(tái)、軟件組成。1) 處理器:速度、IO 設(shè)計(jì)指標(biāo)、處理器的軟件支持、處理器調(diào)試方式、處理器提供商的信譽(yù)度;2) 硬件部件:硬件實(shí)現(xiàn)難度、開(kāi)發(fā)周期、市場(chǎng)前景、供貨情況3) 操作系統(tǒng):產(chǎn)品的適合度、調(diào)試難度、代碼結(jié)構(gòu)、可開(kāi)發(fā)潛力、移植可行性4) 編程語(yǔ)言:高級(jí)語(yǔ)言、低級(jí)語(yǔ)言5) 軟件開(kāi)發(fā)工具:系統(tǒng)調(diào)試功能如何、支持的庫(kù)函數(shù)、開(kāi)發(fā)商的軟件支持3. 嵌入式處理器在以上的講義中我們簡(jiǎn)要提到了嵌入式開(kāi)發(fā)的各方面的問(wèn)題,接下來(lái)我們將從硬件開(kāi)始講解。在嵌入式系統(tǒng)中,主要以ARM芯片作為該系統(tǒng)的核心芯片。. 嵌入式處理器簡(jiǎn)介ARM是Advanced RISC Machines的縮寫(xiě),ARM公司于1990成立 ,ARM以低成本、低功耗、高性能迅速占領(lǐng)了全球市場(chǎng)。其產(chǎn)品廣泛應(yīng)用到移動(dòng)通信、消費(fèi)電子、以及嵌入式市場(chǎng)。ARM公司不生產(chǎn)芯片,只是IP供應(yīng)商,只做設(shè)計(jì)。常見(jiàn)ARM處理器系列有:ARM7系列、ARM9系列、ARM9E系列、ARM10系列、SecurCore SC100、Strong ARM、XScale。在此,我們主要講解ARM7系列、ARM9系列:1) ARM7系列:;其內(nèi)核主要有ARM7TDMI和ARM720T;T:支持16位THUMB指令,D支持在片調(diào)試,M增強(qiáng)型乘法器,產(chǎn)生全64位結(jié)果,I:嵌入式ICE硬件提供片上斷點(diǎn)和調(diào)試點(diǎn)支持2) ARM9系列:、哈佛結(jié)構(gòu);其內(nèi)核主要有ARM920T、ARM722T和ARM940T;. 基于ARM內(nèi)核的芯片擴(kuò)展由于ARM公司只做IP,不生產(chǎn)具體的芯片;所以我們所使用的ARM芯片都是全世界其他硬件芯片廠商在經(jīng)過(guò)ARM公司的授權(quán),然后在此基礎(chǔ)上進(jìn)行硬件擴(kuò)展,以滿足不同領(lǐng)域的需求。ARM9系列是當(dāng)今嵌入式系統(tǒng)應(yīng)用的主流芯片內(nèi)核技術(shù)。全世界各大廠商都采用ARM公司的IP來(lái)開(kāi)發(fā)自己的ARM芯片,主要廠商有:三星、AD、TI、菲利普、Intel、CIRRUS LOGIC等。下面,我們以三星公司的ARM芯片S3C2410X為例來(lái)簡(jiǎn)要介紹基于ARM內(nèi)核的芯片擴(kuò)展。注意:ARM9系列是兼容ARM7系列的。. ARM920T內(nèi)核詳解現(xiàn)在基于ARM920T內(nèi)核的芯片逐漸成為嵌入式系統(tǒng)芯片的主流,我們有必要詳解其結(jié)構(gòu);這是進(jìn)一步學(xué)習(xí)軟件開(kāi)發(fā)的基礎(chǔ)。內(nèi)核的結(jié)構(gòu)圖如下所示:下面我們將重點(diǎn)介紹ARM920T的協(xié)處理器CP15和內(nèi)存管理單元MMU. 協(xié)處理器CP15. 內(nèi)存管理單元MMU4. 軟件開(kāi)發(fā)嵌入式系統(tǒng)的軟件開(kāi)發(fā)包括:操作系統(tǒng)和應(yīng)用程序開(kāi)發(fā)兩個(gè)方面。下面我們進(jìn)一步講解基于ARM芯片的匯編語(yǔ)言。. ARM編程模型ARM常見(jiàn)版本是V4和V5,現(xiàn)在主要用的是V4,處理器工作狀態(tài):ARM,THUMB開(kāi)關(guān)狀態(tài):進(jìn)入THUMB狀態(tài)、進(jìn)入ARM狀態(tài)存儲(chǔ)器格式:大小端點(diǎn)格式指令長(zhǎng)度:32位、16位數(shù)據(jù)類型:字,半字,字節(jié)操作模式:7種寄存器:31個(gè)通用寄存器和6個(gè)狀態(tài)寄存器中斷:. ARM基本尋址方式寄存器尋址:立即尋址:寄存器移位尋址:寄存器間接尋址:變址尋址:多寄存器尋址:堆棧尋址:塊拷貝尋址:相對(duì)尋址:. ARM指令集本章內(nèi)容是詳細(xì)講解ARM指令集。. ARM指令格式1. 指令集格式:ARM指令集格式如下表4-1所示: 表4-1:ARM指令集格式注意:某些指令碼沒(méi)有定義,但并不導(dǎo)致未定義指令陷阱出現(xiàn),例如一個(gè)乘法指令的第6位變?yōu)?。不應(yīng)使用這些指令,因?yàn)樗鼈兊淖饔靡苍S會(huì)由未來(lái)的ARM執(zhí)行2. ARM指令集表:下面表4-表4-3列出了ARM指令集:表4-2:表4-2:ARM指令集表4-3:表4-3:ARM指令集3. 條件碼:在ARM狀態(tài)下,所有指令都會(huì)根據(jù)CPSR條件碼和指令條件域的狀態(tài)被有條件地執(zhí)行。該域(位31:28)決定了執(zhí)行一條指令的環(huán)境。如果C、N、Z和V標(biāo)志的狀態(tài)滿足該域的編碼條件,指令就被執(zhí)行,否則不予執(zhí)行。存在著16個(gè)可能條件,每種由復(fù)加在指令記憶符后的一個(gè)雙字符后綴表示。例如,Branch(B為匯編語(yǔ)言)變?yōu)锽EQ表示“Branch if Equal”,意思是當(dāng)Z標(biāo)志被置位時(shí)執(zhí)行Branch指令。實(shí)際上,表32中所列的15個(gè)不同的條件也許會(huì)用到,第16個(gè)(1111)保留,不能使用。在后綴缺省時(shí),大多數(shù)指令的條件域被設(shè)置成“Always”(后綴AL)。這意味著不管CPSR的條件碼是什么,指令永遠(yuǎn)被執(zhí)行。下表4-4給出了條件碼概況:表4-4:ARM指令中的條件碼. ARM指令集詳解★★1分支與交換(BX指令,Branch和Exchange指令):該指令僅僅在條件為真時(shí)被執(zhí)行,參見(jiàn)表4-4。該指令通過(guò)將一個(gè)通用寄存器Rn的內(nèi)容復(fù)制到程序計(jì)數(shù)器PC來(lái)執(zhí)行一個(gè)分支。這個(gè)分支會(huì)引起管道流,并會(huì)根據(jù)Rn指定的地址再入。該指令也允許交換指令集。當(dāng)執(zhí)行該指令時(shí),Rn[0]的值決定了是否按照ARM指令還是THUMB指令對(duì)指令流進(jìn)行解碼。指令格式如下圖4-1所示:圖4-1:BX指令格式★指令循環(huán)時(shí)間:執(zhí)行BX指令占用2S+1N周期(與BL一樣),這里S和N分別代表連續(xù)(S周期)和非連續(xù)(N周期)。★匯編程序語(yǔ)法:BX分支和交換指令BX {cond} Rn ;{cond}為 雙字母條件記憶符(即條件碼),見(jiàn)表4-4,而Rn 表示一個(gè)有效寄存器(比如:R0)★使用R15作操作數(shù):如果將R15作操作數(shù),該情況未定義。例:ADR R0, Into_THUMB + 1 。產(chǎn)生分支目標(biāo)地址,bit0置位,進(jìn)入THUMB狀態(tài)BX R0 。分支并改變到THUMB狀,R15(PC):=R0CODE16 。匯編作為T(mén)HUMB指令的后續(xù)碼Into_THUMBADR R5, Back_to_ARM 。產(chǎn)生分支目標(biāo)到字排列地址,bit0置低,變回到ARMBX R5 。分支并變回到ARM狀態(tài),R15(PC):=R0ALIGN 。字排列CODE32 。 匯編作為ARM指令的后續(xù)碼Back_to_ARM★★2分支與帶鏈接分支(B、BL)該指令僅僅在條件為真時(shí)被執(zhí)行,參見(jiàn)表4-4。該指令的編碼如下圖4-2所示。圖4-2:B、BL指令格式分支指令包含有一個(gè)有符號(hào)的2態(tài)補(bǔ)充24位偏移(相當(dāng)于25根地址線+符號(hào)位,即+/32M字節(jié))。這被左移兩位,符號(hào)擴(kuò)展至32位,并加到程序計(jì)數(shù)器PC。因此該指令可以指定+/32M字節(jié)的分支。該指令偏置必須考慮預(yù)取操作,它會(huì)引起程序計(jì)數(shù)器PC超前當(dāng)前指令2個(gè)字(8個(gè)字節(jié))。超過(guò)+/32M字節(jié)的分支必須使用偏置或事先裝入寄存器的絕對(duì)目標(biāo)。在這種情況下,如果要求有帶鏈接類型的分支操作,應(yīng)當(dāng)將PC值人工存入R14?!镦溄游唬簬ф溄拥姆种В˙L)將舊的PC寫(xiě)入當(dāng)前存儲(chǔ)空間的鏈接寄存器(R14)。寫(xiě)入R14的值被調(diào)整到允許預(yù)取,并包含緊跟著“分支與鏈接指令”的指令地址。注意CPSR不保留PC值,R14[1:0]總是清零。從帶鏈接的分支返回,如果鏈接寄存器仍然有效,可使用MOV PC,R14;或如果鏈接寄存器以被Rn存作堆棧指針,使用LDM Rn!,{..PC}?!镏噶钛h(huán)時(shí)間:分支和帶鏈接分支指令占用2S+1N增加的周期(與BX一樣),這里S和N分別代表連續(xù)(S周期)和內(nèi)部(I周期)。★匯編程序語(yǔ)法:{}中的內(nèi)容任意,中的內(nèi)容必須出現(xiàn)B{L}{cond} expression{L} 常用請(qǐng)求帶鏈接分支的指令形式。如果缺省,R14不受指令影響,即不將舊的PC值存入R14。{cond} 如表4-4中所示的雙字母助記符(條件碼),如果缺省,默認(rèn)為AL(Always)。expression 目標(biāo)單元,匯編程序計(jì)算偏移量。例here BAL here 。等待,指令匯編成0xEAFFFFFE B there 。等待,默認(rèn)條件是“Always”CMP R1,0 。 R1=0?比較BEQ fred 。 為零,則跳轉(zhuǎn);反之,繼續(xù)下一個(gè)指令BL sub+ROM 。 跳轉(zhuǎn),調(diào)用子程序ADDS R1,1 。 R1=R1+1,設(shè)置CPSR標(biāo)志BLCC sub 。 C=0, 調(diào)用子程序★★3數(shù)據(jù)處理:數(shù)據(jù)處理指令僅在條件為真時(shí)被執(zhí)行,參見(jiàn)表4-4。該指令編碼如下圖4-3所示。圖4-3:數(shù)據(jù)處理指令該指令通過(guò)對(duì)一或兩個(gè)操作數(shù)進(jìn)行指定的算術(shù)或邏輯運(yùn)算產(chǎn)生結(jié)果。第一個(gè)操作數(shù)總是一個(gè)寄存器(Rn)。根據(jù)指令中L(即D25)位的值,第二個(gè)操作數(shù)可能是一個(gè)移位寄存器(Rm)或一個(gè)8位循環(huán)立即數(shù)(Imm)。根據(jù)指令中S位的值,確定該指令的結(jié)果是否可以保護(hù)或更新CPSR中的條件碼。確定的運(yùn)算(TST(OP1與OP2)、TEQ(OP1異或OP2)、CMP(OP1OP2)、CMN(OP1+OP2))不將結(jié)果寫(xiě)入Rd。它們只用執(zhí)行檢測(cè)和設(shè)置結(jié)果中的條件碼并總對(duì)S位置位?!顲PSR標(biāo)志:數(shù)據(jù)處理運(yùn)算可分為邏輯運(yùn)算和算術(shù)運(yùn)算,邏輯運(yùn)算(AND、EOR、TST、TEQ、ORR、MOV、BIC、MVN)對(duì)操作數(shù)的所有相應(yīng)位或產(chǎn)生結(jié)果的操作數(shù)執(zhí)行邏輯運(yùn)算。如果S位被置位(并且Rd不是R15,見(jiàn)下表),則CPSR中的V標(biāo)志不受影響,C標(biāo)志將被置位來(lái)執(zhí)行barrel shifter(或當(dāng)移位操作為L(zhǎng)SL 0時(shí)保護(hù)),Z標(biāo)志當(dāng)且僅當(dāng)結(jié)果全零時(shí)被置位,N被置為結(jié)果bit31的邏輯值。ARM數(shù)據(jù)處理指令見(jiàn)下表4-5表4-5:數(shù)據(jù)處理指令算術(shù)運(yùn)算(SUB、RSB、ADD、ADC、SBC、RSC、CMN)將每個(gè)操作數(shù)都看作是一個(gè)32位的整數(shù)(無(wú)符號(hào)或兩個(gè)獨(dú)立的符號(hào),兩種情況時(shí)一樣的)。如果S位被置位(并且Rd不是R15),則CPSR中的V標(biāo)志在結(jié)果的bit31出現(xiàn)溢出時(shí)被置位,如果操作數(shù)均為無(wú)符號(hào)數(shù)可以不理會(huì),但如果操作數(shù)為兩個(gè)獨(dú)立的有符號(hào)數(shù)則會(huì)發(fā)出錯(cuò)誤提示,C標(biāo)志會(huì)由于執(zhí)行ALU的bit31被置位,Z標(biāo)志當(dāng)且僅當(dāng)結(jié)果全零時(shí)被置位,N標(biāo)志被置為結(jié)果bit31的值(如果認(rèn)為操作數(shù)為兩個(gè)獨(dú)立的有符號(hào)數(shù)時(shí)指示結(jié)果為負(fù))?!镆莆唬寒?dāng)?shù)诙€(gè)操作數(shù)被指定為移位寄存器時(shí),寄存器的移位操作受指令中的移位域控制。該域指示要執(zhí)行的移位類型(邏輯左移或右移、算術(shù)右移或循環(huán)右移)。寄存器要移動(dòng)的值可包含在指令的立即域中,或者在另一個(gè)寄存器(除了R15)。不同移位類型的編碼如圖44所示。 圖44: ARM移位操作★指定偏移量指令:當(dāng)指令中指定了偏移量時(shí),它包含了一個(gè)5位的區(qū)域,其賦值范圍為0~31。邏輯左移(LSL)獲取Rm的內(nèi)容并將每一位移動(dòng)指定量到更有意義的位置。結(jié)果的最不重要位以零填充,Rm的最高位被丟棄,并不映射到結(jié)果中,除非當(dāng)ALU運(yùn)算處于邏輯狀態(tài)(見(jiàn)上面)時(shí),丟棄的最不重要的位變?yōu)閟hifter的進(jìn)位輸出,并可能鎖定CPSR的S位。例如,LSL 5的影響如下圖4-5所示。圖4-5:邏輯左移注意:LSL 5是一個(gè)特例,這里shifter進(jìn)位輸出是CPSR C標(biāo)志的過(guò)去值。Rm的內(nèi)容被直接用作第二個(gè)操作數(shù)。邏輯右移(LSR)指令類似,但是Rm的內(nèi)容被移到結(jié)果最不重要的位置。LSR 5的影響如下圖4-6所示。圖4-6:邏輯右移此種移位使得Rm的第31位有零進(jìn)位輸出。與邏輯左移零一樣,邏輯右移零是多余的,所以匯編程序?qū)SR 0(以及ASR 0和ROR 0)轉(zhuǎn)換成LSL 0,并允許指定LSR 32。算術(shù)右移(ASR)與邏輯右移類似,不同的是高位被R
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1