2007年10月1日 星期一

撰寫一個中斷的sample 在embedded

首先
搞懂interrupt應該如何實做的概念
四個步驟

1. 設定GPIO為External Interrupt (引起中斷的動作)
ex. 拿 power button 當作外部中斷
先看 power button 接到哪個GPIO
通常一個GPIO是用2bits來表示四種功能
在 S3C2440 spec.中
GPF
明確定義
00 = input
01 = ouput
10 = EINT[0] (external interrupt)
11 =目前保留中
將power button所對應的GPIO(ex GPF0) 先設定為EINT

2.Enable interrupt (中斷啟動)
看系統 power button所對應的是哪一個中斷
如果對應到 EINT0
就設定INTMSK[0] 設定為 0 {0代表service available}
請見spec. 14-12
SRCPND and INTPND 請都將 EINT0的部份設定成1

3. 設定啟動條件
take EXTINT0 as sample
000: Low level
001: High level
01x:Falling edge triggered
10x:Rising edge triggered
11x:Both edge triggered

S3C2440a spec. p9-27
這個部份的設定 會影響整體效能


4. Setting Interrupt vector
將中斷後要執行內容的位置
設定到 中斷向量表中 (ISR_EINT0 位置)

透過Facebook分享

沒有留言: