打印

调试想将部分程序放在外部SDRAM运行的DSP错误

[复制链接]
3250|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eagle200203|  楼主 | 2013-3-15 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想将部分程序放在SDRAM运行,就用了#pragma CODE_SECTION(counting,".xxxsect")
然后在.cmd文件中将.xxxsect段放入SDRAM中
MEMORY
{
IRAM: o = 00000000h l = 0000FA00h
SDRAM: o = 80000000h l = 00010000h

}

SECTIONS
{
.text : IRAM
.xxxsect : >SDRAM
.cinit > IRAM
.const > IRAM
.stack > IRAM
.bss > IRAM
.data > IRAM
.far > IRAM
.switch > IRAM
.sysmem > IRAM
.cio > IRAM
}
出现如下错误:
> error: relocation overflow occured at address 0x000000144 in section '.text' of input file 'e:\ti\myprojects\s_test\Debug\test.obj'. The 29-bit relocated address 0x1FFFFCC0 is too large to encode in the 21-bit field. You may need to add a mask to the assembly instruction or use other target specific assembly features if you really only need the lowest 21 bits of this symbol. Please see the section on Relocation in the Assembly User's Guide.
怎么回事呢

相关帖子

沙发
jlass| | 2013-3-15 17:11 | 只看该作者
地址溢出了

使用特权

评论回复
板凳
eagle200203|  楼主 | 2013-3-17 14:25 | 只看该作者
jlass 发表于 2013-3-15 17:11
地址溢出了

您好,您说的地址溢出是什么意思呢?我看了一下map 文件是好像没有溢出的,我将那段代码放在内部ram 就正常了,不会报错。

使用特权

评论回复
地板
jlass| | 2013-3-18 08:31 | 只看该作者
eagle200203 发表于 2013-3-17 14:25
您好,您说的地址溢出是什么意思呢?我看了一下map 文件是好像没有溢出的,我将那段代码放在内部ram 就正 ...

SDRAM是不能直接放数据的。放了就显示地址溢出

使用特权

评论回复
5
eagle200203|  楼主 | 2013-3-18 09:41 | 只看该作者
jlass 发表于 2013-3-18 08:31
SDRAM是不能直接放数据的。放了就显示地址溢出

那用code _section 这种办法不可以将那程序放外部到sdram 吗?应该怎么操作呢?

使用特权

评论回复
6
jlass| | 2013-3-18 09:43 | 只看该作者
eagle200203 发表于 2013-3-18 09:41
那用code _section 这种办法不可以将那程序放外部到sdram 吗?应该怎么操作呢? ...

使用二次bootload

使用特权

评论回复
7
eagle200203|  楼主 | 2013-3-18 10:31 | 只看该作者
jlass 发表于 2013-3-18 09:43
使用二次bootload

二次bootload 怎么做呢?我用上面的办法二次boot load 还是报这个错误。但是全部放到sdram 或者内部ram 就不会报错,部分内部部分外部就报错。不用code_section 吗?

使用特权

评论回复
8
jlass| | 2013-3-18 10:44 | 只看该作者
全部放到sdram能用吗?如果能用的话应该是其它的问题。

这个是二次引导的TI官方例程
http://www.ti.com/dsp/docs/litab ... 1&familyId=2967

使用特权

评论回复
9
eagle200203|  楼主 | 2013-3-18 11:19 | 只看该作者
jlass 发表于 2013-3-18 10:44
全部放到sdram能用吗?如果能用的话应该是其它的问题。

这个是二次引导的TI官方例程

全部放到外部是可以的,我就是用官网的方式,但是部分放内部部分放外部就报错。我看了网上也有很多人提到这个问题,但是没有找到解决方法。对了,报错还有个重点我好像漏了。the destination address is too far away from the instruction,网上有人说是编译器选择memory 选择data =far 我选了还是不对,请问您有没有遇见这个问题呢?

使用特权

评论回复
10
jlass| | 2013-3-18 15:31 | 只看该作者
eagle200203 发表于 2013-3-18 11:19
全部放到外部是可以的,我就是用官网的方式,但是部分放内部部分放外部就报错。我看了网上也有很多人提到 ...

这样的话更倾向于CCS的配置问题了

试一下这一篇的说法
http://www.baisi.net/thread-969181-1-1.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

67

帖子

1

粉丝