C51编程:请教各位,在KEIL51中如何指定XDATA RAM空间范围。
我作了一个用户板,其中0000H-FEFFH映射到XRAM,FF00H-FFFFH映射到8019AS。软件部分
采用混合编程,C的子程序使用重入函数。我发现KEIL在大模式时编译的每一个可重入代码
开头总有如下两句:
MOV DPTR,#0FFFDH
LCALL ?C?ADDXBP
我的0FFFDH指向8019AS,不是XRAM,根本不能用它传参数。我想通知KEIL本系统的XRAM的
范围,以便其避开这个空间。这些代码都是KEIL自动生成的,我只能让它处理。
我把startup.a51加入项目,修改如下:
XBPSTACK EQU 1 ; set to 1 if large reentrant is used.
XBPSTACKTOP EQU 0FEFFH+1; set top of stack to highest location+1.
但是KEIL似乎并不理睬,仍然使用0FFFDH,各位大虾,有什么办法让KEIL知道XRAM范围
呢?
我的程序软件仿真运行正常,在硬件上仿真死机,估计与此有关,请大家发表高见!
发表时间:2002年11月8日16:32:00