dsp c6727 沒有提供專門的外部中斷引腳,使用mcasp amutein引腳作為外部中斷引腳,利用mcasp的amutein事件觸發dmax,使dmax產生相應的中斷遞交給cpu (可用中斷:int9,int10,int11,int12,int13,int15)。
詳細步驟如下:
1, 配置cfgmcaspx暫存器,選擇amuteinx引腳
可選引腳:
000 = select the input to be a constant '0'001 = select the input from axr0[7]/spi1_clk
010 = select the input from axr0[8]/axr1[5]/spi1_somi
011 = select the input from axr0[9]/axr1[4]/spi1_simo
100 = select the input from ahclkr2
101 = select the input from spi0_simo
110 = select the input from spi0_scs/i2c1_scl
111 = select the input from spi0_ena/i2c1_sda
2, 將上一步選擇的相應管腳配置為gpio 輸入引腳
3, 在相應mcasp模組中,禁止amutein訊號驅動amute輸出,通過將amute暫存器的inen位清「0」來實現。
4, 配置dmax (spru795d)
1) 配置depr暫存器,選擇上公升沿或下降沿觸發
2) 配置dehpr或delpr暫存器,選擇高優先順序或低優先順序
3) 配置event entry,選擇中斷號,將其儲存在對應的param位置
4) 配置deer暫存器,使能相應的dmax事件
5, 配置中斷(spru733a)
修改中斷向量表,將相應中斷的跳轉位址改為對應的中斷服務程式(也可通過程式實現),然後使能相應中斷:
1) 禁止全域性中斷 csr.gie = 0
2) 使能相應中斷 ier.ien = 1
3) 使能nmi中斷 ier.nmie=1
4) 使能全域性中斷 csr.gie=1
6, 加入c6727補丁(非常重要!!)
在cmd檔案或編譯選擇的linker配置中加入以下兩句:
-l "c672xsystempatchv2_00_00.lib"
7,ok,編譯,執行,enjoy
ccs3.3下測試,amuten0/1/2均可成功觸發所有dmax支援的中斷,三個中斷同時工作也正常。
btw:
如果需要使用csl或dsp/bios,可參考文獻:spraaj3: configuring external interrupts on tms320c672x devices及其示例
配置**:
void extirqinit()
void dmax_init()
複製**
內容**dsp工程師社群-www.logicdsp.com
外部中斷的使用
stm32學習筆記 外部中斷的使用 中斷對於開發嵌入式系統來講的地位絕對是毋庸置疑的,在c51 微控制器時代,一共只有 5個中斷,其中 2個外部中斷,2個定時 計數器中斷和乙個串列埠中斷,但是在 stm32 中,中斷數量大大增加,而且中斷的設定也更加複雜。今天就將來 一下關於 stm32 中的中斷系...
外部中斷的配置
中斷對映 exti inittypedef exti initstructure exti initstructure.exti line exti line4 中斷線 exti initstructure.exti mode exti mode interrupt 中斷模式 exti mode e...
關於linux解除安裝外部中斷驅動不徹底
問題 解除安裝驅動後,gic中斷號和觸發次數依然存在,解除安裝不徹底 載入驅動列印資訊 cat proc interrupts cpu0 29 2249 gic twd 32 249 gic uart pl011 35 265 gic eth0 36 12 gic timer 50 0 gic dm...