好长时间不使用c51了,今天使了一下,除了ADDRESS SPACE OBERFLOW错误,上网一查,原来是data区溢出了,产生这个问题的原因是变量定义,
volatile unsigned char idata inbuf1[INBUF_LEN],outbuf[OUTBUF_LEN];
当然了,核心还是89c52的data区太小了,data+idata一共就是256byte,所以当变量声明的太多了就会出问题了,而且sp也在这个区里面,上面也只是把原来是data区的变量声明到idata区而已。