msp430用IAR编译出现如下提示,求大神解决呀
Error[e16]:SegmentDATA16_Z(size:0x400align:0x1)istoolongforsegmentdefinition.Atleast0...
Error[e16]: Segment DATA16_Z (size: 0x400 align: 0x1) is too long for segment definition. At least 0x200 more bytes needed. The problem occurred while processing
the segment placement command "-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I,DATA16_HEAP+_DATA16_HEAP_SIZE=0200-03FF", where at the
moment of placement the available memory ranges were "CODE:200-3ff"
Reserved ranges relevant to this placement:
200-3ff DATA16_I 展开
the segment placement command "-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I,DATA16_HEAP+_DATA16_HEAP_SIZE=0200-03FF", where at the
moment of placement the available memory ranges were "CODE:200-3ff"
Reserved ranges relevant to this placement:
200-3ff DATA16_I 展开
2个回答
展开全部
光看告警时看不出什么的,具体的得把程序放上来,不过看你的告警应该是数组DATA16_Z定义的太长了,导致没有足够的空间分配给数组。 你在仔细看看数组的定义,是不是定义错了。
追问
程序太长了粘不上来,编译是对的,就是make的时候报错,这个程序在26系列上能跑,我移植到g2553就不行了
追答
编译只是看你的程序有没有语法错误,Make的时候要给你的程序和数据分配存储空间,不同系列的单片机的存储空间大小也是不一样的,你不妨把数组的长度减小的0x200以下,看下能够通过就能说明问题了。不过得保证你后面用到的数组长度不能超过你定义的数组长度。否则会报新的错误。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询