www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]用戶模式(user模式),運行應(yīng)用的普通模式;快速中斷模式(fiq模式),用于支持?jǐn)?shù)據(jù)傳輸或通道處理;中斷模式(irq模式),用于普通中斷處理。超級用戶模式(svc模式),操作系統(tǒng)的保護(hù)模式?異常中斷模式(abt模式)

用戶模式(user模式),運行應(yīng)用的普通模式;

快速中斷模式(fiq模式),用于支持?jǐn)?shù)據(jù)傳輸或通道處理;

中斷模式(irq模式),用于普通中斷處理。

超級用戶模式(svc模式),操作系統(tǒng)的保護(hù)模式

?異常中斷模式(abt模式),輸入數(shù)據(jù)后登入或預(yù)取異常中斷指令

?系統(tǒng)模式(sys模式),是操作系統(tǒng)使用的一個有特權(quán)的用戶模式

?未定義模式(und模式),執(zhí)行了未定義指令時進(jìn)入該模式

外部中斷,異常操作或軟件控制都可以改變中斷模式。大多數(shù)應(yīng)用程序都時是在用戶模式下運行。進(jìn)入特權(quán)模式是為了處理中斷或異常請求或操作保護(hù)資源服務(wù)的。

這些工作模式是芯片硬件提供的程序運行的不同環(huán)境,不同的模式有不同的硬件訪問權(quán)限,使用不同的寄存器。這就給不同的程序提供了不同的權(quán)限機制,你比如說你的操作系統(tǒng)代碼運行在權(quán)限比較高的模式下,而你的應(yīng)用程序運行在權(quán)限比較低的模式下。這樣就起到了對操作系統(tǒng)代碼的保護(hù)作用。

寄存器,各個模式下可見的寄存器以及各個寄存器的功能:

ARM共有37個32位的寄存器,其中31個是通用寄存器,6個是狀態(tài)寄存器。但在同一時間,

對程序員來說并不是所有的寄存器都可見。在某一時刻存儲器是否可見(可被訪問),是處

理器當(dāng)前的工作狀態(tài)和工作模式?jīng)Q定的。其各個模式下的寄存器如圖1所示:

其中系統(tǒng)模式和用戶模式所用的寄存器是一樣的。畫三角陰影的寄存器表示在不同模式下

有不同的物理寄存器。

以下對其進(jìn)行分類說明:

通用寄存器

ARM的通用寄存器包括R0~R15,其中R0~R7是屬于未分組寄存器,各個模式下都使用同樣的寄

存器。R8~R14在FIQ模式下是有獨立的物理寄存器,其目的是加快中斷響應(yīng)速度,從硬件上

保存程序執(zhí)行現(xiàn)場。R13和R14這兩個寄存器在每種模式下都有自己的獨立寄存器。R15只有

一個,所有模式公用。

下對這些寄存器中的比較有特殊功能的做一下介紹:

?寄存器R13:在ARM指令中,常用R13做堆棧指針用。每種運行模式都有自己獨立的堆棧,用于保存中斷發(fā)生時的程序運行環(huán)境和C語言執(zhí)行時進(jìn)行過程控制。

?寄存器R14:專職持有返回點的地址,在系統(tǒng)執(zhí)行一條“跳轉(zhuǎn)并鏈接(link)”(BL)指令

的時候,R14將收到一個R15的拷貝。其他的時候,它可以用作一個通用寄存器。相應(yīng)的它

在其他模式下的私有寄存器R14_svc,R14_irq,R14_fiq,R14_abt和R14_und都同樣用來保

存在中斷或異常發(fā)生時,或時在中斷和異常中執(zhí)行了BL指令時,R15的返回值。

?寄存器R15是程序計數(shù)器(PC)。在ARM狀態(tài)下,R15的bits[1:0]為0,bits[31:2]保存了PC

的值。在Thumb狀態(tài)下,bits[0]為0同時bits[31:1]保存了PC值。

FIQ模式擁有7個私有寄存器R8-14(R8_fiq-R14_fiq)。在ARM狀態(tài)下,多數(shù)FIQ處理都不需要保存任何寄存器。用戶、中斷、異常中止,超級用戶和未定義模式都擁有2個私有寄存器,R13和R14。允許這些模式都可擁有1個私有堆棧指針和鏈接(link)寄存器。

程序狀態(tài)寄存器

ARM920T具有一個當(dāng)前程序狀態(tài)寄存器(CPSR),另外還有5個保存程序狀態(tài)寄存器(SPSRs)用于異常中斷處理。這些寄存器的功能有:

?保留最近完成的ALU操作的信息;

控制中斷的使能和禁止;

?設(shè)置處理器的操作模式。

下圖2顯示了程序狀態(tài)寄存器的位定義:


關(guān)于這些位的具體含義請參見datasheet。

異常:

當(dāng)正常的程序執(zhí)行流程因一些原因發(fā)生暫時的停止時,稱之為異常。比如芯片取到了一條不認(rèn)識的指令,當(dāng)這條指令執(zhí)行時就會發(fā)生Abort異常中止,從而進(jìn)入Abort模式。也就是說不通的條件會發(fā)生不通的異常,而不同的異常就會使處理器進(jìn)入不同的處理模式。

你想知道異常什么時候發(fā)生,怎么發(fā)生的?發(fā)生后芯片都要干些什么?怎么從這些異常中返回?異常向量表是什么?那就請你仔細(xì)閱讀datasheet的第二章program’s model,這一章對這些問題都做了詳細(xì)的說明和講解。

當(dāng)然,這些和后面的UCOS是有關(guān)系的,比如UCOS和用戶的應(yīng)用程序是統(tǒng)一編譯的,都運行在SVC模式下,當(dāng)外部中斷來時會切換到中斷模式。

請看下面的異常(中斷)向量表:


地址

異常中斷類型

進(jìn)入時處理器模式

0x00000000

Reset

Supervisor

0x00000004

Undefined instruction

Undefined

0x00000008

Software Interrupt

Supervisor

0x0000000C

Abort (prefetch)

Abort

0x00000010

Abort (data)

Abort

0x00000014

Reserved

Reserved

0x00000018

IRQ

IRQ

0x0000001C

FIQ

FIQ


異常向量表是一個填好了的跳轉(zhuǎn)指令表,中斷向量表就位于內(nèi)存地址的0開始處。當(dāng)相應(yīng)的異常發(fā)生時,CPU最后要把PC值改成向量表里的跳轉(zhuǎn)指令實現(xiàn)跳轉(zhuǎn)去執(zhí)行相應(yīng)的服務(wù)程序。當(dāng)然這時CPU的運行模式就更改了。我們看IRQ中斷異常,這個地址向量是外部中斷的入口地址,那我們知道ARM9芯片上支持的中斷源有很多,那中斷入口就一個,怎么識別到底是哪一個具體中斷源發(fā)生了那。這一部分知識就是中斷控制器的內(nèi)容了,請參加下面的文章或者參加datasheet的十四章interrupt controller。

關(guān)于更詳細(xì)的資料請參考920t的datasheet?。。。。?/p>

關(guān)于arm中斷系統(tǒng)請參考arm920t中斷系統(tǒng)詳解。和ucos相關(guān)的arm芯片知識講完了,當(dāng)然arm芯片知識還很多,參考920t的datasheet?。。。?/p>


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年9月1日 /美通社/ -- 8月29日,由國際獨立第三方檢測、檢驗和認(rèn)證機構(gòu)德國萊茵TÜV大中華區(qū)(簡稱"TÜV萊茵")...

關(guān)鍵字: 工程師 REGULATION 基礎(chǔ)知識 智能化

上海2024年8月29日 /美通社/ -- 8月18日,上海交通大學(xué)上海高級金融學(xué)院(高金/SAIF)金融MBA"科技金融實驗班"啟動日在徐匯校區(qū)舉行。啟動日當(dāng)天正式揭曉了首屆"科技金融實驗班"的培養(yǎng)體系與課程模塊。在現(xiàn)...

關(guān)鍵字: 人工智能 基礎(chǔ)知識 電子信息 節(jié)點

全世界數(shù)以百萬計的工程師和科學(xué)家都在使用 MATLAB? 分析和設(shè)計改變著我們的世界的系統(tǒng)和產(chǎn)品?;诰仃嚨?MATLAB 語言是世界上表示計算數(shù)學(xué)最自然的方式。

關(guān)鍵字: matlab入門 教學(xué) 基礎(chǔ)知識

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于數(shù)據(jù)分析、無線通信、深度學(xué)習(xí)、圖像處理與計算機視覺、信號處理、量化金融與風(fēng)險管理、機器人,控制系統(tǒng)等領(lǐng)域。

關(guān)鍵字: matlab入門 命令 基礎(chǔ)知識

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于數(shù)據(jù)分析、無線通信、深度學(xué)習(xí)、圖像處理與計算機視覺、信號處理、量化金融與風(fēng)險管理、機器人,控制系統(tǒng)等領(lǐng)域。

關(guān)鍵字: matlab入門 基礎(chǔ)知識 信號處理

上海2023年2月14日 /美通社/ -- 步入2023年第一個季度,市場依然在震蕩中前行。作為一家全球領(lǐng)先的金融科技經(jīng)紀(jì)商,ATFX為了給全球客戶提供具有前瞻性的分析報告,分析師團(tuán)隊早已密切關(guān)注金融市場動態(tài),結(jié)合各國經(jīng)...

關(guān)鍵字: ANTI RAM 基礎(chǔ)知識 SIC

我們前面主要去學(xué)習(xí)了藍(lán)牙開發(fā)所具備的基礎(chǔ)知識、常用的仿真手法,那么如何去分析我們抓到的藍(lán)牙通信包呢?不去學(xué)習(xí)藍(lán)牙通信協(xié)議,只能把抓到的Log信息,交給能看懂的人,你也最終只能當(dāng)一個測試工程師了。

關(guān)鍵字: 基礎(chǔ)知識 仿真手法 藍(lán)牙通信

(全球TMT2022年4月26日訊)The Open Group,廠商中立的技術(shù)聯(lián)盟,宣布正式發(fā)布TOGAF?標(biāo)準(zhǔn)第10版,這標(biāo)志著這一世界上使用最廣泛的企業(yè)架構(gòu)框架的開發(fā)又步入一個重要里程碑。由The Open Gr...

關(guān)鍵字: GROUP PEN 模塊化結(jié)構(gòu) 基礎(chǔ)知識

低壓差 (LDO) 穩(wěn)壓器的本質(zhì)是通過將多余的功率轉(zhuǎn)化為熱量來調(diào)節(jié)電壓,使該集成電路成為低功率或小 V IN至 V OUT差分應(yīng)用的理想解決方案??紤]到這一點,選擇合適的 LDO 和合適的封裝對于最大限度地提高應(yīng)用程序的...

關(guān)鍵字: LDO 基礎(chǔ)知識 BSP 封裝

哈嘍,大家好,我是瓜哥,致力于分享互聯(lián)網(wǎng)各領(lǐng)域干貨。前幾天,有人問瓜哥,學(xué)習(xí)編程語言有什么好的建議沒?今天簡單和大家分享幾點學(xué)習(xí)編程的建議,希望可以幫助到大家。1.只要開始,就不要怕晚瓜哥經(jīng)常看到這些問題,大四學(xué)編程還來...

關(guān)鍵字: 編程 代碼 基礎(chǔ)知識 數(shù)據(jù)結(jié)構(gòu)
關(guān)閉