TMS320C54x系列DSP的中斷機制
(2.1) DSP中影響存儲器映射的因素有三個:OVLY、DROM和MP/MC。OVLY是Overlay的簡寫。當OVLY=1時,數據空間里的一部分RAM變為重疊區域(Overlay Memory)。這部分重疊區域同時映射在每一頁程序空間的上部。具體示例如圖2所示(MP/MC=0,C5416)。

可見OVLY=1的時候,數據空間的DARAM0~3被映射到程序空間的每一頁上。基于這樣的特點,可以把中斷向量表定位到數據空間的重疊區域DARAM0~3中,置OVLY為1。當有中斷發生時,不管程序運行于DSP的哪個程序頁面空間,只用PC尋址都能夠正確地取到中斷向量表,而不會受XPC的影響。中斷程序ISR可以放到任何一個程序頁面中,但這時跳轉到ISR的指令只能用長跳轉指令(FB等),跳轉之前注意將XPC壓入堆棧,程序同表1。示意圖如圖3所示。

(2.2) 如果片內RAM比較大,分給數據空間的RAM也比較多(如C5416有64K的RAM可以作為數據空間),數據空間可能會有余量。這時可以把中斷向量表和ISR都全部放進數據空間的Overlay Memory區域,并把OVLY置1。這樣不僅在任何程序頁面空間都能夠正確地取到中斷向量表,同時用短跳轉指令(BD等)就可以實現跳轉到ISR,不再需要對XPC進行保存和還原。程序請參看表2。

評論