完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-6-7 09:19 编辑
Z-STACK协议栈 IAR编译环境 #define MAX_ADDRMAP_ITEM 300// typedef struct [ uint8 NetAddr[2]; uint8 MeterAddr[6]; ]AddrMap_t; AddrMap_t AddrMap[MAX_ADDRMAP_ITEM]; void Meter_JoinAddrMap(uint16 routerAddr, const uint8 *phyAddr) [ //对结构体数组赋值 ] 问题: 1.若在Meter_JoinAddrMap()函数中不给结构体数组赋值,编译连接不报错; 2.若在Meter_JoinAddrMap()函数中给结构体数组赋值,连接报错,如下: Linking Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment XDATA_N. Unable to place 2 block(s) (0xc02 byte(s) total) in 0x998 byte(s) of memory. The problem occurred while processing the segment placement command "-P(XDATA)XDATA_N=_XDATA_START-_XDATA_END", where at the moment of placement the available memory ranges were "XDATA:1568-1eff" Error while running Linker 3.若将MAX_ADDRMAP_ITEM定义为22(或22以下),在Meter_JoinAddrMap()函数中给结构体数组赋值,正常; |
|
相关推荐
12个回答
|
|
|
|
|
|
可是结构体数组在定义、不赋值的情况下没有问题。。。这时不是已经分配好空间了吗? |
|
|
|
关键是看你在后面有没有用到这个数组。有可能IAR在优化编译的时候已经去掉了这个数组。 From TI Wireless Connectivity |
|
|
|
结构体数组,总的字节大小 >=184 就有报错,这时我该怎么办?我现在至少需要300*8个字节的大小?请教。。。。 |
|
|
|
结构体本身并不会被作为数据而开辟内存,真正作为数据而在内存中存储的是这种结构体所定义的变量。 |
|
|
|
对对。。我现在的系统中,定义的结构体数组(或者普通数组,刚才试了,一样的额),在不赋值的情况下,大小大于184BYTE没有关系,不报错,但是在程序中赋值后,就报错。。 也就是说我现在系统中,只要想给定义的数组赋值,就必须将定义的数组大小设置为小于184 byte?? 但是我现在的项目中需要 300*8 byte,该怎么处理这个问题,希望能指点。。。。 |
|
|
|
就是定义的结构体数组变量。。 typedef struct [ uint8 NetAddr[2]; uint8 MeterAddr[6]; ]AddrMap_t; AddrMap_t AddrMap[300]; 300 -> 22(或者更小,22*8)之后,给这个数组变量赋值就没有问题。。但是我现在至少要300个 |
|
|
|
用的是那块片子。300*8会造成内存不足。只有两种方式,一优化代码,减少冗余数组。二更换内存更大的片子。 |
|
|
|
cc2530. 152 270 bytes of CODE memory 32 bytes of DATA memory (+ 72 absolute ) 7 929 bytes of XDATA memory 192 bytes of IDATA memory 8 bits of BIT memory 169 bytes of CONST memory Errors: none Warnings: none 这是sample工程中map文件中的memory情况,保证不报错,数组使用的最大情况(也就是上面说的22,换成23就会报错)。。 |
|
|
|
能不能再请教你个问题: CC2530的flash是256KB,SRAM是8K,CODE、DATA、XDATA、IDATA、BIT、CONST哪些是存储在flash?哪些是存储在SRAM? |
|
|
|
能不能再请教你个问题: CC2530的flash是256KB,SRAM是8K,CODE、DATA、XDATA、IDATA、BIT、CONST哪些是存储在flash?哪些是存储在SRAM? |
|
|
|
cmh9 发表于 2018-6-6 15:17 你好,你的问题解决了吗?我也遇到了同样的问题,想请教一下 |
|
|
|
只有小组成员才能发言,加入小组>>
326 浏览 1 评论
524 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
768 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
647 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1122 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
43浏览 29评论
78浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
243浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
196浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
54浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 07:56 , Processed in 1.061830 second(s), Total 99, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号