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

RAM运行正常,FLASH无法运行

写了个程序,用28035_RAM_lnk.cmd调试,编译报错貌似存储区不够,所以把PAGE 1中的RAML3,移到PAGE 0中,将.text指向RAML3中运行,这样不报错了,程序也可以正常运行了,但是用F2808.cmd下载到FLASH中区后,程序无法运行,停留在一个 SB汇编指令的地方,无法继续。

请问这是什么原因? 

Blake Ma:

Hi, Lzh4774

 

能否提供一下您在最开始时遇到的编译报错?

在您将执行地址修改为FLASH后,程序无法执行所停留的SB汇编指令是指哪里?能否说明或截图?

写了个程序,用28035_RAM_lnk.cmd调试,编译报错貌似存储区不够,所以把PAGE 1中的RAML3,移到PAGE 0中,将.text指向RAML3中运行,这样不报错了,程序也可以正常运行了,但是用F2808.cmd下载到FLASH中区后,程序无法运行,停留在一个 SB汇编指令的地方,无法继续。

请问这是什么原因? 

Bruce:

回复 Blake Ma:

上传不了图片啊!

写了个程序,用28035_RAM_lnk.cmd调试,编译报错貌似存储区不够,所以把PAGE 1中的RAML3,移到PAGE 0中,将.text指向RAML3中运行,这样不报错了,程序也可以正常运行了,但是用F2808.cmd下载到FLASH中区后,程序无法运行,停留在一个 SB汇编指令的地方,无法继续。

请问这是什么原因? 

Bruce:

回复 Bruce:

1、在RAM中调试时,错误显示为

Program will not fit into available memory.placement with alignment/block fails for section'.text' size oxd75 page 0.avalable memory range:RAML0L1

错误定位到28035_RAM_lnk.cmd的.text段,  我理解的是使用IQ库后,代码存储区不够用,于是我将28035_RAM_lnk.cmd的Page1中的RAML3移动到PAGE0中,将.text段定位到RAML3。

2、设置之后,用28035_RAM_CLA_lnk.cmd在RAM中调试,一切运行正常。

3、在利用F28035.CMD下载到FLASH中去时,编译无错误,在单步调试运行到InitAdc()函数后,再点击下一步,就会跳转到disassembly 窗口下,始终停留下以下代码处:

3ff8cd    6f00    SB    0,UNC

再点击下一步,程序还是停留在该处。

写了个程序,用28035_RAM_lnk.cmd调试,编译报错貌似存储区不够,所以把PAGE 1中的RAML3,移到PAGE 0中,将.text指向RAML3中运行,这样不报错了,程序也可以正常运行了,但是用F2808.cmd下载到FLASH中区后,程序无法运行,停留在一个 SB汇编指令的地方,无法继续。

请问这是什么原因? 

Blake Ma:

回复 Bruce:

图片上传方法参考下图:

写了个程序,用28035_RAM_lnk.cmd调试,编译报错貌似存储区不够,所以把PAGE 1中的RAML3,移到PAGE 0中,将.text指向RAML3中运行,这样不报错了,程序也可以正常运行了,但是用F2808.cmd下载到FLASH中区后,程序无法运行,停留在一个 SB汇编指令的地方,无法继续。

请问这是什么原因? 

Bruce:

回复 Blake Ma:

我是这样上传的,上传一会就打个叉叉,然后出现  插入文件出现错误  ,就OVER了

用添加附件也是这样。

试了png格式,jpg格式,还试了添加附件,都不行。

 

写了个程序,用28035_RAM_lnk.cmd调试,编译报错貌似存储区不够,所以把PAGE 1中的RAML3,移到PAGE 0中,将.text指向RAML3中运行,这样不报错了,程序也可以正常运行了,但是用F2808.cmd下载到FLASH中区后,程序无法运行,停留在一个 SB汇编指令的地方,无法继续。

请问这是什么原因? 

Eric Ma:

回复 Bruce:

Lzh,

1. 这里确实是程序段.text代码size很大,RAML0L1装不下,只要设计一个段够大,能够放下.text就可以。

2. 建议你去看一下这个例程C:\ti\controlSUITE\device_support\f2803x\v127\DSP2803x_examples_ccsv5\flash_f28035, 这是程序跑在flash上的一个标准例程。

像出现你这样的问题,程序应该是跑飞了。你检查main中是否有memcopy函数,复制上来,以及有没有复制一些函数在RAM中运行?

在调用那些RAM中运行的函数之前,一定要确保函数已经复制到位。

Eric

赞(0)
未经允许不得转载:TI中文支持网 » RAM运行正常,FLASH无法运行
分享到: 更多 (0)