f28035下将程序烧写到flash中,使用如下指令,
extern Uint16 RamfuncsLoadStart;//离线时用
extern Uint16 RamfuncsLoadEnd; //离线时用
extern Uint16 RamfuncsRunStart; //离线时用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//离线有效时
InitFlash(); // Call the flash wrapper init function. 离线有效时
,但是编译时却提示,unresolved symbol _RamfuncsLoadEnd, first referenced in ./main
请问时什么原因,上面的程序是在28335的程序中copy过来的,求指导
Johnson Chen1:
应该是.CMD文件有Ramfuncs段里面没有RamfuncsLoadEnd定义。
f28035下将程序烧写到flash中,使用如下指令,
extern Uint16 RamfuncsLoadStart;//离线时用
extern Uint16 RamfuncsLoadEnd; //离线时用
extern Uint16 RamfuncsRunStart; //离线时用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//离线有效时
InitFlash(); // Call the flash wrapper init function. 离线有效时
,但是编译时却提示,unresolved symbol _RamfuncsLoadEnd, first referenced in ./main
请问时什么原因,上面的程序是在28335的程序中copy过来的,求指导
user5304908:
回复 Johnson Chen1:
en能否贴下修改的CMD代码,新手不太懂具体修改CMD文件中的哪个位置
f28035下将程序烧写到flash中,使用如下指令,
extern Uint16 RamfuncsLoadStart;//离线时用
extern Uint16 RamfuncsLoadEnd; //离线时用
extern Uint16 RamfuncsRunStart; //离线时用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//离线有效时
InitFlash(); // Call the flash wrapper init function. 离线有效时
,但是编译时却提示,unresolved symbol _RamfuncsLoadEnd, first referenced in ./main
请问时什么原因,上面的程序是在28335的程序中copy过来的,求指导
Seven Han:
回复 user5304908:
SECTIONS
{
…
ramfuncs: LOAD = FLASHD,RUN = RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_SIZE(_RamfuncsLoadSize),RUN_START(_RamfuncsRunStart),PAGE = 0
…
}
请下载controlsuite,参考28035_Flash例程。
f28035下将程序烧写到flash中,使用如下指令,
extern Uint16 RamfuncsLoadStart;//离线时用
extern Uint16 RamfuncsLoadEnd; //离线时用
extern Uint16 RamfuncsRunStart; //离线时用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//离线有效时
InitFlash(); // Call the flash wrapper init function. 离线有效时
,但是编译时却提示,unresolved symbol _RamfuncsLoadEnd, first referenced in ./main
请问时什么原因,上面的程序是在28335的程序中copy过来的,求指导
user5304908:
回复 Seven Han:
好的,谢谢,不果我这边还有问题,编译后在flash中还是不能正常运行。这段代码我放在了文件“28335.cmd”里面,main()函数中也对应写了MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();这两句代码,
DSP2833x_MemCopy.c也添加在了源文件中,
DSP2833x_SysCtrl.c文件中也对应添加了;#pragma CODE_SECTION(InitFlash, "ramfuncs");
DSP2833x_GlobalPrototypes.h文件中也添加了定义:extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
extern Uint16 XintffuncsLoadStart;
extern Uint16 XintffuncsLoadEnd;
extern Uint16 XintffuncsRunStart;
我这边主要是实现将串口接收到的一串数据进行解析,共解析13个数据,刚开始发现在flash中运行只能正确解析出4个数据,后面都不对。后来通过这个方法改进后,可以正确解析出9个数据,比之前好一些,但还是有问题。步骤也是按照网上搜到的方法一步步来的,应该没有错。想问问看您是不是还有其他地方我没有注意到?我的串口接收是通过中断接收的,会不会跟这个有关?
f28035下将程序烧写到flash中,使用如下指令,
extern Uint16 RamfuncsLoadStart;//离线时用
extern Uint16 RamfuncsLoadEnd; //离线时用
extern Uint16 RamfuncsRunStart; //离线时用
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//离线有效时
InitFlash(); // Call the flash wrapper init function. 离线有效时
,但是编译时却提示,unresolved symbol _RamfuncsLoadEnd, first referenced in ./main
请问时什么原因,上面的程序是在28335的程序中copy过来的,求指导
user5304908:
回复 user5304908:
解决,后来自己试着修改编译环境优化,project->propertiies->optimization->optimization level,我调了3Interprocedure Optimizations,下载在flash中后就运行正常了。