SDCC中中斷函數的注意事項

Sdcc定義中斷服務程序(ISR)時,中斷函數的格式

void interrupt_identifier(void) __interrupt interrupt_number using bank_number
{
}

另外一點就是ISR必須要在頭文件中申明,不然ISR的地址不會被鏈接程序放入對應的中斷向量表中。
導致中斷無法正確運行。

吐槽一下:
Keil沒有強制要求提前申明ISR,SDCC卻必須要這麼做,而且也沒有明確說明。
開源軟件好是好,但還不夠人性化,爲何一定要申明ISR呢,沒有任何道理。

這個問題困擾了好兩週時間,後來無意中發現中斷向量表中竟然沒有加入ISR。

下面的鏈接也是遇到了同樣的問題,供參考

http://blog.csdn.net/mcgrady_tracy/article/details/22729055

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章