ARM處理器的工作模式 ARM處理器狀態 ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換:第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令;第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態的轉變并不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處于ARM狀態。 ARM處理器狀態 進入Thumb狀態:當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處于Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。 進入ARM狀態:當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。ARM處理器模式 ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執行狀態。快速中斷模式(fiq):用于高速數據傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統使用的保護模式。數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。系統模式(sys):運行具有特權的操作系統任務。定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。ARM處理器模式 ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權模式;其中除去用戶模式和系統模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統資源等情況。ARM寄存器 ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。 關于寄存器這里就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。異常處理 當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以后,ARM微處理器會執行以下幾步操作:進入異常處理的基本步驟:將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR復制到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。 ARM微處理器對異常的響應過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當運行于 ARM 工作狀態時If == Reset or FIQ then;當響應 FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:將連接寄存器LR的值減去相應的偏移量后送到PC中。將SPSR復制回CPSR中。若在進入異常處理時設置了中斷禁止位,要在此清除。
上傳時間: 2013-11-15
上傳用戶:hanbeidang
MPEG(Moving Picture Experts Group)和VCEG(Video Coding Experts Group)已經聯合開發了一個比早期研發的MPEG 和H.263 性能更好的視頻壓縮編碼標準,這就是被命名為AVC(Advanced Video Coding),也被稱為ITU-T H.264 建議和MPEG-4 的第10 部分的標準,簡稱為H.264/AVC 或H.264。這個國際標準已經與2003 年3 月正式被ITU-T 所通過并在國際上正式頒布。為適應高清視頻壓縮的需求,2004 年又增加了FRExt 部分;為適應不同碼率及質量的需求,2006 年又增加了可伸縮編碼 SVC。
上傳時間: 2013-11-19
上傳用戶:dancnc
32位MCU原理圖
標簽: NU-TINY-SDK 120 原理圖
上傳時間: 2013-11-03
上傳用戶:dddddd55
Libsvm is a simple, easy-to-use, and efficient software for SVM classification and regression. It can solve C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM regression. It also provides an automatic model selection tool for C-SVM classification. This document explains the use of libsvm.
標簽: classification easy-to-use regression and
上傳時間: 2013-12-22
上傳用戶:二驅蚊器
?Spider-matlab工具箱,為一良好的數據分析工具箱,內建核偏最小二乘回歸(KPLS),徑向基網絡回歸(RBFnet)等;支持向量機(SVC)分類;聚類分析等.
標簽: Spider-matlab 工具箱
上傳時間: 2013-12-24
上傳用戶:佳期如夢
支撐矢量機 class CvSVM : public CvStatModel //繼承自基類CvStatModel { public: // SVM type enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 } //SVC是SVM分類器,SVR是SVM回歸 // SVM kernel type
標簽: CvStatModel public class CvSVM
上傳時間: 2014-08-19
上傳用戶:妄想演繹師
Status CreateSMatrix(RLSMatrix &M) { // 創建稀疏矩陣M int i Triple T Status k printf("請輸入矩陣的行數,列數,非零元素數:") scanf("%d,%d,%d",&M.mu,&M.nu,&M.tu) M.data[0].i=0 // 為以下比較做準備 for(i=1 i<=M.tu i++) { do {
標簽: Status CreateSMatrix RLSMatrix Triple
上傳時間: 2013-12-22
上傳用戶:shanml
LiScNLS is a Matlab application for the numerical study of some nonlinear differential equations of the form Lu=Nu, using the Lyapunov-Schmidt method. Downloading the LiScNLS package creates a new LiScNLS folder on the computer.
標簽: differential application equations numerical
上傳時間: 2013-12-21
上傳用戶:hustfanenze
libsvm is a simple, easy-to-use, and efficient software for SVM classification and regression. It solves C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM regression. It also provides an automatic model selection tool for C-SVM classification. This document explains the use of libsvm.
標簽: classification easy-to-use regression and
上傳時間: 2013-12-18
上傳用戶:253189838
統計模式識別、線性或非線性回歸以及人工神經網絡等方法是數據挖掘的有效工具,支持向量分類(support vector classification,簡稱SVC)算法是一個很有發展前景的方向。
上傳時間: 2014-02-16
上傳用戶:lifangyuan12