完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
各位好,
请教各位一个问题。我在编写代码时使用#progma DATA_SECtiON将一个数组(比如buffer1)指定存放在DDR2中(与之前的代码相比,只添加了这个数组),但是在编译以后,我在.map文件中查看空间分配情况发现,不仅使用了一部分DDR2,同时DSP的片上RAM也使用了一部分(DDR2和RAM占用比例大约1:1),再查看数组buffer1的地址,显示已经分配在了指定的DDR2地址上。我的理解是既然使用了DATA_SECTION将数组指定存放在了DDR2中,就不应该再使用这么多的RAM了,使用DATA_SECTION将数组指定存放到DDR2中的目的就是为了解决RAM空间不足的问题。请问各位,这种情况是怎么一回事呢? |
|
相关推荐
9 个讨论
|
|
|
我使用的DSP/BIOS。在tcf文件中指定一块区域MEM_TransmitCode,org是0xefd00000,长度是0x00200000。 在cmd文件中如下: SECTIONS [ TransmitCode >MEM_TransmitCode ] 在.c代码文件中如下: #pragma DATA_SECTION(buffer1, "TransmitCode"); Uint8 buffer1[xxx] = [xxx]; 其中xxx代表数目和初始值 |
|
|
|
|
|
|
|
vuywsdfwf 发表于 2018-7-25 09:18 我写的cmd文件如下, -l rts64plus.lib -l csl_6455.lib SECTIONS [ TransmitCode >MEM_TransmitCode ] 如您所说,在其中加入-l cfg.cmd后,编译提示大量memory重定义的错误和大量警告。但是我写的cmd中并没有对memory进行分配,请问这是什么原因呢?谢谢您! |
|
|
|
|
|
|
|
vuywsdfwf 发表于 2018-7-25 09:18 Shine Zhang,你好, 我找到问题出在哪里了,但是原因不清楚。 1、#pragma DATA_SECTION(buffer, "name") char buffer[10000]; 如果代码这样写,buffer的值不进行初始化,则编译后在map文件中可以看到,DDR2中占用了10000个字节的大小,而RAM没有被占用。 2、#pragma DATA_SECTION(buffer, "name") char buffer[10000] = [0, 1, 2, 3, 4, 5, ...., 9999]; 如果代码这样写,buffer的值进行初始化,则编译后在map文件中可以看到,DDR2中占用了10000个字节的大小,而RAM同时被占用约10000个字节的大小。 我想请教一下,初始化和不初始化为什么会有这个区别,能不能在初始时也只占用DDR2,而不占用RAM。期待您的解答,谢谢! |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1759浏览 29评论
2786浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1726浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1636浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1647浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 22:10 , Processed in 1.268099 second(s), Total 68, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3818