基于ARM9芯片S3C2410異常中斷程序設(shè)計(jì)
發(fā)布時(shí)間:2008/8/29 0:00:00 訪問(wèn)次數(shù):1055
驗(yàn)證的代碼詳細(xì)分析了基于arm嵌入式系統(tǒng)的異常處理流程,本文結(jié)合經(jīng)過(guò)實(shí)際驗(yàn)證的代碼對(duì)arm9中斷處理流程進(jìn)行分析,并設(shè)計(jì)出基于s3c2410芯片的外部中斷處理程序。 arm9 arm9處理器 arm處理器 嵌入式系統(tǒng) 嵌入式
s3c2410x 的中斷控制寄存器能接收來(lái)自56個(gè)中斷源的請(qǐng)求。內(nèi)部的外圍模塊和外部管腳產(chǎn)生的多個(gè)中斷請(qǐng)求通過(guò)中斷控制器沖裁后,向arm920t核發(fā)出fiq或者 irq中斷。arm內(nèi)核只有2個(gè)外部中斷輸入信號(hào)nirq和nfiq,在具體嵌入式系統(tǒng)中,需要用中斷控制器管理多個(gè)外部中斷源,選擇其中一個(gè)中斷,通過(guò) nirq或nfiq向arm內(nèi)核發(fā)出中斷請(qǐng)求。
arm920t內(nèi)核可以識(shí)別正常中斷請(qǐng)求和快速中斷請(qǐng)求兩種類型的外部中斷,中斷的行為模式由中斷控制器來(lái)設(shè)置。s3c2410x的中斷控制器包括6類寄存器:中斷源狀態(tài)寄存器、中斷模式寄存器、中斷屏蔽寄存器、優(yōu)先級(jí)寄存器、中斷狀態(tài)寄存器,以及中斷偏移寄存器。
在初始化程序中,需要選擇相應(yīng)管腳的功能,在此定義gpf3為eint3模式,通過(guò)外部中斷控制寄存器extint0設(shè)定eint3是下降沿觸發(fā)方式,通過(guò)設(shè)置中斷源懸掛寄存器srcpnd、中斷懸掛寄存器intpnd和中斷屏蔽寄存器intmsk開(kāi)啟eint3。中斷模式寄存器和中斷優(yōu)先級(jí)寄存器采用系統(tǒng)默認(rèn)方式。具體代碼實(shí)現(xiàn)如下:
void eint_init(void){
rgpfcon = (rgpfcon & 0x3f0c)|(1<<7);
rextint0 = (rextint0 & ~(0x7<<12)) | 0x2<<12;
pisr_eint3=(u32)eint3int;
rsrcpnd = bit_eint3;
rintpnd = bit_eint3;
rintmsk=~( bit_eint3);
}
如果采用eint4~eint23之間的中斷源,還需要設(shè)置外部中斷懸掛寄存器eintpend和外部中斷掩碼寄存器eintmask的相關(guān)位。
在c語(yǔ)言的main()程序中調(diào)用eint_init()函數(shù),即可完成中斷處理的初始化操作。 若外部下降沿信號(hào)接到gpf3管腳,就可以調(diào)用eint3int中斷處理函數(shù)。
總之,本文采用的異常處理程序設(shè)計(jì)方式靈活可靠,可以在系統(tǒng)運(yùn)行期間動(dòng)態(tài)修改中斷向量表,利用c語(yǔ)言也可實(shí)現(xiàn)中斷處理函數(shù)的動(dòng)態(tài)配置。在所設(shè)計(jì)的鍵盤處理程序中采用該方法,取得了很好地效果,該方法具有很強(qiáng)的通用性。
歡迎轉(zhuǎn)載,信息來(lái)自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
驗(yàn)證的代碼詳細(xì)分析了基于arm嵌入式系統(tǒng)的異常處理流程,本文結(jié)合經(jīng)過(guò)實(shí)際驗(yàn)證的代碼對(duì)arm9中斷處理流程進(jìn)行分析,并設(shè)計(jì)出基于s3c2410芯片的外部中斷處理程序。 arm9 arm9處理器 arm處理器 嵌入式系統(tǒng) 嵌入式
s3c2410x 的中斷控制寄存器能接收來(lái)自56個(gè)中斷源的請(qǐng)求。內(nèi)部的外圍模塊和外部管腳產(chǎn)生的多個(gè)中斷請(qǐng)求通過(guò)中斷控制器沖裁后,向arm920t核發(fā)出fiq或者 irq中斷。arm內(nèi)核只有2個(gè)外部中斷輸入信號(hào)nirq和nfiq,在具體嵌入式系統(tǒng)中,需要用中斷控制器管理多個(gè)外部中斷源,選擇其中一個(gè)中斷,通過(guò) nirq或nfiq向arm內(nèi)核發(fā)出中斷請(qǐng)求。
arm920t內(nèi)核可以識(shí)別正常中斷請(qǐng)求和快速中斷請(qǐng)求兩種類型的外部中斷,中斷的行為模式由中斷控制器來(lái)設(shè)置。s3c2410x的中斷控制器包括6類寄存器:中斷源狀態(tài)寄存器、中斷模式寄存器、中斷屏蔽寄存器、優(yōu)先級(jí)寄存器、中斷狀態(tài)寄存器,以及中斷偏移寄存器。
在初始化程序中,需要選擇相應(yīng)管腳的功能,在此定義gpf3為eint3模式,通過(guò)外部中斷控制寄存器extint0設(shè)定eint3是下降沿觸發(fā)方式,通過(guò)設(shè)置中斷源懸掛寄存器srcpnd、中斷懸掛寄存器intpnd和中斷屏蔽寄存器intmsk開(kāi)啟eint3。中斷模式寄存器和中斷優(yōu)先級(jí)寄存器采用系統(tǒng)默認(rèn)方式。具體代碼實(shí)現(xiàn)如下:
void eint_init(void){
rgpfcon = (rgpfcon & 0x3f0c)|(1<<7);
rextint0 = (rextint0 & ~(0x7<<12)) | 0x2<<12;
pisr_eint3=(u32)eint3int;
rsrcpnd = bit_eint3;
rintpnd = bit_eint3;
rintmsk=~( bit_eint3);
}
如果采用eint4~eint23之間的中斷源,還需要設(shè)置外部中斷懸掛寄存器eintpend和外部中斷掩碼寄存器eintmask的相關(guān)位。
在c語(yǔ)言的main()程序中調(diào)用eint_init()函數(shù),即可完成中斷處理的初始化操作。 若外部下降沿信號(hào)接到gpf3管腳,就可以調(diào)用eint3int中斷處理函數(shù)。
總之,本文采用的異常處理程序設(shè)計(jì)方式靈活可靠,可以在系統(tǒng)運(yùn)行期間動(dòng)態(tài)修改中斷向量表,利用c語(yǔ)言也可實(shí)現(xiàn)中斷處理函數(shù)的動(dòng)態(tài)配置。在所設(shè)計(jì)的鍵盤處理程序中采用該方法,取得了很好地效果,該方法具有很強(qiáng)的通用性。
歡迎轉(zhuǎn)載,信息來(lái)自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
熱門點(diǎn)擊
- 基于嵌入式處理器的電力諧波多功能實(shí)時(shí)分析系統(tǒng)
- 基于ARM9芯片S3C2410異常中斷程序設(shè)
- 三星ARM9 S3C2410 的的特點(diǎn)及其軟
- VxWorks下實(shí)時(shí)多任務(wù)程序的實(shí)現(xiàn)
- ARM、DSP、FPGA的特點(diǎn)和區(qū)別
- 基于CP2200的嵌入式以太網(wǎng)接口設(shè)計(jì)
- ucos-ii在嵌入式智能視覺(jué)監(jiān)控系統(tǒng)中的應(yīng)
- ARM/uClinux應(yīng)用程序的開(kāi)發(fā)
- 基于ARM開(kāi)發(fā)板的車輛檢測(cè)系統(tǒng)控制單元設(shè)計(jì)
- 425嵌入式開(kāi)發(fā)平臺(tái)簡(jiǎn)介
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說(shuō)新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究