1、程序中对基要求比较高的函数,如中断;
2、程序需要对FLASH进行 *** 作,这时就要把程序先复制到RAM中运行然后才能对FLASH *** 作。
RamfuncsLoadStart、RamfuncsLoadEnd、RamfuncsRunStart这三个变量是在CMD文件中创建的,创建方式如下:
LOAD_START(RamfuncsLoadStart),
LOAD_END(RamfuncsLoadEnd),
RUN_START(RamfuncsRunStart),
分别表示了装载函数的首地址,装载函数的结束地址和装载函数的运行地址;
执行完MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)后,便将FLASH中相关的程序COPY到了RAM中,之后的程序运行时,只要调用FLASH中RamfuncsLoadStart地址开始的相关函数,系统都会自动地指向RAM中相应的函数入口地址运行。
求采纳为满意回答。
main(){
int i
unsigned int * px
unsigned int * py
unsigned int * pz
px=(unsigned int *)0x80000
py=(unsigned int *)0x80100
//-----请按实验要求将程序补充完整-----//
while(1)
{
for(i=0i<16i++)
{
scanf("%d",(px+i))
*(py+i)=0
}
printf("\n")
pz=px
px=py
py=pz
for(i=0i<16i++)
printf("%d",(py+i))
printf("\n")
}
// 在此加软件断点
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)