打印
[MCU]

将部分程序放在SDRAM运行

[复制链接]
586|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2020-11-18 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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| | 2020-11-18 22:34 | 只看该作者
地址溢出了

使用特权

评论回复
板凳
yszong|  楼主 | 2020-11-18 22:38 | 只看该作者
什么意思呢?我看了一下map 文件是好像没有溢出的

使用特权

评论回复
地板
wuhany| | 2020-11-18 22:41 | 只看该作者
将那段代码放在内部ram呢

使用特权

评论回复
5
yszong|  楼主 | 2020-11-18 22:44 | 只看该作者
正常,不会报错

使用特权

评论回复
6
wuhany| | 2020-11-18 22:47 | 只看该作者
SDRAM是不能直接放数据的。放了就显示地址溢出

使用特权

评论回复
7
yszong|  楼主 | 2020-11-18 22:53 | 只看该作者
那用code _section 这种办法不可以将那程序放外部到sdram 吗?应该怎么操作呢?

使用特权

评论回复
8
yszong|  楼主 | 2020-11-18 22:56 | 只看该作者
那用code _section 这种办法不可以将那程序放外部到sdram 吗?应该怎么操作呢?

使用特权

评论回复
9
jiahy| | 2020-11-18 23:00 | 只看该作者
使用二次bootload

使用特权

评论回复
10
yszong|  楼主 | 2020-11-18 23:03 | 只看该作者
二次bootload 怎么做呢?我用上面的办法二次boot load 还是报这个错误。但是全部放到sdram 或者内部ram 就不会报错,部分内部部分外部就报错。不用code_section 吗?

使用特权

评论回复
11
shimx| | 2020-11-18 23:11 | 只看该作者
全部放到sdram能用吗?如果能用的话应该是其它的问题。

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

使用特权

评论回复
12
yszong|  楼主 | 2020-11-18 23:15 | 只看该作者
全部放到外部是可以的,我就是用官网的方式,但是部分放内部部分放外部就报错。我看了网上也有很多人提到这个问题,但是没有找到解决方法。

使用特权

评论回复
13
yszong|  楼主 | 2020-11-18 23:18 | 只看该作者
对了,报错还有个重点我好像漏了。the destination address is too far away from the instruction,网上有人说是编译器选择memory 选择data =far 我选了还是不对,请问您有没有遇见这个问题呢?

使用特权

评论回复
14
shimx| | 2020-11-18 23:22 | 只看该作者
这样的话更倾向于CCS的配置问题了

使用特权

评论回复
15
jiaxw| | 2020-11-18 23:26 | 只看该作者

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

使用特权

评论回复
16
huangchui| | 2020-11-18 23:34 | 只看该作者
楼主用的什么编译软件,是不是软件需要设置

使用特权

评论回复
17
zhanghqi| | 2020-11-18 23:38 | 只看该作者
有时候在SDRAM中运行的时候,会跳转到ROM中的一个函数,执行输出功能

使用特权

评论回复
18
supernan| | 2020-11-18 23:41 | 只看该作者
为什么要放SDRAM里运行,这个好像经常有问题

使用特权

评论回复
19
wyjie| | 2020-11-18 23:45 | 只看该作者
想要程序在sdram中运行,需要更改分区加载文件,MAP文件,包括定义一些段,起始地址,结束地址什么的

使用特权

评论回复
20
yszong|  楼主 | 2020-11-18 23:48 | 只看该作者
好,多谢大家

使用特权

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

本版积分规则

830

主题

11379

帖子

4

粉丝