菜鸟求助:关于KEILC51编写中断服务程序中出现的问题
菜鸟求助:关于keilc51编写中断服务程序中出现的问题
小弟最近开始接触并学习keilc51,参照软件中提供的
#ifdef bootp_tftpclient
/* for boot code */
void sys_timer0_isr(void) using 1
#else
/* for user program */
void sys_timer0_isr(void) interrupt 1 using 1
#endif
{。。。。}
自己编写了关于串口的中断程序 :
void sys_rs232_isr(void) interrupt 4 using 0{。。。。}
但在编译的时候却发现提示warning: interrupt function in banks not allowed
symbol: sys_rs232_isr
space: bank2
再查看编译后的asm,发现在0x0023处有一条ljmp转跳至 mov dptr,#sys_rs232;
ajmp b_bank2
注:程序将xdata(64k),分成8个bank,即为8x8(k)。我不知道是中断程序不能放在bank中,还是其他的什么含义?
不知该怎么修改是服务程序的位置有误还是别的原因,苦于周围没有人可以指点,请各位大虾指教!!
发表时间:2004年12月17日15:29:36