2207|0

19

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

编译Zstack1.4.3里面的SampleApp出现的错误!! [复制链接]

       我用7.30B版本的IAR编译Zstack1.4.3里面的SampleApp的时候,一直出现错误。

Error[e16]: Segment XDATA_Z (size: 0x15eb align: 0) is too long for segment definition. At least 0xa96 more bytes needed. The problem occurred while processing  
the segment placement command "-Z(XDATA)XDATA_N,XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END", where at the moment of placement the available  
memory ranges were "XDATA:f1ff-fd53"

      1,在网上找过方法,按照这个改过也没有用
      Error[e16]: Segment XDATA_Z (size: 0x1ea7 align: 0) is too long for segment definition. At least 0x2a7 more bytes
原因:在xcl文件里修改段大小,-D_IXDATA_END=0xFD53    // Revison D (this setting is safe for all revisions)还有可能是定义的大数组太多了,有时候某些函数中定义的数组有点大,在主函数中单独测试这个函数时不会报错

     2, 也试过改过Option-General Option-Stack/Heap的XDATA,改成了0xFFF,也没有用。

     3,  网上常见的方法我又看不懂要怎么做。。。。
     其实这个问题并不是你的程序本身有问题,主要是因为你编写的程序太大了,超出了芯片本身的定义。今天在群里学习了一招,就是将数组定义到code里,我们看一下例子。我们定义一个5100个元素的数组,有以下两种方法:
     mermaid提出的方法是:
typedef   unsigned char const __code   INT8U;
extern INT8U shuzi[5100];
     文晶提出的方法是
INT8U code shuzi[5100];
     这两种方法其实效果是一致的,定义完数组之后,调用的部分就是需要用指针来调用数组里面的数值了。
   

    请问还有什么方法可以用?麻烦指导一下吧,谢谢。
此帖出自无线连接论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表