ARM處理器的工作模式 ARM處理器狀態(tài) ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時處理器執(zhí)行32位的字對齊的ARM指令;第二種為Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。在程序的執(zhí)行過程中,微處理器可以隨時在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時,應該處于ARM狀態(tài)。 ARM處理器狀態(tài) 進入Thumb狀態(tài):當操作數(shù)寄存器的狀態(tài)位(位0)為1時,可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當處理器處于Thumb狀態(tài)時發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態(tài)。 進入ARM狀態(tài):當操作數(shù)寄存器的狀態(tài)位為0時,執(zhí)行BX指令時可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM處理器模式 ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統(tǒng)使用的保護模式。數(shù)據(jù)訪問終止模式(abt):當數(shù)據(jù)或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務。定義指令中止模式(und):當未定義的指令執(zhí)行時進入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM處理器模式 ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統(tǒng)資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統(tǒng)資源等情況。ARM寄存器 ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數(shù)器(PC)在內(nèi)。這些寄存器都是32位寄存器。以及6個32位狀態(tài)寄存器。 關于寄存器這里就不詳細介紹了,有興趣的人可以上網(wǎng)找找,很多這方面的資料。異常處理 當正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態(tài)必須保留,這樣當異常處理完成之后,當前程序可以繼續(xù)執(zhí)行。處理器允許多個異常同時發(fā)生,它們將會按固定的優(yōu)先級進行處理。當一個異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作:進入異常處理的基本步驟:將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。將CPSR復制到相應的SPSR中。根據(jù)異常類型,強制設置CPSR的運行模式位。強制PC從相關的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應的異常處理程序處。如果異常發(fā)生時,處理器處于Thumb狀態(tài),則當異常向量地址加載入PC時,處理器自動切換到ARM狀態(tài)。 ARM微處理器對異常的響應過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當運行于 ARM 工作狀態(tài)時If == Reset or FIQ then;當響應 FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應的偏移量后送到PC中。將SPSR復制回CPSR中。若在進入異常處理時設置了中斷禁止位,要在此清除。
上傳時間: 2013-11-15
上傳用戶:hanbeidang
本文介紹了基于USB單片機的彈載測量系統(tǒng)地面測試臺的固件程序設計方法。地面測試臺用來對彈載數(shù)據(jù)記錄裝置進行自檢,在本測試臺上采用EZ-USB FX2系列單片機CY7C68013來實現(xiàn)上位機與地面測試臺間的通信,固件程序的功能包括產(chǎn)生測試臺狀態(tài)信號、下載各種信號源數(shù)據(jù)及進行實時監(jiān)測數(shù)據(jù)回讀。文中通過測試臺的工程實例,詳細介紹了端口模式下固件程序的編寫流程,并給出了部分程序代碼。
上傳時間: 2013-10-30
上傳用戶:thesk123
本文設計一種以C8051F020 單片機為處理器,雙模式USB 為接口的比色計儀器。該儀器可以工作在USB 設備和主機兩種模式。在設備模式下,能直接與計算機進行數(shù)據(jù)通信;在主機模式下,能讀寫U盤,通過U 盤進行數(shù)據(jù)的傳輸。儀器采用雙USB 插座,由單片機判斷確定設備的工作方式。
上傳時間: 2013-11-01
上傳用戶:ZZJ886
SPMC75低功耗操作:本應用例介紹如何設置使SPMC75F2413A進入節(jié)電模式。1.2 模式簡介SPMC75F2413A有標準模式和兩種節(jié)電模式(等待模式和就緒模式),相應功能如下: 標準模式(Normal)芯片在標準模式下運行耗電最大,所有的外設都可用。 等待模式(Wait)等待模式下,只有CPU掉電停止工作以降低功耗。其它外設保持著先前的狀態(tài)并且功能可用。一旦喚醒,CPU將繼續(xù)工作,執(zhí)行接下去的指令。 就緒模式(Standby)就緒模式下所有的模塊都變?yōu)闊o效,此時功耗達到最小。喚醒后,CPU復位并回到標準運行模式。其它外設可以通過軟件分別設置關閉。就緒模式下所有功能都會關閉,只有系統(tǒng)時鐘仍在工作。如果按鍵喚醒功能為有效,這兩種模式都可以通過按鍵喚醒。具體喚醒源的分類及喚醒功能的介紹請參考《SPMC75F2413A編程指南》。【注意】如果MCP定時器3或定時器4已經(jīng)處于PWM輸出模式時,芯片不會進入等待或就緒模式。同樣在仿真模式下也無法進入等待或就緒模式。
上傳時間: 2013-11-20
上傳用戶:ming52900
時鐘和低功耗模式片內(nèi)集成有PLL(鎖相環(huán))電路。外接的基準晶體+PLL(鎖相環(huán))電路共同組成系統(tǒng)時鐘電路。有關引腳:XTAL1/CLKIN:外接的基準晶體到片內(nèi)振蕩器輸入引腳;如使用外部振蕩器,外部振蕩器的輸出必須接該腳。XTAL2:片內(nèi)PLL振蕩器輸出引腳;CLKOUT/IOPE0:該腳可作為時鐘輸出或通用IO腳;可用來輸出CPU時鐘或看門狗定時器時鐘;由系統(tǒng)控制狀態(tài)寄存器(SCSR1)中的位14決定。
上傳時間: 2013-10-24
上傳用戶:1159797854
一、實驗目的1.掌握定時/計數(shù)器、輸入/輸出接口電路設計方法。 2.掌握中斷控制編程技術的方法和應用。3.掌握8086匯編語言程序設計方法。 二、實驗內(nèi)容與要求 微機燈光控制系統(tǒng)主要用于娛樂場所的彩燈控制。系統(tǒng)的彩燈共有12組,在實驗時用12個發(fā)光二極管模擬。1. 基本要求:燈光控制共有8種模式,如12個燈依次點亮;12個燈同時閃爍等八種。系統(tǒng)可以通過鍵盤和顯示屏的人機對話,將8種模式進行任意個數(shù)、任意次序的連接組合。系統(tǒng)不斷重復執(zhí)行輸入的模式組合,直至鍵盤有任意一個鍵按下,退出燈光控制系統(tǒng),返回DOS系統(tǒng)。2. 提高要求:音樂彩燈控制系統(tǒng),根據(jù)音樂的變化控制彩燈的變化,主要有以下幾種:第一種為音樂節(jié)奏控制彩燈,按音樂的節(jié)拍變換彩燈花樣。第二種音律的強弱(信號幅度大小)控制彩燈。強音時,燈的亮度加大,且被點亮的數(shù)目增多。第三種按音調(diào)高低(信號頻率高低)控制彩燈。低音時,某一部分燈點亮;高音時,另一部分點亮。 三、實驗報告要求 1.設計目的和內(nèi)容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單5.設計結(jié)果和體會(包括遇到的問題及解決的方法) 四、設計原理我們以背景霓虹燈的一種顯示效果為例,介紹控制霓虹燈顯示的基本原理。設有一排 n 段水平排列的霓虹燈,某種顯示方式為從左到右每0.2 秒逐個點亮。其控制過程如下: 若以“ 1 ”代表霓虹燈點亮,以“ 0 ”代表霓虹燈熄滅,則開始時刻, n 段霓虹燈的控制信號均為“ 0 ”,隨后,控制器將一幀 n 個數(shù)據(jù)送至 n 段霓虹燈的控制端,其中,最左邊的一段霓虹燈對應的控制數(shù)據(jù)為“ 1 ”,其余的數(shù)據(jù)均為零,即 1000 … 000 。當 n 個數(shù)據(jù)送完以后,控制器停止送數(shù),保留這種狀態(tài)(定時) 0.2 秒,此時,第 1 段霓虹燈被點亮,其余霓虹燈熄滅。隨后,控制器又在極短的時間內(nèi)將數(shù)據(jù) 1100 … 000 送至霓虹燈的控制端,并定時 0.2 秒,這段時間,前兩段霓虹燈被點亮。由于送數(shù)據(jù)的過程很快,我們觀測到的效果是第一段霓虹燈被點亮 0.2 秒后,第 2 段霓虹燈接著被點亮,即每隔 0.2 秒顯示一幀圖樣。如此下去,最后控制器將數(shù)據(jù) 1111 … 111 送至 n 段霓虹燈的控制端,則 n 段霓虹燈被全部點亮。 只要改變送至每段霓虹燈的數(shù)據(jù),即可改變霓虹燈的顯示方式,顯然,我們可以通過合理地組合數(shù)據(jù)(編程)來得到霓虹燈的不同顯示方式。 五、總體方案論證分析系統(tǒng)設計思路如下:1) 采集8位開關輸入信號,若輸入數(shù)據(jù)為0時,將其修改為1。確定輸入的硬件接口電路。采樣輸入開關量,并存入NUM的軟件程序段。2) 以12個燈依次點亮為例(即燈光控制模式M1),考慮與其相應的燈光顯示代碼數(shù)據(jù)。確定顯示代碼數(shù)據(jù)輸出的接口電路。輸出一個同期顯示代碼的軟件程序段(暫不考慮時隙的延時要求)。3) 應用定時中斷服務和NUM數(shù)據(jù),實現(xiàn)t=N×50ms的方法。4) 實現(xiàn)某一種模式燈光顯示控制中12個時隙一個周期,共重復四次的控制方法。要求在初始化時采樣開關輸入數(shù)據(jù)NUM,并以此控制每一時隙的延時時間;在每一時隙結(jié)束時,檢查有無鍵按下,若是退出鍵按下,則結(jié)束燈光控制,返回DOS系統(tǒng),若是其他鍵就返回主菜單,重新輸入控制模式數(shù)據(jù)。5) 通過人機對話,輸入8種燈光顯示控制模式的任意個數(shù)、任意次序連接組合的控制模式數(shù)據(jù)串(以ENTER鍵結(jié)尾)。對輸入的數(shù)據(jù)進行檢查,若數(shù)據(jù)都在1 - 8之間,則存入INBUF;若有錯誤,則通過屏幕顯示輸入錯誤,準備重新輸入燈光顯示控制模式數(shù)據(jù)。6) 依次讀取INBUF中的控制模式數(shù)據(jù)進行不同模式的燈光顯示控制,在沒有任意鍵按下的情況下,系統(tǒng)從第一個控制模式數(shù)據(jù)開始,順序工作到最后一個控制模式數(shù)據(jù)后,又返回到第一個控制模式數(shù)據(jù),不斷重復循環(huán)進行燈光顯示控制。7) 本系統(tǒng)的軟件在總體上有兩部份,即主程序(MAIN)和實時中斷服務程序(INTT)。討論以功能明確、相互界面分割清晰的軟件程序模塊化設計方法。即確定有關功能模塊,并畫出以功能模塊表示的主程序(MAIN)流程框圖和定時中斷服務程序的流程框圖。 六、硬件電路設計 以微機實驗平臺和PC機資源為硬件設計的基礎,不需要外加電路。主要利用了以下的資源:1.8255并行口電路8255并行口電路主要負責數(shù)據(jù)的輸入與輸出,可以輸出數(shù)據(jù)控制發(fā)光二極管的亮滅和讀取乒乓開關的數(shù)據(jù)。實驗時可以將8255的A口、B口和一組發(fā)光二極管相連,C口和乒乓開關相連。2.8253定時/計數(shù)器8253定時/計數(shù)器和8259中斷控制器一起實現(xiàn)時隙定時。本設計的定時就是采用的t=N×50ms的方法,50ms由8253定時/計數(shù)器的計數(shù)器0控制定時,N是在中斷服務程序中軟件計時。8253的OUT0接到IRQ2,產(chǎn)生中斷請求信號。8253定時/計數(shù)器定時結(jié)束會發(fā)出中斷信號,進入中斷服務程序。3.PC機資源本設計除了利用PC機作為控制器之外,還利用了PC機的鍵盤和顯示器。鍵盤主要是輸入控制模式數(shù)據(jù),顯示器就是顯示提示信息。 七、軟件設計 軟件主要分為主程序(MAIN)和中斷服務程序(INTT),主程序包含系統(tǒng)初始化、讀取乒乓開關、讀取控制模式數(shù)據(jù)以及按鍵處理等模塊。中斷服務程序主要是定時時間到后根據(jù)控制模式數(shù)據(jù)點亮相應的發(fā)光二極管。1.主程序主程序的程序流程圖如圖1所示。
上傳時間: 2014-04-05
上傳用戶:q986086481
本章介紹dsPIC30F器件系列的看門狗定時器(WDT)和低功耗模式。dsPIC DSC 器件有兩種低功耗模式,可以通過執(zhí)行PWRSAV指令進入:• 休眠模式:CPU、系統(tǒng)時鐘源和任何依靠系統(tǒng)時鐘源工作的外設都被禁止。這是器件的最低功耗模式。• 空閑模式:CPU 被禁止,但是系統(tǒng)時鐘源繼續(xù)工作。外設繼續(xù)工作,但可以有選擇地禁止。WDT在使能時使用內(nèi)部LPRC 時鐘源工作,而且如果WDT沒有被軟件清零,它可以通過復位器件來檢測系統(tǒng)軟件的異常情況。可以使用WDT后分頻器選擇不同的WDT超時周期。WDT也可用于將器件從休眠或空閑模式喚醒。
上傳時間: 2014-02-01
上傳用戶:金苑科技
提出了一種改進的LSM-ALSM子空間模式識別方法,將LSM的旋轉(zhuǎn)策略引入ALSM,使子空間之間互不關聯(lián)的情況得到改善,提高了ALSM對相似樣本的區(qū)分能力。討論中以性能函數(shù)代替經(jīng)驗函數(shù)來確定拒識規(guī)則的參數(shù),實現(xiàn)了識別率、誤識率與拒識率之間的最佳平衡;通過對有限字符集的實驗結(jié)果表明,LSM-ALSM算法有效地改善了分類器的識別率和可靠性。關 鍵 詞 學習子空間; 性能函數(shù); 散布矩陣; 最小描述長度在子空間模式識別方法中,一個線性子空間代表一個模式類別,該子空間由反映類別本質(zhì)的一組特征矢量張成,分類器根據(jù)輸入樣本在各子空間上的投影長度將其歸為相應的類別。典型的子空間算法有以下三種[1, 2]:CLAFIC(Class-feature Information Compression)算法以相關矩陣的部分特征向量來構(gòu)造子空間,實現(xiàn)了特征信息的壓縮,但對樣本的利用為一次性,不能根據(jù)分類結(jié)果進行調(diào)整和學習,對樣本信息的利用不充分;學習子空間方法(Leaning Subspace Method, LSM)通過旋轉(zhuǎn)子空間來拉大樣本所屬類別與最近鄰類別的距離,以此提高分類能力,但對樣本的訓練順序敏感,同一樣本訓練的順序不同對子空間構(gòu)造的影響就不同;平均學習子空間算法(Averaged Learning Subspace Method, ALSM)是在迭代訓練過程中,用錯誤分類的樣本去調(diào)整散布矩陣,訓練結(jié)果與樣本輸入順序無關,所有樣本平均參與訓練,其不足之處是各模式的子空間之間相互獨立。針對以上問題,本文提出一種改進的子空間模式識別方法。子空間模式識別的基本原理1.1 子空間的分類規(guī)則子空間模式識別方法的每一類別由一個子空間表示,子空間分類器的基本分類規(guī)則是按矢量在各子空間上的投影長度大小,將樣本歸類到最大長度所對應的類別,在類x()iω的子空間上投影長度的平方為()211,2,,()argmax()jMTkkjpg===Σx (1)式中 函數(shù)稱為分類函數(shù);為子空間基矢量。兩類的分類情況如圖1所示。
上傳時間: 2013-12-25
上傳用戶:熊少鋒
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產(chǎn)生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態(tài)判斷哪個按鍵被按下。 本實驗採用中斷式實現(xiàn)使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
DSP 設置CCS于硬件仿真模式
上傳時間: 2014-12-28
上傳用戶:sy_jiadeyi