ARM軟件程序設(shè)計(jì)
ARM系統(tǒng)的中斷處理流程如圖1所示。系統(tǒng)中主要有定時器中斷、串口輸入中斷、串口輸出中斷、接口中斷、鏈路中斷5種中斷。
圖1 申斷處理流程圖
其中:
·定時器中斷模塊主要是為操作系統(tǒng)提供時鐘基準(zhǔn)。
·串口輸入和輸出中斷模塊主要給用戶提供接口,方便程序的下載與調(diào)試。
·接口中斷模塊負(fù)責(zé)每2ms與總線上其他板卡通信一次。
·鏈路中斷模塊也是每隔一段時間處理一次鏈路的數(shù)據(jù),它的任務(wù)最重。
因此,應(yīng)該將鏈路中斷模塊設(shè)置成∏Q快速中斷方式,其他模塊都設(shè)成IRQ普通中斷方式。
2. 中斷程序設(shè)計(jì)
正確、恰當(dāng)?shù)厥褂弥袛喑绦蚩梢允骨度胧较到y(tǒng)應(yīng)用運(yùn)行得更有效率,下面給出ARM中斷測試的部分匯編源程序。測試程序開啟T】定時器中斷進(jìn)行測試,通過中斷服務(wù)程序使與PD0連接的LED指示燈閃亮。
?。?)中斷服務(wù)程序
3. 中斷處理程序優(yōu)化
將中斷處理盡可能搬到內(nèi)部RAM或SDRAM中,以前的中斷處理函數(shù)代碼放在Flash中,數(shù)據(jù)放在SDRAM中,F(xiàn)lash速度遠(yuǎn)慢于SDRAM,這是限制中斷處理速度的一大瓶頸?,F(xiàn)在可以通過改變編譯配置,將所有的中斷處理函數(shù)都復(fù)制到ARM內(nèi)部RAM或者SDRAM中。一股情況下,內(nèi)部RAM速度要快于外部的SDRAM,因此,可以修改以下編譯配置文件。
如表所示是改編譯環(huán)境前后的中斷處理速度的對比,可是看出在SDRAM中代碼的執(zhí)行速度比在Flash中大約快4倍。
表 中斷處理速度優(yōu)化前后對比
評論