请教:程序跳转时出现了问题,请各位帮忙!
各位大虾好:我编了个小程序,遇到个问题,向各位高手求救!
程序实现功能:单片机89C52内部ROM中固化了一个下载程序,实现功能:把应用程序由上
位机下载到外部ROM(SST29EE020)的(02000H~0FFFFH),下载完毕后跳入外部ROM从
02000H开始运行下载下来的程序。现在问题是,下载完毕后,跳不到外部ROM02000H处,或
者说没有反映,但是,跳到单片机内部ROM(0000H~2000H),就正常的,不知怎么解决好
了。待下载的程序用KEIL C编写的,组件属性的“BL51 Locate”中Code Range已经设成
“0x2000—0xFFFF”,Code也设成“?C_C51STARTUP(0X2000)”;单片机中的程序段如
下:
void main(void)
{
load(void); //下载程序;
JMP2000(); // 跳转程序;
}
其中JMP2000()是用汇编编的,如下:
PUBLIC JMP2000 ;输出函数名
?PR?JMP2000?JUMP SEGMENT CODE ;申明代码断
RSEG ?PR?JMP2000?JUMP ;RSEG说明连接器可将该段放置在任意3位置
JMP2000:
LJMP 2000H
NOP
NOP
RET
END
发表时间:2004年11月24日17:44:09