完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-6-13 16:46 编辑
敢问各位高手, 最近遇到很奇怪的一个问题: 所使用DSP为28027,cmd中定义数据段(显然空间大小1024字) RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ 后面自定义了一个数据段 commbuf : > RAMM1 PAGE = 1 在main.c里定义以下几个变量 #pragma DATA_SECtiON(sendT, "commbuf") Uint16 sendT[260]; #pragma DATA_SECTION(receT, "commbuf") Uint16 receT[260]; #pragma DATA_SECTION(CntPPR, "commbuf") Uint32 CntPPR[250]; 其它无涉及到commbuf的变量,精打细算,共需260+260+250*2=1020,commbuf正好放得下. 但编译结果空间不够(run placement fails for object "commbuf", size 0x474 (page 1). Available ranges: RAMM1 size: 0x400 unused: 0x400 max hole: 0x400) 于是将sendT放到别的地方,编译通过,赶紧看map文件,看见如下百思不得其解的结果. 00000400 _receT 00000540 _CntPPR 00000880 _DevEmuRegs 可以看出receTemp占了0x140=320字的空间,明明定义的是260字的空间,为什么要占320字的空间呢? 难怪原来320+320+500=1140=0x474,超出空间范围. 另外在main.c里还定义了一个变量 Uint32 accumulator[8]; 看map文件竟然 00008600 _accumulator 00008640 _sendT 00008780 _dataFlash 很明显,明明只有8*2=16个字,却分配8640-8600=0x40=64个字. sendT放到别的地方后,调试watch地址 receT[0] 0x400 receT[259] 0x503 CntPPR[0] 0x540 cntPPR[249] 0x732 可以看出0x504~0x53F空间没用,不给你用上,导致精打细算的地址空间不够 怎么会是这么个结果,一直都想不通. 谢谢高手前辈帮我分析分析 |
|
相关推荐
4个回答
|
|
这是由数据分页导致的,数组会占用整数个数据页,未使用到的空间不会再分配给其它数组或者变量使用。
|
|
|
|
非常感谢Zhao工,请问那28027的RAMM1的数据页多大? 如果这样,那定义大数组不得为了照顾这种分页机制, 拆成小数组? |
|
|
|
谢谢Zhao工, 我分析了一下,大概是以0x40(64字)为1页,所以大数组尽量以64字为倍数定义。 |
|
|
|
是的,一个数据页为64个字。大数组不必拆成小数组,比如一个数组大小为5*64+10个字,那么它会占用6个数据页,只有最后一个数据页会浪费一部分空间。如果RAM空间足够的话,可以不用考虑这部分RAM的浪费。 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
684 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
600 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1055 浏览 1 评论
741 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
525 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
166浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
128浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
127浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
123浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
53浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 00:44 , Processed in 0.505297 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号