没有改任何代码,只放开了几个宏:
ZTOOL_P1
MT_TASK
MT_APP_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC 这个几个原来是前面带了x的,改完后,宏定义如下:
BDB_REPORTING
SECURE=1
TC_LINKKEY_JOIN
NV_INIT
NV_RESTORE
ZTOOL_P1
MT_TASK
MT_APP_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC
xMT_APP_CNF_FUNC
xLCD_SUPPORTED=DEBUG
MULTICAST_ENABLED=FALSE
ZCL_READ
ZCL_WRITE
ZCL_BASIC
ZCL_IDENTIFY
ZCL_TEMPERATURE_MEASUREMENT
ZCL_GROUPS
链接错误如下:
Error[e16]: Segment XDATA_I (size: 0x12f align: 0) is too long for segment definition. At least 0xfe 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:1ecf-1eff"
XDATA:1-325 XSTACK
XDATA:326-1eff XDATA_Z
YiKai Chen:
RAM/Flash超支了,請參考 processors.wiki.ti.com/…/Optimizing_Flash_and_RAM_Usage_of_Z-Stack_for_CC2530
Alvin Chen:
不要用ZTOOL_P1也就是UART功能 内存不足,建议使用CC2538或者CC2652R
zhou jiangtao:
回复 YiKai Chen:
既然空间这么紧张,为什么还要把函数写成宏,比如XNV_SPI_INIT,HAL_BOARD_INIT,这样每次调用用它,函数占用的空间就翻一倍,这不是故意增加空间占用吗?我把这些宏改了一下,uart不使用dma,就可以编译过去了,好像dma很占空间。
zhou jiangtao:
回复 Alvin Chen:
2538好像贵一些,我现在就想使用最便宜的有线转无线芯片。2530是便宜的了吧?
zhou jiangtao:
回复 YiKai Chen:
我试了uart的isr方式可以用,dma链接不了,可能dma非常占用内存。
YiKai Chen:
回复 zhou jiangtao:
是的
zhou jiangtao:
回复 Alvin Chen:
我还发现,能不能链接成功,还和IAR 的版本有关系,老的stack就要在老的IAR上面编译。