主題:etr100中0x1c中斷的問題 共有49259人關注過本帖 |
---|
ke |
1樓 |
etr100中0x1c中斷的問題 Post By:2004-8-24 17:51:00 [只看該作者]
etr100系統,在0x1c中斷里做了一些事情,程序一跑就死。估計是我的Isr寫的有問題,請問,0x1c中斷服務程序應該怎樣寫
|
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2004-8-24 18:40:00 [只看該作者]
一般說來,在中斷程序中不要使用runtime庫如printf(...)等,這樣很容易使DOS調用重入而造成程序crush。中斷程序主要是對數據、變量進行必要操作,如counter++;由上層程序根據數據狀態再進行顯示、存盤等操作。
|
|
單帖管理 | 引用 | 回復 |
ke |
3樓 |
Post By:2004-8-25 8:47:00 [只看該作者]
我在中斷里調用了一些WriteByte(..)之類的函數,用于向圖形模式的顯示屏寫東西;另有幾句getTime(),getDate()等。有無問題呢?
|
|
單帖管理 | 引用 | 回復 |
ke |
4樓 |
Post By:2004-8-25 8:57:00 [只看該作者]
補問:我的WriteByte(..)等最終是調用一堆outportb(),也屬于runtime的函數嗎,能不能在中斷里調?
|
|
單帖管理 | 引用 | 回復 |
zhl |
5樓 |
Post By:2004-8-25 9:15:00 [只看該作者]
outporb( )直接操作的是硬件端口,可以在ISR中調用,而gettime( )和getdate( )屬于系統runtime庫函數調用,最好不要在你的ISR程序中調用。
|
|
單帖管理 | 引用 | 回復 |