刚才技术支持给我回电子邮件了,说是,我在startup.a51中 XBPSTACK 设置为1,XDATALEN设置为0X1000的缘故。
可是我的协议栈需要用仿真栈,XBPSTACK 必须设置,怎么办呢?。另外他给我加了如下几行代码:
STARTUP1:
anl PCA0MD, #NOT(040h)
orl VDM0CN , #080h
orl RSTSRC, #002h
IF IDATALEN <> 0
; <h> Stack Space for reentrant functions in the LARGE model.
; <q> XBPSTACK: Enable LARGE model reentrant stack
; <i> Stack space for reentrant functions in the LARGE model.
XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
; <i> Set the top of the stack to the highest location.
XBPSTACKTOP EQU 0x0FFF +1 ; default 0FFFFH+1
; </h>
另外
由于在外部ram存储大量的数据是否意味着我们也需要做如下修改?
XDATALEN EQU 0x1000
|