音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

blackfin的計(jì)時器中斷IMASK與SICMASK設(shè)置

作者:as_ben 欄目:DSP技術(shù)
blackfin的計(jì)時器中斷IMASK與SICMASK設(shè)置
    關(guān)于中斷的使用,以T0為例,在T0的STATUS寄存器中使能T0,之后又在中斷初始化時在IMASK中將它使能,那么T0是否應(yīng)該在中斷初始化后才發(fā)生.IMASK和SICMASK用法有何區(qū)別.



2樓: >>參與討論
zxm2006
研究研究
Blackfin的 Event Controller響應(yīng)處理下列5類事件:
1. Emulation
2. Reset
3. Non-maskable interrupts (NMI)
4. Exceptions
5. Interrupts(共11個IVG)
可見,Exceptions不等于Interrupts,Exceptions是軟件自己產(chǎn)生的,是同步于SOFTWARE flow的,而Interrupts則是異步于軟件流程的。
處理event,由兩個模塊構(gòu)成:SIC+CEC,它們的相互關(guān)系看Figure 4-5. Interrupt Processing Block Diagram,非常清晰。

The SIC provides mapping between the many peripheral interrupt sources and the prioritized general-purpose interrupt inputs of the core. This mapping is programmable, and individual interrupt sources can be masked in the
SIC.
這段話說明各個peripherals對應(yīng)的中斷是可更改的,不是固定的。
CEC管理IVG7-IVG15這9個general-purpose中斷,相對的是dedicated的(綁定的,固定的)中斷和exception.而一般的IVG14/15兩個最低優(yōu)先級的保留給軟件中斷(SOFTWARE interrupts).
Table 4-6. SYSTEM and Core Event Mapping這個對應(yīng)表(P178)非常重要。
從這個表中可以看到,
Timer0, Timer1, Timer2 Interrupts 是映射到CEC的IVG11的。

所有的用16個PF產(chǎn)生的中斷統(tǒng)一用兩個PF Interrupt A/B來管理,占用IVG12,分別占用兩個IRQ號26和27。
PF Interrupt A      IVG12   26
PF Interrupt B      IVG12   27
整個中斷處理流程看P180,描述得非常清晰。
注意:
1)SIC_IARx負(fù)責(zé)把多個peripherals的中斷映射到有限的核心能處理的IVG7-13 event上,參見Table 4-8. IVG-Select Definitions,P192,默認(rèn)的mapping可看這幾個SIC_IARn的復(fù)位后默認(rèn)設(shè)置,即看Reset的數(shù)值。一般用戶不要修改這個默認(rèn)的mapping關(guān)系,所以,這個SIC_IARx是不需要軟件設(shè)置和修改的。
2)IMASK則負(fù)責(zé)mask off/enable不同的IVGs
3)When the interrupt service routine for Interrupt A has been executed,
the RTI instruction clears the appropriate IPEND bit.
However, the relevant SIC_ISR bit is not cleared unless the interrupt
service routine clears the mechanism that generated Interrupt
A, or if the PROCESS of servicing the interrupt clears this bit.
這里看出,IPEND位是進(jìn)入ISR后自動清除的,但SIC_ISR里面的bit則是需要ISR代碼里面人為清除的(usually by writing a SYSTEM MMR)???。
(SIC_ISR)The bit is set when the SIC detects the interrupt is asserted and cleared when the SIC detects that the peripheral interrupt input has been deasserted.
看這段話,好像這個SIC_ISR里面的bit也是會自動清除的?
SIC_ISR寄存器是只讀的,對它寫入完全無效。
通常會有多個SIC中斷公用一個CEC的IVG event的情況,這就需要ISR里面通過讀取SIC_ISR寄存器的各個bit來進(jìn)行人為的判斷了。
CEC的是三個寄存器:
1.IMASK - interrupt mask
2.ILAT - interrupt latch
3.IPEND - interrupts pending, 順序是:ILAT bit被清除IPEND被set.
BF CORE有一個16 entry的硬件的Event Vector Table(EVT),
Table 4-9. Core Event Vector Table有詳細(xì)描述。
就是說,BF在它的CPU寄存器MMR里面(0xFFE0 2000~0xFFE0 203C)提供了16個32位的寄存器用來保存16個CORE Event的ISR的地址,這樣就不像其它的CPU,需要從中斷向量表里面做長跳轉(zhuǎn)到ISR入口,可提高中斷響應(yīng)速度。

IMASK是CEC的,管理IVGn,SIC_IMASK是SIC的,管理各個periperal的中斷。
對于TIMER0,則IMASK里面要enable IVG11,SIC_IMASK同時還要enable Timer 0 Interrupt.
兩個寄存器都要set對應(yīng)的bit為1,就意味著允許CORE響應(yīng)這個IVG11--T0的中斷,這樣只要timer enable后,產(chǎn)生中斷CORE就會響應(yīng)的。

3樓: >>參與討論
as_ben
謝謝樓上這位的耐心指點(diǎn).
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
運(yùn)行別人提供的*.dlb庫中的函數(shù),速度很慢,請幫忙。
視頻放大技術(shù)
關(guān)于用gcc的的一點(diǎn)疑問?
531開發(fā)板運(yùn)行問題請教。
急切請教BF561的JTAG問題
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號