TI中文支持网
TI专业的中文技术问题搜集分享网站

关于IAR7.51A中的堆栈设置问题

我现在使用TI的zstack开发CC2530F256,使用IAR7.51A的默认设置编译Sample中的Generic App工程后后生成的map文件中的  提示

                                   XSTACK   ISTACK    

 | Stack used (prev) :  0000126B 000001A6  

 01  strlen::?relay      

| Stack used (prev) :  0000126B 000001A6     

  | + function block  :  00000000 00000000  

<-Sub-tree of type: Function tree   

  | Stack used          :  0000126B 000001A6,

但IAR中的Option–General Options–Stack/Heap–Stack sizes中使用:IDATA:0xC0,PDATA:0x80; XDATA:0x300的设置,工程能够编译,按照经验,需要将IAR中的Stack空间设置的大于等于map中生成的stack占用量才能防止堆栈溢出,但如果按照map中的值设置,cc2530的大部分RAM都被Stack占用,整个工程将无法编译通过。请问map文件中的Stack何IAR中的Stack有何关系,TI的zstack是否对这个地方做了特殊的处理,谢谢。

VV:

你在IAR设备的具体芯片型号有选对吗

Zhifeng Bai:

回复 VV:

IAR中选择的就是CC2530,没有选择具体型号的地方就是在IAR的General Options–Target–Device information里选择的。

VV:

回复 Zhifeng Bai:

我IAR里面选的是 CC2530F256

Zhifeng Bai:

回复 VV:

能给截个图吗? 这是我的配置截图,Device选择C:\Program Files\IAR Systems\Embedded Workbench 5.3 Evaluation version\8051\config\devices\Texas Instruments\CC2530.i51,我用的IAR版本是7.51A,和这个版本有关系吗?

VV:

回复 Zhifeng Bai:

请换成最新的8.20版本,试下

Zhifeng Bai:

回复 VV:

使用8.20的版本还能使用ZStack-CC2530-2.3.0-1.4.0这个版本的协议栈吗?我们现在就是使用的这个版本的协议栈开发的

Zhifeng Bai:

回复 Zhifeng Bai:

您好:

我用8.20版本的IAR打开原来的工程文件,选择device为CC2530F256后,编译提示一下错误:

Error[e16]: Segment RAM_CODE_FLASH (size: 0x27 align: 0) is too long for segment definition. At least 0x4 more bytes needed. The problem occurred while processing the segment placement command "-Z(CODE)RAM_CODE_FLASH=_RAM_CODE_FLASH_START-_RAM_CODE_FLASH_END", where at the moment of placement the available memory ranges were "CODE:39edd-39eff"   

 Reserved ranges relevant to this placement:  

 CODE:39edd-39eff    RAM_CODE_FLASH   

 BIT:0-7             BREG   

 BIT:80-97           SFR_AN   

 BIT:a0-af            SFR_AN   

 BIT:b8-c7           SFR_AN  

  BIT:d8-df         SFR_AN   

 BIT:e8-ef          SFR_AN

   BIT:f8-ff         SFR_AN ,

用原来的IAR7.51A编译配置文件使用cc2530.i51时是没有问题的,我试了TI的其他例程,都提示这个错误,请问这是什么原因啊?

Zhifeng Bai:

回复 Zhifeng Bai:

我使用8.20的IAR打开ZStack-CC2530-2.5.0版本中的例程编译正常,但提示的资源占用也很大,如下:

                             XSTACK   ISTACK    

 | Stack used (prev) :  0000123A 00000096  

 01  strlen::?relay      

 | Stack used (prev) :  0000123A 00000096      

 | + function block  :  00000000 00000000  

<-Sub-tree of type: Function tree    

| Stack used          :  0000123A 00000096,这只是例程,stack占用也是很大的,这里我选择的器件是CC2530F256.

 

VV:

回复 Zhifeng Bai:

1 你下载的IAR,是不是Code size limit版本的

2 2.5.0版本的协议栈是好几年前release,你去TI网站下载最新的版本试下

Zhifeng Bai:

回复 VV:

我使用的是30天全功能试用版,编译2.5.0的没有问题,编译出来的堆栈占用情况和7.51A编译出来的差不多,我感觉不是编译器的问题,我看了一下现在TI最新的协议栈版本是2.5.1a,版本差距也不大吧,希望您能给一个明确的答复,谢谢支持。

赞(0)
未经允许不得转载:TI中文支持网 » 关于IAR7.51A中的堆栈设置问题
分享到: 更多 (0)