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

正文內(nèi)容

嵌入式系統(tǒng)開發(fā)畢業(yè)論文-在線瀏覽

2024-08-08 13:29本頁面
  

【正文】 R6 v3R7 R7 R7 R7 v4R8 R8 R8 R8_fiq v5R9 R9 R9 R9_fiq v6R10 R10 R10 R10_fiq slR11 R11 R11 R11_fiq fpR12 R12 R12 R12_fiq ipR13 R13_svc R13_irq R13_fiq spR14 R14_svc R14_irq R14_fiq lr R15 / PC pc最右側(cè)的列是 APCS 代碼使用的名字。最顯著的一點(diǎn)是對這些例程來自哪里沒有明確的限制。 APCS 定義了: 程序計(jì)數(shù)器構(gòu)造如下圖22: 2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ 圖22 程序計(jì)數(shù)器構(gòu)造n 條件位:n N = 1結(jié)果為負(fù),0結(jié)果為正或0n Z = 1結(jié)果為0,0結(jié)果不為0n C =1進(jìn)位,0借位n V =1結(jié)果溢出,0結(jié)果沒溢出n Q 位:n 僅ARM 5TE/J架構(gòu)支持n 指示增強(qiáng)型DSP指令是否溢出n J 位n 僅ARM 5TE/J架構(gòu)支持n J = 1: 處理器處于Jazelle狀態(tài)n 中斷禁止位:n I = 1: 禁止 IRQ.n F = 1: 禁止 FIQ.n T Bitn 僅ARM xT架構(gòu)支持n T = 0: 處理器處于 ARM 狀態(tài)n T = 1: 處理器處于 Thumb 狀態(tài)n Mode位(處理器模式位):n 0b10000 Usern 0b10001 FIQn 0b10010 IRQn 0b10011 Supervisorn 0b10111 Abortn 0b11011 Undefinedn 0b11111 Systemn 當(dāng)處理器執(zhí)行在ARM狀態(tài):n 所有指令 32 bits 寬n 所有指令必須 word 對齊n 所以 pc值由bits [31:2]決定, bits [1:0] 未定義 (所以指令不能halfword / byte對齊).n 當(dāng)處理器執(zhí)行在Thumb狀態(tài):n 所有指令 16 bits 寬n 所有指令必須 halfword 對齊n 所以 pc值由bits [31:1]決定, bits [0] 未定義 (所以指令不能 byte對齊).n 當(dāng)處理器執(zhí)行在Jazelle狀態(tài):n 所有指令 8 bits 寬n 處理器執(zhí)行 word 存取一次取4條指令 ARM指令集 ARM存貯訪問指令A(yù)RM存貯訪問指令如下表21:        表21 ARM存貯訪問指令助記符說明操作條件碼位置MUL Rd,Rm,Rs32位乘法指令Rd←Rm*Rs (Rd≠Rm)MUL{cond}{S}MLA Rd,Rm,Rs,Rn32位乘法指令Rd←Rm*Rs+Rn (Rd≠Rm)MLA{cond}{S}UMULL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*RsUMULL{cond}{S}UMLAL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*Rs+(RdLo,RdHi)UMLAL{cond}{S}SMULL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*RsSMULL{cond}{S}SMLAL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*Rs+(RdLo,RdHi)SMLAL{cond}{S} 數(shù)據(jù)處理指令數(shù)據(jù)處理指令如下表22            表22 數(shù)據(jù)處理指令助記符號說明操作條件碼位置MOV Rd,operand2數(shù)據(jù)轉(zhuǎn)送Rdoperand2MOV {cond}{S}MVN Rd,operand2數(shù)據(jù)非轉(zhuǎn)送Rd(NOT)operand2MVN {cond}{S}ADD Rd,Rn,operand2加法運(yùn)算指令RdRn+operand2ADD {cond}{S}SUB Rd,Rn,operand2減法運(yùn)算指令RdRnoperand2SUB {cond}{S}RSB Rd,Rn,operand2逆向減法指令Rdoperand2RnRSB {cond}{S}ADC Rd,Rn,operand2帶進(jìn)位加法RdRn+operand2+carryADC {cond}{S}RSC Rd,Rn,operand2帶進(jìn)位減法RdRnperand2(NOT)CarryRSC {cond}{S}AND Rd,Rn,operand2帶進(jìn)位逆向減法RdRnamp。operand2TST {cond}TEQ Rd,Rn,operand2相等測試指令標(biāo)志N、Z、C、VRn^operand2TEQ {cond} 乘法指令乘法指令如下表23:           表23 乘法指令助記符說明操作條件碼位置MUL Rd,Rm,Rs32位乘法指令Rd←Rm*Rs (Rd≠Rm)MUL{cond}{S}MLA Rd,Rm,Rs,Rn32位乘法指令Rd←Rm*Rs+Rn (Rd≠Rm)MLA{cond}{S}UMULL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*RsUMULL{cond}{S}UMLAL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*Rs+(RdLo,RdHi)UMLAL{cond}{S}SMULL RdLo,RdHi,Rm,Rs64位無符號乘法指令(RdLo,RdHi)←Rm*RsSMULL{cond}{S}SMLAL{cond}{S}SMLAL{cond}{S}SMLAL{cond}{S}SMLAL{cond}{S} 跳轉(zhuǎn)指令跳轉(zhuǎn)指令如下表24:           表24 跳轉(zhuǎn)指令助記符說明操作條件碼位置B label跳轉(zhuǎn)指令Pc←labelB{cond}BL label帶鏈接的跳轉(zhuǎn)指令LR←PC4,PC←labelBL{cond}RX Rm帶狀態(tài)切換的跳轉(zhuǎn)指令PC←lable,切換處理狀態(tài)BX{cond} 雜項(xiàng)指令雜項(xiàng)指令如下表25:           表25 雜項(xiàng)指令助記符說明操作條件碼位置SWI immed_24軟中斷指令產(chǎn)生軟中斷,處理器進(jìn)入管理模式SWI{cond}MRS Rd,psr讀狀態(tài)寄存器指令Rd←psr,psr為CPSR或SPSRMRS{cond}MRS psr_fields,Rd/immed_8r寫狀態(tài)寄存器指令Psr_fields←Rd/immed_8r,psr為CPSR或SPSRMSR{cond} Thumb指令集Thumb指令可以作是ARM指令壓縮形式的子集,是針對代碼密度的問題而提出的,它具有16位的代碼密度。Thumb指令集沒有協(xié)處理器指令。  Thumb指令與ARM指令在實(shí)現(xiàn)上差別不大,在此就不再對Thumb指令集進(jìn)行詳細(xì)的介紹了。C/OSⅡ的移植 移植的要求和準(zhǔn)備這一章介紹如何將181。所謂移植,就是使一個(gè)實(shí)時(shí)內(nèi)核能在某個(gè)微處理器或微控制器上運(yùn)行。C/OSⅡ代碼是用C語言寫的;但仍需要用C和匯編語言寫一些與處理器相關(guān)的代碼,這是因?yàn)?81。由于181。C/OSⅡ的移植相對來說是比較容易的。與大多商用RTOS不同的是,μC/OSII公開所有的源代碼,90%的代碼使用標(biāo)準(zhǔn)的ANSI C語言書寫,程序可讀性強(qiáng)、移植性好;同時(shí)它可免費(fèi)獲得,即使商業(yè)應(yīng)用也只收取少量的許可費(fèi)用。要使181?!?用C語言就可以打開和關(guān)閉中斷?!?處理器支持能夠容納一定量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧。C/OSⅡ的工作實(shí)際上是非常簡單的。C/OSⅡ的要求,并且已經(jīng)有了必要工具。C/OSⅡ的軟硬件結(jié)構(gòu)體系Samsung S3C44B0X微處理器是三星公司專為手持設(shè)備和其它嵌入式應(yīng)用提供的高性價(jià)比的微控制器解決方案。目前,國內(nèi)應(yīng)用較為廣泛。C/OSⅡ應(yīng)用程序181。C/OSⅡ.C 181。C/OSⅡ設(shè)置(應(yīng)用相關(guān))181。C/OSⅡ編譯器相關(guān)定義存儲器系統(tǒng)時(shí)鐘外圍設(shè)備處 理 器圖31 181。應(yīng)用程序處于整個(gè)系統(tǒng)的頂層,每個(gè)任務(wù)都可以認(rèn)為自已獨(dú)占了CPU,因而可以設(shè)計(jì)成為一個(gè)無限循環(huán)。大部分的μC/OSII代碼是使用ANSI C語言書寫的,因此μC/OSII的可移植性好,然而仍需要使用C和匯編語言寫一些處理器相關(guān)代碼。S3C44B0X處理器完全滿足上述要求。*************************************************與編譯器相關(guān)的數(shù)據(jù)類型*************************************************typedef unsigned char BOOLEAN。 //8位無符號整數(shù)typedef signed char INT8S。 //16位有符號整數(shù)typedef signed short INT16S。 //32位無符號整數(shù)typedef signed long INT32S。 //單精度浮點(diǎn)數(shù)typedef double FP64。 /*堆棧入口寬度為16位與ARM處理器相關(guān)的代碼:*/define OS_ENTER_CRITICAL () ARMEnableInt() //開啟中斷define OS_STK_GROWTH 1 //堆棧由高地址向低地址增長()void OSTaskStkInit(void(task)(void *pd),void *pdata,void *ptos,INT16U opt){ unsigned int *stk。 /*因“opt”變量沒有用到,防止編譯器產(chǎn)生警告*/stk =(unsigned int *)ptos。 /*lr*/*stk=(unsigned int)task /*pc*/*stk=0。 /*r11*/*stk=0。 /*r9*/*stk=0。 /*r7*/*stk=0。 /*r5*/*stk=0。 /*r3*/*stk=0。 /*r1*/*stk=(unsigned int)pdata。 /*cpsr IRQ,*stk=(SVC32MODE|0x0)。}后5個(gè)函數(shù)是鉤子函數(shù),可以不加代碼:void OSTaskCreateHook(OS_TCB *ptcb)void OSTaksDelHool (OS_TCB *ptcb)void OSTaskSwHook(void)void OSTaskStatHook(void)(3)用匯編語言編寫4個(gè)與處理器相關(guān)的函數(shù)()OSStartHighRdy() ;運(yùn)行優(yōu)先級最高的就緒任務(wù)LDR r4,addr_OSTCBCur ;得到當(dāng)前任務(wù)的TCB地址LDR r5,addr_OSTCBHighRdy ;得到高優(yōu)先級任務(wù)的TCB地址LDR r5,addr_OSTCBHighRdy ;得到高優(yōu)先級任務(wù)的TCB地址LDR r5,[r5] ;得到堆棧指針LDR sp,[r5] ;切換到新的堆棧STR r5,[r4]         ;設(shè)置新的當(dāng)前任務(wù)的TCB地址LDMFD sp!,{r4}MSR CPSR_cxsf,r4LDMFD sp!,{r0r12,lr,pc}   ;開始新的任務(wù)ENDOSCtxsw()           ;任務(wù)級的任務(wù)切換函數(shù)STMFD sp!,{lr}       ?。槐4鍼C指針STMFD sp!,{lr}       ??;保存lr指針STMFD sp!,{r0r12}    ?。槐4婕拇嫫魑募头祷氐刂稭RS r4,CPSRSTMF
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1