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

正文內(nèi)容

arm培訓(xùn)講義提綱-wenkub

2023-05-26 22:20:36 本頁面
 

【正文】 、電子技術(shù)、計算機技術(shù)、以及微電子技術(shù)的發(fā)展,片上系統(tǒng)(SOC)成為當今電子技術(shù)的一大主流;這就使得嵌入式開發(fā)技術(shù)成為整個業(yè)界的研究和開發(fā)的熱點。我們知道當今世界通信與信息技術(shù)發(fā)展的3大熱點是:第三、四代移動通信技術(shù)、數(shù)字電視技術(shù)、以及汽車電子技術(shù)。列舉適當?shù)睦诱f明嵌入式系統(tǒng)的應(yīng)用:手持設(shè)備、大型通信設(shè)備. 嵌入式操作系統(tǒng)與常見的單片機、DSP系統(tǒng)的細微區(qū)別從系統(tǒng)的概念出發(fā)講解:單片機、和DSP是沒有系統(tǒng)概念的. 嵌入式操作系統(tǒng)的軟硬件平臺開發(fā)1.嵌入式操作系統(tǒng)的硬件構(gòu)成:核心處理器、程序和數(shù)據(jù)存儲器、總線系統(tǒng)、外圍接口(設(shè)備)等;2.嵌入式操作系統(tǒng)的軟件構(gòu)成:系統(tǒng)軟件、API、底層驅(qū)動、應(yīng)用程序等結(jié)合微機系統(tǒng)操作系統(tǒng)講解3.常見嵌入式操作系統(tǒng):VxWorks、PSOS、LINUX、WINCE、NUCLEUS等,各種操作系統(tǒng)的區(qū)別和優(yōu)點及應(yīng)用前景。. 嵌入式處理器簡介ARM是Advanced RISC Machines的縮寫,ARM公司于1990成立 ,ARM以低成本、低功耗、高性能迅速占領(lǐng)了全球市場。在此,我們主要講解ARM7系列、ARM9系列:1) ARM7系列:;其內(nèi)核主要有ARM7TDMI和ARM720T;T:支持16位THUMB指令,D支持在片調(diào)試,M增強型乘法器,產(chǎn)生全64位結(jié)果,I:嵌入式ICE硬件提供片上斷點和調(diào)試點支持2) ARM9系列:、哈佛結(jié)構(gòu);其內(nèi)核主要有ARM920T、ARM722T和ARM940T;. 基于ARM內(nèi)核的芯片擴展由于ARM公司只做IP,不生產(chǎn)具體的芯片;所以我們所使用的ARM芯片都是全世界其他硬件芯片廠商在經(jīng)過ARM公司的授權(quán),然后在此基礎(chǔ)上進行硬件擴展,以滿足不同領(lǐng)域的需求。注意:ARM9系列是兼容ARM7系列的。. ARM編程模型ARM常見版本是V4和V5,現(xiàn)在主要用的是V4,處理器工作狀態(tài):ARM,THUMB開關(guān)狀態(tài):進入THUMB狀態(tài)、進入ARM狀態(tài)存儲器格式:大小端點格式指令長度:32位、16位數(shù)據(jù)類型:字,半字,字節(jié)操作模式:7種寄存器:31個通用寄存器和6個狀態(tài)寄存器中斷:. ARM基本尋址方式寄存器尋址:立即尋址:寄存器移位尋址:寄存器間接尋址:變址尋址:多寄存器尋址:堆棧尋址:塊拷貝尋址:相對尋址:. ARM指令集本章內(nèi)容是詳細講解ARM指令集。如果C、N、Z和V標志的狀態(tài)滿足該域的編碼條件,指令就被執(zhí)行,否則不予執(zhí)行。在后綴缺省時,大多數(shù)指令的條件域被設(shè)置成“Always”(后綴AL)。這個分支會引起管道流,并會根據(jù)Rn指定的地址再入。★匯編程序語法:BX分支和交換指令BX {cond} Rn ;{cond}為 雙字母條件記憶符(即條件碼),見表4-4,而Rn 表示一個有效寄存器(比如:R0)★使用R15作操作數(shù):如果將R15作操作數(shù),該情況未定義。匯編作為THUMB指令的后續(xù)碼Into_THUMBADR R5, Back_to_ARM 。 匯編作為ARM指令的后續(xù)碼Back_to_ARM★★2分支與帶鏈接分支(B、BL)該指令僅僅在條件為真時被執(zhí)行,參見表4-4。因此該指令可以指定+/32M字節(jié)的分支。★鏈接位:帶鏈接的分支(BL)將舊的PC寫入當前存儲空間的鏈接寄存器(R14)。★指令循環(huán)時間:分支和帶鏈接分支指令占用2S+1N增加的周期(與BX一樣),這里S和N分別代表連續(xù)(S周期)和內(nèi)部(I周期)。expression 目標單元,匯編程序計算偏移量。 R1=0?比較BEQ fred 。 C=0, 調(diào)用子程序★★3數(shù)據(jù)處理:數(shù)據(jù)處理指令僅在條件為真時被執(zhí)行,參見表4-4。根據(jù)指令中L(即D25)位的值,第二個操作數(shù)可能是一個移位寄存器(Rm)或一個8位循環(huán)立即數(shù)(Imm)?!顲PSR標志:數(shù)據(jù)處理運算可分為邏輯運算和算術(shù)運算,邏輯運算(AND、EOR、TST、TEQ、ORR、MOV、BIC、MVN)對操作數(shù)的所有相應(yīng)位或產(chǎn)生結(jié)果的操作數(shù)執(zhí)行邏輯運算?!镆莆唬寒?shù)诙€操作數(shù)被指定為移位寄存器時,寄存器的移位操作受指令中的移位域控制。 圖44: ARM移位操作★指定偏移量指令:當指令中指定了偏移量時,它包含了一個5位的區(qū)域,其賦值范圍為0~31。圖4-5:邏輯左移注意:LSL 5是一個特例,這里shifter進位輸出是CPSR C標志的過去值。圖4-6:邏輯右移此種移位使得Rm的第31位有零進位輸出。圖4-7:算術(shù)右移此種移位使得Rm的bit31重新用作進位輸出,并且操作數(shù)2的每一位也等于Rm的bit31。圖4-8:循環(huán)右移期望給ROR 0的移位域形式用于對barrel shifter的特殊功能,即帶擴展的循環(huán)右移編碼。如果該字節(jié)為零,Rm未改變的內(nèi)容將被當作第二操作數(shù),并且舊的CPSR的 C標志值將會被作為shifter的進位輸出?!锪⒓磾?shù)循環(huán):立即數(shù)循環(huán)域是一個4位無符號整數(shù),指定對8位立即數(shù)進行移位操作。當Rd為R15并且指令中的S標志未置位時,操作結(jié)果被放入R15且CPSR不受影響?!镉肦15作操作數(shù)如果R15(PC)被用于數(shù)據(jù)處理指令中的一個操作數(shù),可直接使用該寄存器?!颰EQ、TST、CMP和CMN操作碼:注意:TEQ、TST、CMP和CMN不寫結(jié)果操作結(jié)果但置位CPSR中的標志位。指令周期:數(shù)據(jù)處理指令增加的周期數(shù)如下表46:表46: 增加的循環(huán)時間注:S、N和I分別定義為順序(S周期)、非順序(N周期)和內(nèi)部(I周期)。 AND,EOR,SUB,RSB,ADD,ADC,SBC,RSC,ORR,BICopcode{cond}{S} Rd,Rn,Op2這里:Op2 Rm{,shift} 或,expression{cond} 雙字母條件助記符,見表4-4{S} 如果S表示(指CMP, CMN, TEQ, TST),置位條件碼.Rd, Rn 和 Rm 寄存器號表達式expression 如果使用,匯編程序?qū)a(chǎn)生一個移位的立即8位域來匹配表達式,如果不用會出錯shift Shiftname register 或 shiftname expression, 或 RRX (帶擴展右移1位).shiftnames ASL, LSL, LSR, ASR, ROR. (ASL與LSL意義相同,它們的匯編碼一樣)例:ADDEQ R2,R4,R5 。將答案放入R4MOV PC,R14 。這些指令允許對CPSR和SPSR寄存器存取。在這種情況下,指定的寄存器內(nèi)容的高4位或32位立即數(shù)被寫入相應(yīng)PSR(程序狀態(tài)寄存器)的高4位。 軟件決不能改變CPSR中T位的狀態(tài)。例如,當處理器在FIQ模式時,只有SPSR_fiq是可存取的。 在用戶模式下不能存取SPSR,因為該寄存器不存在(用戶不能使用)。 當檢查PSR狀態(tài)時,程序不應(yīng)當依賴保留位的特定值,因為將來的處理器可能會將它們認作1或0。選擇新模式MSR CPSR,R0 ?!镏噶钛h(huán)周期:PSR轉(zhuǎn)移占用1S增加的周期,這里S定義為順序(S周期)。 MSR – 只將寄存器內(nèi)容轉(zhuǎn)移到PSR標志位MSR{cond} psrf,Rm寄存器內(nèi)容最重要的4位分別寫入N、Z、C和V標志。 CPSR[31:28] Rm[31:28]MSR CPSR_flg,Rm 。 Rd[31:0] CPSR[31:0]在特許模式,指令表現(xiàn)為:MSR CPSR_all,Rm 。 clear N,C)MSR SPSR_all,Rm 。 clear C,V)MRS Rd,SPSR 。圖4-11:MUL、MLA指令格式指令的乘法形式為Rd:=Rm*Rs,Rn不考慮,并被設(shè)置為零,以兼容將來可能升級的指令集。這些指令進產(chǎn)生乘法的低32位,既可用于有符號乘法,也可用于無符號乘法。R15必須不能被當作操作數(shù)或目標寄存器。C(進位)標志置位無意義的值V(溢出)標志不受影響。 R1:=R2*R3MLAEQS R1,R2,R3,R4 。有符號和無符號乘法帶可選的累加給出4種變化。64位加數(shù)的低32從RdLo讀取,64位加數(shù)的高32從RdHi讀取,64位結(jié)果的低32位寫入RdLo,結(jié)果的高32位寫入RdHi。 RdHi、RdLo和Rm必須指定不同的寄存器?!镏噶钛h(huán)周期MULL占用1S+(m+1)I周期,MLAL占用1S+(m+2)周期,這里m是執(zhí)行乘法所需的8位乘數(shù)陣列周期數(shù),由Rs指定的乘數(shù)操作數(shù)控制。 如果乘數(shù)操作數(shù)[31:24] 位為全0或全1 如果乘數(shù)操作數(shù)[31:24] 位為全0或全1 R5,R1:=R2*R3+R5★★7單數(shù)據(jù)轉(zhuǎn)移:該指令僅當條件為真時執(zhí)行參見表4-4。如果需要自動索引,則該計算結(jié)果可以被回寫到這個基址寄存器。 當W=1時,修改的基址寄存器值可以回寫到基址寄存器中;而當W=0時,基址寄存器值不變。 ★移位寄存器偏移量8個移位控制位已在數(shù)據(jù)處理指令一節(jié)中介紹過。兩種可能的結(jié)果敘述如下。一個字節(jié)存儲(STRB)是通過數(shù)據(jù)總線輸出31~0將源寄存器底部8個位重復(fù)4次。這意味著來自字邊界偏置0~2存取的半字將會被正確存入寄存器的0~15位。圖414. LittleEndian偏移尋址★BigEndian配置:如果提供給地址的是以字為邊界,則希望是通過數(shù)據(jù)總線輸入31~24裝入(LDRB)一個字節(jié)數(shù)據(jù),如果一個字地址加上一個字節(jié)則通過數(shù)據(jù)總線輸入23~16裝入,以此類推。外部存儲器系統(tǒng)應(yīng)當激活適當字節(jié)子系統(tǒng)來存儲數(shù)據(jù)。然后需要一次移位操作將數(shù)據(jù)(任意擴展符號)移入低16位?!颮15的使用:如果將R15指定為基本寄存器(Rn)則不必指定回寫。使用基本寄存器的約束:1)當配置遲的中止時,下面的例子代碼很難作為基本寄存器Rn展開,并在中止處理程序開始之前得到更新,有時無法計算初始值。例如,使用虛擬內(nèi)存的系統(tǒng)中也許沒有主內(nèi)存。STR指令占用2N執(zhí)行周期。這種情況下不應(yīng)指定基本回寫。2 預(yù)索引尋址:[Rn] 零偏置[Rn,expression]{!} expression 字節(jié)偏置[Rn,{+/}Rm{,shift}]{!} 變址寄存器+/偏置,由shift移位3 后索引尋址:[Rn],expression expression 字節(jié)偏置[Rn],{+/}Rm{,shift} 變址寄存器+/偏置,由shift移位shift 一般移位操作(見數(shù)據(jù)處理指令),但不能由寄存器指定移位量{!} 如果出現(xiàn)!寫回基本寄存器(見W位)例:STR R1,[R2,R4]! 。從R2+R3*4內(nèi)容裝入R1LDREQB R1,[R6,5] 。指令編碼見圖414-16。圖415. 帶寄存器偏置的半字和有符號數(shù)據(jù)轉(zhuǎn)移 圖416. 帶立即數(shù)偏置和自動標定指數(shù)的半字和有符號數(shù)據(jù)轉(zhuǎn)移★偏置和自動標定在指令中,基址寄存器的偏移量既可以是8bit的無符號立即數(shù),也可以是一個第二寄存器(可能被移位)。在前索引的尋址方式的情況下;如果有必要,既然通過設(shè)置偏移量為零而使舊的基址寄存器值得以保留,那么W位是多余的,且總被設(shè)置為0。LDR(B)和STR(B)指令的功能受ARM920T內(nèi)核BIGEND控制信號的影響。當S=1時,L 位不應(yīng)該為0(表示存儲)。兩種可能的結(jié)果敘述如下。提供地址總是基于半字的邊界。外部存儲系統(tǒng)應(yīng)該激活合適的半字系統(tǒng)來存儲數(shù)據(jù)。如果提供的地址是以字為邊界,則半字裝載(LDRSH、LDRH)指令期望數(shù)據(jù)總線上裝入的數(shù)據(jù)是31~16這樣的一個半字數(shù)據(jù);如果提供的地址是以半字為邊界,則期望數(shù)據(jù)總線上裝入的數(shù)據(jù)是15~0這樣的一個半字數(shù)據(jù)(A[1]=1)。半字存儲(STRH)將重復(fù)2次存儲源寄存器的低16位值到數(shù)據(jù)總線的31~0。當將R15用作基址寄存器時,必須記住它包含了在當前指令地址上的一個8 bytes地址。內(nèi)存管理器通過將處理器ABORT輸入變高發(fā)出信號,這就出現(xiàn)了數(shù)據(jù)中止陷阱?!飬R編程序語法LDR|STR{cond}H|SH|SB Rd,addressLDR 將存儲器中的值裝入寄存器中STR 將寄存器中的值存到存儲器中{cond} 條件碼,參見表4-4H 傳輸半字SB 裝載有符號字節(jié) (僅對于LDR有效)SH 裝載有符號半字 (僅對于LDR有效)Rd 有效寄存器Address可以是:2 表示產(chǎn)生一個地址:匯編程序?qū)a(chǎn)生一條指令,該指令以PC為基礎(chǔ)和有表達給出的校正后的直接偏置地址。如果Rn是R15,則匯編后將在當前ARM920T流水線地址中減去8。 將R3中的半字存儲到R14+14中,不回寫LDRSB R8,[R2],223 。 存儲R5中的半字到地址FRED中FRED★★9塊數(shù)據(jù)轉(zhuǎn)移(LDM、STM)該指令僅當條件為真時執(zhí)行,條件定義見表4-4。寄存器列表寄存器列表在指令里面占有16位,每一個位對應(yīng)一個寄存器。無論何時將R15存入存儲器,存儲的值都是STM的指令地址+12。假設(shè)考慮傳輸RRR7 ,基址寄存器Rn=0x1000 ,同時回寫修改基址寄存器 (W=1)。圖418. 增量后尋址
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1