TMS320C54x系列DSP的中斷機(jī)制
(2.1) DSP中影響存儲(chǔ)器映射的因素有三個(gè):OVLY、DROM和MP/MC。OVLY是Overlay的簡寫。當(dāng)OVLY=1時(shí),數(shù)據(jù)空間里的一部分RAM變?yōu)橹丿B區(qū)域(Overlay Memory)。這部分重疊區(qū)域同時(shí)映射在每一頁程序空間的上部。具體示例如圖2所示(MP/MC=0,C5416)。
可見OVLY=1的時(shí)候,數(shù)據(jù)空間的DARAM0~3被映射到程序空間的每一頁上?;谶@樣的特點(diǎn),可以把中斷向量表定位到數(shù)據(jù)空間的重疊區(qū)域DARAM0~3中,置OVLY為1。當(dāng)有中斷發(fā)生時(shí),不管程序運(yùn)行于DSP的哪個(gè)程序頁面空間,只用PC尋址都能夠正確地取到中斷向量表,而不會(huì)受XPC的影響。中斷程序ISR可以放到任何一個(gè)程序頁面中,但這時(shí)跳轉(zhuǎn)到ISR的指令只能用長跳轉(zhuǎn)指令(FB等),跳轉(zhuǎn)之前注意將XPC壓入堆棧,程序同表1。示意圖如圖3所示。
(2.2) 如果片內(nèi)RAM比較大,分給數(shù)據(jù)空間的RAM也比較多(如C5416有64K的RAM可以作為數(shù)據(jù)空間),數(shù)據(jù)空間可能會(huì)有余量。這時(shí)可以把中斷向量表和ISR都全部放進(jìn)數(shù)據(jù)空間的Overlay Memory區(qū)域,并把OVLY置1。這樣不僅在任何程序頁面空間都能夠正確地取到中斷向量表,同時(shí)用短跳轉(zhuǎn)指令(BD等)就可以實(shí)現(xiàn)跳轉(zhuǎn)到ISR,不再需要對(duì)XPC進(jìn)行保存和還原。程序請(qǐng)參看表2。
評(píng)論