最近在做协议栈的升级,打算先进行协调器的版本升级。
原先的版本:ZHA1.2.2a
目标版本: zigbee3.0.2
使用范例:GenericApp
编译环境如下:
SECURE=1
TC_LINKKEY_JOIN
NV_INIT
NV_RESTORE
ZTOOL_P1
MT_TASK
MT_APP_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC
MT_ZDO_MGMT
MT_UTIL_FUNC
MT_AF_FUNC
MT_APP_CB_FUNC
MT_SYS_CB_FUNC
MT_ZDO_CB_FUNC
MT_AF_CB_FUNC
MT_UTIL_CB_FUNC
MT_ZDO_CB_MGMT
xMT_APP_CNF_FUNC
xLEGACY_LCD_DEBUG
xLCD_SUPPORTED=DEBUG
MULTICAST_ENABLED=FALSE
ZCL_READ
ZCL_WRITE
ZCL_BASIC
ZCL_IDENTIFY
ZCL_SCENES
ZCL_GROUPS
只要打开ZTOOL_P1选项,就会提示内存空降不足。
按照文档《Optimizing CC2530 Z-Stack 3.0.2 Flash and RAM》进行了修改,XDATA_Z不提示错误了,XDATA_I又提示不足了。
Error[e16]: Segment XDATA_I (size: 0x13b align: 0) is too long for segment definition. At least 0x133 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:1ef8-1eff"
协调器程序需要用到MT指令,所以选项ZTOOL_P1必须打开。