ZSTACK3.0.0使用串口编译错误
我想要使用cc2530的串口功能,所以在预编译的选项中将xZTOOL_P1改为了ZTOOL_P1,然后进行编译,结果发生了错误,然后我恢复了之前的操作,然后再预编译选项中加入了HAL_UART=TRUE,是同样的结果。(PS.为了排除是我程序的错误,我打开了一个新例程,重复了上述操作,还是发生了同样的错误),下边是IAR报出的错误:
Error[e16]: Segment XDATA_Z (size: 0x1ca4 align: 0) is too long for segment definition. At least 0xa5 more bytes needed. The problem occurred while processing the
segment placement command "-Z(XDATA)XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END", where at the moment of placement the available memory ranges
were "XDATA:301-1eff"
Reserved ranges relevant to this placement:
XDATA:1-300 XSTACK
XDATA:301-1eff XDATA_Z
BIT:0-7 BREG
BIT:80-87 SFR_AN
BIT:90-97 SFR_AN
BIT:a0-af SFR_AN
BIT:b8-c7 SFR_AN
BIT:e8-ef SFR_AN
BIT:f8-ff SFR_AN
求求各位大佬帮忙看一眼,这是怎么回事!谢谢各位
帮你查了资料可能是这个问题:
这个原因是你程序里面有比较大的数据量,单片机里的RAM放不下。。。你可以把数据定义成const的,这样IAR会把数据放到单片机的flash里
网上查到的,大部分人都说是这种问题,你试试。
CC2530的RAM留给用户使用的可能极其有限,所以类似ZTOOL_P1这样耗费大量内存的经常会出现错误。
请问您现在的应用环境是怎样的?建议您选择一下其他的协议栈或是芯片