版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌入式系統(tǒng)設(shè)計
-指令系統(tǒng)設(shè)計嵌入式系統(tǒng)的第一步:確定指令系統(tǒng),以指導(dǎo)選擇嵌入式微處理器核。主流嵌入式處理器核: ARM,MIPS,PowerPC,68K,x86一、計算機(jī)體系結(jié)構(gòu)1、馮.諾依曼結(jié)構(gòu)2、哈佛結(jié)構(gòu)3、RISC與CISC4、匯編語言種類1.馮.諾依曼結(jié)構(gòu)五大部件:ALU,Controller,Memory,Input,Output存儲程序(storedprogram):程序以數(shù)字形式存在,與數(shù)據(jù)一樣被讀寫。指令執(zhí)行次序:順序跳轉(zhuǎn)程序計數(shù)器ProgramCounter(PC)2、哈佛體系結(jié)構(gòu)程序與數(shù)據(jù)有單獨的存儲器PC只能指向程序存儲器目前仍然廣泛應(yīng)用指令cache與數(shù)據(jù)cache適用于實時信號處理(大部分的DSP)大量數(shù)據(jù)流入計算機(jī)數(shù)據(jù)必須在精確的時間內(nèi)處理完成兩種存儲器模型比較微處理器采用的馮·諾依曼結(jié)構(gòu)將指令和數(shù)據(jù)存放在同一存儲空間中,統(tǒng)一編址,指令和數(shù)據(jù)通過同一總線訪問同一地址空間上的存儲器;DSP芯片采用的哈佛結(jié)構(gòu)則將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個相互獨立的存儲器,每個存儲器獨立編制、獨立訪問。與之相對應(yīng)的是系統(tǒng)中設(shè)置的兩條總線-程序總線和數(shù)據(jù)總線,從而使數(shù)據(jù)的吞吐率提高了一倍。3、RISC與CISCCISC:復(fù)雜指令系統(tǒng)計算機(jī)具有大量的指令和尋址方式8/2原則:80%的程序只使用20%的指令大多數(shù)程序只使用少量的指令就能夠運行。RISC:精簡指令系統(tǒng)計算機(jī)在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單RISC一般性能比CISC高4、匯編語言種類1)堆棧型匯編PushaPushbAddPopc2)累加器型匯編LoadaAddbStorec3)通用寄存器型匯編(load/store)Load$1,ALoad$2,BAdd$3,$1,$2Store$3,C二、ARM處理器屬于RISC體系A(chǔ)RM:只設(shè)計內(nèi)核的英國公司,自己不制造VLSI設(shè)備,只提供授權(quán)ARM內(nèi)核被授權(quán)給數(shù)百家廠商ARM主要應(yīng)用于無線局域網(wǎng)、3G、手機(jī)、手持設(shè)備、有線網(wǎng)絡(luò)通訊應(yīng)用形式:集成到專用芯片中作控制器ARM體系結(jié)構(gòu)ARM7采用馮.諾依曼體系A(chǔ)RM9采用哈佛體系對匯編程序員透明地址32位地址長度可以配置為低序或者高序
字的最低位放最低位字節(jié)(低序)
字的最低位放最高位字節(jié)(高序)2.1匯編書寫模式屬于通用寄存器型(GPR)匯編Load-Store結(jié)構(gòu)數(shù)據(jù)必須裝載到寄存器才能運算Load從內(nèi)存裝到寄存器Store從寄存器存儲到內(nèi)存ARM的寄存器16個通用寄存器r0…r15r15同時做PC1個特殊寄存器:當(dāng)前程序狀態(tài)寄存器CPSR在進(jìn)行運算時被自動設(shè)置CPSR高四位為NZCVN:負(fù)數(shù)Z:為0C:進(jìn)位V:溢出2.2數(shù)據(jù)運算1)寄存器型指令:addr0,r1,r2r1寄存器的內(nèi)容加r2寄存器的內(nèi)容,存到r0算術(shù)運算Add加Adc進(jìn)位加Sub減Sbc進(jìn)位減Rsb:逆減Rsc:進(jìn)位逆減Mul:乘Mla:乘且累加邏輯運算And:按位與Orr:按位或EOR:按位異或BIC:位清除移位運算LSL:邏輯左移(添0)LSR:邏輯右移(添0)ASL:算術(shù)左移ASR:算術(shù)右移ROR:循環(huán)右移RRX:帶進(jìn)位位的循環(huán)右移比較指令CMP:比較CMN:比較求反TST:按位測試TEQ:按位測試求反移動指令MOV:移動MVN:移動求反內(nèi)存訪問指令LDR:裝入STR:存儲LDRH:裝入半字STRH:存儲半字LDRSH:裝入半個帶符號字LDRB:裝入字節(jié)STRB:存儲字節(jié)ADR:設(shè)置寄存器為地址2)立即數(shù)尋址Addr0,r1,#23)寄存器間接尋址LDRr0,[r1,#4]4)自動變址LDRr0,[r1,#16]!r1的內(nèi)容加16,然后用這個新值作為地址5)后變址LDRr0,[r1],#16把r1為地址的內(nèi)存數(shù)據(jù)載入到r0,然后把r1的值加入16并把新值賦值給r16)例子:x=(a+b)-c;ADRr4,aLDRr0,[r4]ADRr5,bLDRr1,[r5]ADDr3,r0,r1ADRr4,cLDRr2,[r4]SUBr3,r3,r2ADRr4,xSTRr3,[r4]2.3控制流1)B指令分支指令分支目標(biāo)計算例子B#100表示當(dāng)前程序計數(shù)器的值加上400。(100字長)2)條件碼EQ:等于0,Z=1NE:不等于0,Z=0CS:進(jìn)位置1,C=1CC:進(jìn)位清除:C=0MI:負(fù)數(shù),N=1PL:非負(fù)數(shù):N=0VS:溢出,V=1VC:非溢出:V=0HI:無符號大于,C=1且Z=0LS:無符號小于或等于,C=0或Z=1GE:有符號小于或等于,N=VLT:有符號小于,N≠VGT:有符號大于,Z=0且N=VLE:有符號小于或等于,Z=1或N≠V3)例子:if(a<b){x=5;y=c+d;}elsex=c-d;ADRr4,aLDRr0,[r4]ADRr4,bLDRr1,[r4]CMPr0,r1 ;a<b?BGEfblock ;ifa>=b,gotofblockMOVr0,#5ADRr4,xSTRr0,[r4]ADRr4,cLDRr0,[r4]ADRr4,dLDRr1,[r4]ADDr0,r0,r1 ;a+bADRr4,ySTRr0,[r4]Bafter ;branchtoendfblock:ADRr4,cLDRr0,[r4]ADRr4,dLDRr1.[r4]SUBr0,r0,r1 ;a-bADRr4,xSTRr0,[r4]after:同樣c程序,用匯編可以寫成不需要跳轉(zhuǎn)的。如下:ADRr4,aLDRr0,[r4]ADRr4,bLDRr1,[r4]CMPr0,r1 ;a<b?MOVLTr0,#5ADRLTr4,xSTRLTr0,[r4]ADRLTr4,cLDRLTr0,[r4]ADRLTr4,dLDRLTr1,[r4]ADDLTr0,r0,r1 ;a+bADRLTr4,ySTRLTr0,[r4]ADRGEr4,cLDRGEr0,[r4]ADRGEr4,dLDRGEr1.[r4]SUBGEr0,r0,r1 ;a-bADRGEr4,xSTRGEr0,[r4]習(xí)題1在ARM中實現(xiàn)C的switch語句switch(test){case0:…break;case1:…break;…}習(xí)題2在ARM中實現(xiàn)C的循環(huán)語句FIR求∑cixi1≤i≤N
for(i=0,f=0;i<N;i++) f=f+c[i]*x[i];習(xí)題1解答ADRr2,testLDRr0,[r2]ADRr1,switchtabLDRr15,[r1,r0,LSL#2]switchtabDCDcase0DCDcase1…case0…;codeforcase0case1…;codeforcase1…2.4函數(shù)x=a+b;foo(x);y=c-d;匯編:BLfoo ;分支鏈接分支前將當(dāng)前pc值存在r14中。返回只要MOVr15,r14調(diào)用過程必須注意不覆蓋r14嵌套調(diào)用上述方法不適用于嵌套調(diào)用嵌套調(diào)用時,將返回地址存堆棧voidf1(inta){f2(a);}f1 LDRr0,[r13]STRr13!,[r14]STRr13!,[r0]BLf2SUBr13,#4LDRr13!,r15三、SHARC處理器使用哈佛結(jié)構(gòu)的DSP例子:R1=DM(M0,I0),R2=PM(M8,I8);!注釋LABEL: R3=R1+R2;每條指令用分號結(jié)束,!開始為注釋3.1存儲器結(jié)構(gòu)SHARC指令48位基本數(shù)據(jù)字32位地址位32位片上帶大量的存儲器系列中的21061有1Mbit片上存儲器存儲器包括PM:程序存儲器DM:數(shù)據(jù)存儲器芯片外還能夠加更多的存儲器數(shù)據(jù)類型32位IEEE單精度浮點40位IEEE擴(kuò)展精度浮點32位整數(shù)主要設(shè)計為浮點密集型運算適用DSP改進(jìn)的哈佛結(jié)構(gòu)程序存儲器可以包含數(shù)據(jù)與指令數(shù)據(jù)可以并行取出3.2體系結(jié)構(gòu)整數(shù)操作使用R0到R15,16個整數(shù)寄存器浮點操作使用F0到F15,16個浮點寄存器所有數(shù)據(jù)都是40bit,如果32位數(shù)據(jù)存儲時,存在高32位三個數(shù)據(jù)功能單元一個ALU一個乘法器一個移位器三個模式寄存器算術(shù)狀態(tài)(ASTAT)粘著(STKY)隨著ASTAT的位被設(shè)置,但不被清除模式1(MODE1)浮點運算舍入等3.3整數(shù)運算Rn=Rx+Ry 加Rn=Rx-Ry 減Rn=Rx+Ry+CI 進(jìn)位加Rn=Rx-Ry+CI-1 借位減Rn=(Rx+Ry)/2 平均COMP(Rx,Ry) 比較Rn=Rx+CI 進(jìn)位加Rn=Rx+CI-1 借位加Rn=Rx+1 加1Rn=Rx-1 減1Rn=-Rx 求反Rn=ABSRx 絕對值Rn=PASSRx 將Rx拷貝到RnRn=RxandRy邏輯加Rn=RxorRy 邏輯或Rn=RxxorRy 邏輯異或Rn=NotRx 邏輯非Rn=Min(Rx,Ry) 求最小值Rn=Max(Rx,Ry) 求最大值Rn=ClipRxbyRy 在[-Ry,Ry]范圍內(nèi)截取Rx溢出處理溢出導(dǎo)致最大范圍的值不是循環(huán)3.4浮點運算Fn=Fx+FyFn=Fx-FyFn=ABS(Fx+Fy)Fn=ABS(Fx-Fy)Fn=(Fx+Fy)/2COMP(Fx,Fy)Fn=-FxFn=ABSFxFn=PassFxFn=RNDFx 舍入Fn=ScalbFxbyRy 用Ry換算成Fx的指數(shù)Rn=MantFx 提取Fx的尾數(shù)Rn=LOGBFx 把Fx的指數(shù)換算成整數(shù)Rn=FIXFx,Rn=TRUNCFx將浮點轉(zhuǎn)換成整數(shù)Rn=FLOATRxbyRy,FLOATRx將整數(shù)換成浮點Fn=RECIPSFx 為倒數(shù)創(chuàng)建種子Fn=RSQRTSFx 為倒數(shù)平方根創(chuàng)建種子Fn=FxCOPYSIGNFy 把Fy的符號拷貝到FxFn=Min(Fx,Fy)Fn=Max(Fx,Fy)Fn=ClipFxbyFy3.5SHARC的移位操作Rn=LSHIFTRxbyRy 邏輯移位Ry位Rn=RnORSHIFTRxbyRy 邏輯移位并邏輯或Rn=ASHIFTRxbyRy 算術(shù)移位Rn=RnORASHIFTRxbyRy 算術(shù)移位并邏輯或Rn=ROTRxbyRy 循環(huán)移位Ry位Rn=BCLRRxbyRy 清Rx中的一位Rn=BSETRxbyRY 設(shè)Rx中的一位Rn=BTGLRxbyRy 切換Rx中的1位BTSTRxbyRy 測試Rx中的1位Rn=FDEPRxbyRy 將Rx中的域累計進(jìn)Rn中Rn=RnORFDEPRxbyRy 使用OR操作累計并符號擴(kuò)展Rn=FEXTRxbyRy 提取Rx中的域Rn=EXPRx 提取指數(shù)域Rn=EXPRx(Ex) 從ALU中提取指數(shù)域Rn=LEFTZRx 提取引導(dǎo)0的個數(shù)Rn=LEFTORx 提取引導(dǎo)1的個數(shù)Rn=FPACKFx 將32位浮點數(shù)轉(zhuǎn)換為16位浮點數(shù)Rn=FUNPACKRn 將16位浮點數(shù)轉(zhuǎn)換為32位浮點數(shù)3.6數(shù)操作狀態(tài)位ASTAT中有AZ,AU,AN,AV,AC,AI,MN,MV,MU,MI,SZ,SV,SSSTKY中溢出位AOS,MOS,MVS,MUS,MIS具體含義略3.7內(nèi)存操作裝入存儲體系結(jié)構(gòu)提供用來控制裝入和存儲的特殊寄存器兩個數(shù)據(jù)地址發(fā)生器(DAG)一個是數(shù)據(jù)存儲器一個是程序存儲器DAG能夠象對數(shù)組一樣進(jìn)行訪問數(shù)據(jù)3.8DAG尋址模式1)最簡單的立即值R0=DM(0x20000000)或者R0=RM(_a)或DM(_a)=R02)絕對地址3)具有更新的后修改模式R0=DM(I3,M1)DM(I2,1)=R14)基址加偏移量尋址R0=DM(M1,I0)如I0=0x20000000,M1=4將0x20000004數(shù)據(jù)裝入R05)循環(huán)緩沖區(qū)6)反位尋址應(yīng)用于FFT3.9程序例子x=(a+b)-cR0=DM(_a);R1=DM(_b);R3=R1+R2;R2=DM(_c);R3=R3-R2;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 捐贈的演講稿7篇
- 施工現(xiàn)場工完場清管理制度
- 24.5 相似三角形的性質(zhì)(第4課時)同步練習(xí)
- 租戶消防安全的承諾書范文(34篇)
- 銷售經(jīng)理工作轉(zhuǎn)正個人總結(jié)
- 高中古詩文學(xué)案:《靜女》《涉江采芙蓉》
- 天津市紅橋區(qū)2024-2025學(xué)年高二上學(xué)期11月期中英語試題(含答案無聽力原文及音頻)
- 黑龍江省大慶市肇源縣聯(lián)盟學(xué)校2024-2025學(xué)年六年級上學(xué)期期中地理試題(含答案)
- 2024秋湖北省當(dāng)陽市實驗初級中學(xué)期中質(zhì)量監(jiān)測九年級物理試題人教版
- 2024年湖北省公務(wù)員考試《行測》真題及答案解析
- ??谑猩鐓^(qū)體育公共服務(wù)現(xiàn)狀調(diào)查分析
- 專業(yè)教學(xué)資源庫備選項目材料-測繪地理信息技術(shù)建設(shè)方案
- 人教版小學(xué)3-6年級英語單詞情況帶音標(biāo)2
- 人教版八年級上冊英語各單元作文范文匯編
- 3000道兩位數(shù)進(jìn)位退位加減法題1
- 鏈家二手房買賣合同協(xié)議書
- 2024年高級車站值班員鐵路職業(yè)技能鑒定考試題庫(含答案)
- GB/T 44257.2-2024電動土方機(jī)械用動力電池第2部分:電性能要求
- 醫(yī)療耗材供應(yīng)項目實施方案
- AQ/T 1023-2006 煤礦井下低壓供電系統(tǒng)及裝備通 用安全技術(shù)要求(正式版)
- 《影視剪輯藝術(shù)》課件
評論
0/150
提交評論