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

28335 F28335cmd文件的问题

如题,最近在做讲程序下载到FLASH中的工作,发现添加的F28335.cmd文件中有这样一段程序:

SECTIONS
{
/* Allocate program areas: */
.cinit : > FLASHA PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
LOAD_SIZE(_RamfuncsLoadSize),
PAGE = 0

*****

前面不是将程序分配到FLASHA中了吗?为什么是ramfuncs : LOAD = FLASHD,而不是ramfuncs : LOAD = FLASHA?

能给详细说说这部分的内容吗?

Seven Han:您可以参考下这边帖子:
e2echina.ti.com/…/81073

如题,最近在做讲程序下载到FLASH中的工作,发现添加的F28335.cmd文件中有这样一段程序:

SECTIONS
{
/* Allocate program areas: */
.cinit : > FLASHA PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
LOAD_SIZE(_RamfuncsLoadSize),
PAGE = 0

*****

前面不是将程序分配到FLASHA中了吗?为什么是ramfuncs : LOAD = FLASHD,而不是ramfuncs : LOAD = FLASHA?

能给详细说说这部分的内容吗?

user4662103:

回复 Seven Han:

您好,我有个新的问题想要咨询您:
我现在用F28235设计应用(请注意是28235,不是335):
要将程序下载到Flash中运行,已经做得工作有:
1.将cmd文件由ram_link改为F28335;并且添加ramfuncs: LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),LOAD_SIZE(_RamfuncsLoadSize),PAGE = 0
2.在主程序中声明
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
extern Uint16 RamfuncsLoadSize;
3.在主程序InitPieVectTable();后添加memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();
4.工程中添加memcpy.c和DSP2833x_CodeStartBranch.asm
5. 包含的库文件是rts2800_mh.lib
程序成功的下载到了FLASH中,然而却无法启动,请问会是哪里的问题呢?

如题,最近在做讲程序下载到FLASH中的工作,发现添加的F28335.cmd文件中有这样一段程序:

SECTIONS
{
/* Allocate program areas: */
.cinit : > FLASHA PAGE = 0
.pinit : > FLASHA, PAGE = 0
.text : > FLASHA PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
LOAD_SIZE(_RamfuncsLoadSize),
PAGE = 0

*****

前面不是将程序分配到FLASHA中了吗?为什么是ramfuncs : LOAD = FLASHD,而不是ramfuncs : LOAD = FLASHA?

能给详细说说这部分的内容吗?

Young Hu:

回复 user4662103:

程序成功的下载到了FLASH中,然而却无法启动,请问会是哪里的问题呢?

连接仿真器,看看程序卡死在什么位置。另外,最好是在main函数第一句话就执行
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);

赞(0)
未经允许不得转载:TI中文支持网 » 28335 F28335cmd文件的问题
分享到: 更多 (0)