TI论坛
直播中

侯屏早

7年用户 176经验值
私信 关注
[问答]

请教关于#pragma DATA_SECTION的问题

各位好,
   请教各位一个问题。我在编写代码时使用#progma DATA_SECtiON将一个数组(比如buffer1)指定存放在DDR2中(与之前的代码相比,只添加了这个数组),但是在编译以后,我在.map文件中查看空间分配情况发现,不仅使用了一部分DDR2,同时DSP的片上RAM也使用了一部分(DDR2和RAM占用比例大约1:1),再查看数组buffer1的地址,显示已经分配在了指定的DDR2地址上。我的理解是既然使用了DATA_SECTION将数组指定存放在了DDR2中,就不应该再使用这么多的RAM了,使用DATA_SECTION将数组指定存放到DDR2中的目的就是为了解决RAM空间不足的问题。请问各位,这种情况是怎么一回事呢?

回帖(9)

余少虹

2018-7-25 08:22:24
应该只会分配到指定的地址。

请问#progma这部分代码是怎么写的?包括cmd文件里是怎么分配的?
举报

侯屏早

2018-7-25 08:37:14
引用: vuywsdfwf 发表于 2018-7-25 08:22
应该只会分配到指定的地址。

请问#progma这部分代码是怎么写的?包括cmd文件里是怎么分配的?

我使用的DSP/BIOS。在tcf文件中指定一块区域MEM_TransmitCode,org是0xefd00000,长度是0x00200000。
在cmd文件中如下:
SECTIONS
[
TransmitCode >MEM_TransmitCode
]
在.c代码文件中如下:
#pragma DATA_SECTION(buffer1, "TransmitCode");
Uint8 buffer1[xxx] = [xxx]; 其中xxx代表数目和初始值 
举报

余少虹

2018-7-25 08:54:16
引用: Unfair 发表于 2018-7-25 08:37
我使用的DSP/BIOS。在tcf文件中指定一块区域MEM_TransmitCode,org是0xefd00000,长度是0x00200000。
在cmd文件中如下:
SECTIONS

有没有把自己写的cmd文件添加到bios中?
举报

侯屏早

2018-7-25 09:01:38
引用: vuywsdfwf 发表于 2018-7-25 08:54
有没有把自己写的cmd文件添加到bios中?

应该是添加进去了,因为这个cmd文件在这之前一直在用,我只是在SECTIONS中新添加了一些语句。另外,请问怎样将一个新的cmd添加到BIOS中呢?谢谢您!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分