主题:etr100中0x1c中断的问题 共有45631人关注过本帖 |
---|
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程序中调用。
|
|
单帖管理 | 引用 | 回复 |