TI中文支持网
TI专业的中文技术问题搜集分享网站

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过来的,求指导

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中后就运行正常了。

赞(0)
未经允许不得转载:TI中文支持网 » 28035下将程序烧写到flash中运行
分享到: 更多 (0)