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

當前位置:首頁 > 單片機 > 單片機
[導讀] 本文介紹A了RM S3C4510B系統(tǒng)的異常中斷機制,包括異常中斷的分類,響應與返回;中斷處理程序的安裝與調用;SWI,IRQ中斷的實例與關鍵代碼。 引言 隨著人們對于電子產品的要求越來越高,以80C51系列

本文介紹A了RM S3C4510B系統(tǒng)異常中斷機制,包括異常中斷的分類,響應與返回;中斷處理程序的安裝與調用;SWI,IRQ中斷的實例與關鍵代碼。

引言


隨著人們對于電子產品的要求越來越高,以80C51系列為代表的8位處理器系統(tǒng)開始面臨越來越多的局限和挑戰(zhàn),人們對于高性能芯片和嵌入式功能的呼聲也越來越高。16/32 位的處理器系統(tǒng)得到了前所未有的關注和重視。32位ARM體系系列處理器便是其中的代表。S3C4510B處理器是基于ARM7體系16/32位RISC處理器,內部集成了8KB的CACHE/SDRAM,內嵌EARTHNET控制器,擁有7種處理器模式和內部多線程和外部多處理器的處理器結構。在嵌入式系統(tǒng)中具有重要意義的異常中斷技術在S3C4510B系統(tǒng)中也體現了ARM體系獨有的一些的特點。本文根據S3C4510B系統(tǒng)的特點,分析了該系統(tǒng)中七種異常中斷的功能及特點。并給出了SWI異常中斷(外部中斷)和IRQ異常中斷(軟件中斷)的應用實例代碼。

1 S3C4510B系統(tǒng)中的異常中斷

1.1 S3C4510B系統(tǒng)異常中斷的特點


S3C4510B系統(tǒng)中控制程序執(zhí)行流程的方式通常有三種,一是正常程序執(zhí)行過程,即根據指令類型增加程序計數器PC使程序順序執(zhí)行;二是通過跳轉的方式來控制程序的執(zhí)行,可以利用跳轉的命令執(zhí)行跳轉操作,也可以通過直接修改程序計數器來達到跳轉的目的;三是異常中斷的方式,可以根據軟件的執(zhí)行情況,外部設備的異常請求等實現內部、外部異常的處理,系統(tǒng)功能的調用和程序進程的控制等功能。


S3C4510B系統(tǒng)的異常中斷具有以下幾個特點。首先,作為ARM體系RTOS(實時操作系統(tǒng))組成部分,程序中的異常中斷必須按照ARM體系的要求進行處理器模式的轉換。其次,如果對系統(tǒng)的優(yōu)化有需求時,可以進行32位的ARM處理指令和16位的THUMB指令的轉換。另外,S3C4510B處理器正常運行時,保存的返回地址是通過將PC存入LR寄存器完成的,由于中斷產生時的計數器PC的值有時已經更新,如產生了外部中斷和快速中斷等;有時可能尚未更新,如軟件中斷和未定義指令中止等,故必須根據實際情況對返回地址進行軟件修正之后才能正確返回。最后還要注意,ARM體系支持c語言和匯編語言程序的相互之間的調用,并有ATPCS規(guī)則進行協(xié)調,所以異常中斷處理程序必需按照ATPCS規(guī)則進行寄存器處理。


1.2 S3C4510B系統(tǒng)中的異常中斷的類型


S3C4510B擁有七種不同的異常中斷類型,分別適應于不同的中斷需要。根據ARM系列處理器的特點,各種異常中斷對應于ARM系列的不同工作模式。其種類和對應關系如表1所示。


其中,復位中斷是優(yōu)先級最高的中斷。在復位引腳有效的前提下,系統(tǒng)加電或系統(tǒng)復位時都會引起復位中斷。數據訪問中止是在數據訪問指令的目標地址不存在或者該地址不允許當前指令訪問的情況下產生的。指令預取中止中斷是處理器或系統(tǒng)協(xié)處理器認為當前指令未定義,當系統(tǒng)預取該指令時,本中斷執(zhí)行。未定義中止在處理器或系統(tǒng)協(xié)處理器認為當前指令未定義時產生,故而可以根據該異常中斷機制仿真浮點向量運算??焖僦袛嗪屯獠恐袛喽际窃趯闹袛嗾埱笠_有效,且狀態(tài)寄存器中的相應中斷禁止標志位清零時產生。其中的外部中斷還可以用來進行各系統(tǒng)進程的切換;軟中斷由用戶定義,在程序運行時由SWI指令調用,可用于用戶模式下的程序調用特權模式指令。在RTOS系統(tǒng)中可以通過該中斷機制實現系統(tǒng)功能調用。


1.3 S3C4510B系統(tǒng)對異常中斷的響應


S3C4510B系統(tǒng)對異常中斷的響應流程如下:


(1) 保存處理器當前狀態(tài)寄存器CPSR的值、中斷屏蔽以及各條件標志位到將要執(zhí)行的異常中斷的SPSR中。 電子電路圖


(2) 設置當前程序狀態(tài)寄存器CPSR的值。其中包括:設置CPSR相應位的值使處理器進入特定的處理器模式;按要求屏蔽中斷,通常應該屏蔽IRQ中斷,在FIQ中斷時屏蔽FIQ中斷。

(3) 設置Lr寄存器。將中斷相應模式的Lr寄存器的值設置為異常中斷的返回地址。


(4) 處理程序計數器PC。將PC值設為相應的中斷向量的地址,從而實現跳轉以執(zhí)行中斷程序。


當處理器執(zhí)行完以上流程之后,處理器已經自中斷向量進入異常中斷的處理狀態(tài)。異常中斷處理完畢之后,在異常中斷程序的末端,處理器進入異常中斷的返回狀態(tài),其流程如下:


(1) 恢復狀態(tài)寄存器。將保存在中斷模式中的SPSR值賦給當前的狀態(tài)寄存器。


(2) 將返回地址復制到程序計數器。這樣程序將返回到異常中斷產生的下一條指令或出現問題的指令處執(zhí)行。


整個響應與返回的過程如圖1所示。


需要注意的是,對于不同的異常中斷,其返回地址的計算方法也是不同的。IRQ和FIQ異常中斷產生時,程序計數器PC已經更新,而SWI中斷和未定義指令中斷是由當前指令自身產生的,程序計數器PC尚未更新,所以要計算出下一條指令的地址來執(zhí)行返回操作;指令預取中止異常中斷和數據訪問異常中斷要求返回到出現異常的執(zhí)行現場,重新執(zhí)行操作。


2 S3C4510B系統(tǒng)中的異常中斷處理程序的安裝


S3C4510B系統(tǒng)通過異常向量表安裝異常中斷處理程序,即將異常向量表指向異常中斷處理程序的入口,實現面向異常中斷的跳轉。這里需要介紹一下S3C4510B系統(tǒng)的中斷向量表。在S3C4510B系統(tǒng)中,無論在地址重映射之前還是之后,異常中斷向量表的入口地址為固定的(見表1)。當系統(tǒng)運行到滿足異常中斷條件而產生異常中斷時,系統(tǒng)將自動跳入相應的異常中斷向量表中。而在異常向量表中保存的,正是利用跳轉指令或ldr指令指向該中斷的異常中斷處理程序的指令程序,這樣就實現了異常中斷處理程序的安裝。以SWI軟中斷為例,異常中斷安裝的基本順序如圖2所示,其中異常中斷向量的地址是固定的,其他地址為假設的。


2.1 利用跳轉指令實現異常中斷的安裝


將BL指令放置到中斷向量表的特定位置,跳轉目標地址為中斷處理程序的首地址,便可直接實現異常中斷的安裝。其優(yōu)點是BL指令可以直接保存地址,缺點是BL的跳轉范圍只有32MB的地址空間,如bl SWI_Handler。


2.2 利用ldr指令實現異常中斷的安裝


利用ldr直接向程序計數器PC中賦值也可以實現中斷處理程序的安裝。先要將異常中斷處理程序首地址的絕對地址放在鄰近的一個存儲單元中,然后用ldr命令將該內存單元中的地址讀取到PC中。其優(yōu)點是可調用程序的范圍不受限制,如:

ldr pc,SWI_ADDR
……
SWI_ADDR dcd SWI_Handler
以上兩種安裝方法各有優(yōu)缺點,需要根據實際情況來選擇。 電子技術書籍網

3 S3C4510B系統(tǒng)中SWI異常中斷實例


S3C4510B中的SWI指令可以用來實現RTOS中的系統(tǒng)功能調用。它由用戶模式下當前執(zhí)行的指令引發(fā),通過一個24位的立即數來指代SWI需要調用的系統(tǒng)功能,調用執(zhí)行的過程在特權模式中進行。


3.1 SWI異常中斷的處理程序


通常我們把SWI的中斷處理程序分為兩級,分別完成立即數的讀取和功能調用的執(zhí)行。其指令代碼如下:
……

stmfd sp!,{r0-r12,lr}
保護現場,保存寄存器的值
ldr r0,[lr,#-4]
lr寄存器保存指令
bICr0,r0,#0XFF000000 ;讀取指令中的24位立即數
……
cmp R0,#MaxOfSWI
判斷立即數是否有效
ldrls pc,[pc,r0,lsl #2]
b OutOfSWIRange ;超出范圍
JumpListofSWI
dcd SWIPro_0
dcd SWIPro_1
……
其他所有的軟中斷入口
SWIPro_0
進入SWI對應立即數0的中斷處理程序
……
對應立即數0的中斷處理程序
b EndOfSWI
SWIPro0
進入SWI對應立即數1的中斷處理程序
……
對應立即數1的中斷處理程序
b EndOfSWI
……
其他的SWI處理程序
EndOfSWI
1dmfd sp!,{r0-r12,pc}^
恢復各寄存器


3.2 SWI異常中斷的調用與返回


對于SWI異常中斷的調用要根據中斷現場所處的處理器模式進行調用。通常用戶模式下調用SWI功能只需將處理器所需要的參數存放于寄存器中,然后調用相應功能號的系統(tǒng)功能。

Mov r0,#80
假設參數為#80
swi 0X1
SWI中斷立即數1
由于SWI中斷功能調用在特權模式下執(zhí)行,故而當在特權模式下調用SWI功能時,必須對當前模式下的SPSR和寄存器LR進行保存。
stmfd sp!,{r0-r12,lr}
保存寄存器
mov r1,sp
mov r0, spsr_svc
stmfd sp!,{r0} ;保存SPSR
……
讀取立即數,調用SWI中斷處理程序
ldmfd sp!,{r0}  ;恢復SPSR
msr spsr_svc, r0
lDMDf sp!,{r0-r12,lr}^ ;恢復其他寄存器

4 S3C4510B系統(tǒng)中的IRQ異常中斷實例


4.1 IRQ異常中斷的產生


S3C4510B處理器系統(tǒng)常用于進行外部異常的響應和操作系統(tǒng)進程的控制。CPSR寄存器的I控制位置0時,處理器在指令邊界查詢是否有IRQ請求,系統(tǒng)的外部中斷管理器或者外設通過使能處理器的IRQ輸入管腳產生IRQ異常中斷。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉