将部分程序放在SDRAM运行

[复制链接]
1445|20
 楼主| yszong 发表于 2018-8-10 14:44 | 显示全部楼层 |阅读模式
SDRAM, se, TI, IO, ST
用了#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.
怎么回事呢
dengdc 发表于 2018-8-10 14:47 | 显示全部楼层
地址溢出了
 楼主| yszong 发表于 2018-8-10 14:50 | 显示全部楼层

什么意思呢?我看了一下map 文件是好像没有溢出的
wuhany 发表于 2018-8-10 14:52 | 显示全部楼层

将那段代码放在内部ram呢
 楼主| yszong 发表于 2018-8-10 14:56 | 显示全部楼层
正常,不会报错
wuhany 发表于 2018-8-10 14:59 | 显示全部楼层
SDRAM是不能直接放数据的。放了就显示地址溢出
 楼主| yszong 发表于 2018-8-10 15:01 | 显示全部楼层

那用code _section 这种办法不可以将那程序放外部到sdram 吗?应该怎么操作呢?
 楼主| yszong 发表于 2018-8-10 15:04 | 显示全部楼层

那用code _section 这种办法不可以将那程序放外部到sdram 吗?应该怎么操作呢?
jiahy 发表于 2018-8-10 15:06 | 显示全部楼层

使用二次bootload
 楼主| yszong 发表于 2018-8-10 15:09 | 显示全部楼层

二次bootload 怎么做呢?我用上面的办法二次boot load 还是报这个错误。但是全部放到sdram 或者内部ram 就不会报错,部分内部部分外部就报错。不用code_section 吗?
shimx 发表于 2018-8-10 15:11 | 显示全部楼层
全部放到sdram能用吗?如果能用的话应该是其它的问题。

这个是二次引导的TI官方例程
http://www.ti.com/dsp/docs/litab ... 1&familyId=2967
 楼主| yszong 发表于 2018-8-10 15:14 | 显示全部楼层
全部放到外部是可以的,我就是用官网的方式,但是部分放内部部分放外部就报错。我看了网上也有很多人提到这个问题,但是没有找到解决方法。
 楼主| yszong 发表于 2018-8-10 15:17 | 显示全部楼层
对了,报错还有个重点我好像漏了。the destination address is too far away from the instruction,网上有人说是编译器选择memory 选择data =far 我选了还是不对,请问您有没有遇见这个问题呢?
shimx 发表于 2018-8-10 15:19 | 显示全部楼层

这样的话更倾向于CCS的配置问题了
jiaxw 发表于 2018-8-10 15:21 | 显示全部楼层


试一下这一篇的说法
http://www.baisi.net/thread-969181-1-1.html
huangchui 发表于 2018-8-10 15:25 | 显示全部楼层
楼主用的什么编译软件,是不是软件需要设置
zhanghqi 发表于 2018-8-10 15:28 | 显示全部楼层
有时候在SDRAM中运行的时候,会跳转到ROM中的一个函数,执行输出功能
zhanghqi 发表于 2018-8-10 15:31 | 显示全部楼层
为什么要放SDRAM里运行,这个好像经常有问题
wyjie 发表于 2018-8-10 15:34 | 显示全部楼层
想要程序在sdram中运行,需要更改分区加载文件,MAP文件,包括定义一些段,起始地址,结束地址什么的
 楼主| yszong 发表于 2018-8-10 15:39 | 显示全部楼层
好,多谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部