官网下的Z-Stack-Mesh-1.0.0.exe,安装完后没做任何改动,在f8wRouter.cfg中加入以下代码
/* 错误路由次数 */ -DLINK_DOWN_TRIGGER=12 /* Link Status 丢失上限 */ -DNWK_ROUTE_AGE_LIMIT=30 /* 广播存活时间 */ -DBCAST_DELIVERY_TIME=100 /* 消息传递级数 */ -DDEF_NWK_RADIUS=15 /* Route Request 的广播半径 */ -DDEFAULT_ROUTE_REQUEST_RADIUS=8 /* Route Discovery 持续时间 */ -DROUTE_DISCOVERY_TIME=13 /* 关闭跳频 */ -DZDNWKMGR_MIN_TRANSMISSIONS=0 /* Link Status 发送间隔 */ -DNWK_LINK_STATUS_PERIOD=30 -DMAX_NEIGHBOR_ENTRIES=48
编译后出现
Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment XDATA_N. Unable to place 2 block(s) (0xc02 byte(s) total) in 0xa0f byte(s) of memory. The problem occurred while processing the segment
placement command "-P(XDATA)XDATA_N=_XDATA_START-_XDATA_END", where at the moment of placement the available memory ranges were "XDATA:14f1-1eff"
也就是内存不足,请问哪里出错了,我是按照 AN123 文档的 Ch.4 来配置的。
Alvin Chen:
你用CC2530内存不足,特别是你使用uart之后。
请尝试裁剪内存不要使用UART。
processors.wiki.ti.com/…/Optimizing_Flash_and_RAM_Usage_of_Z-Stack_for_CC2530
Dandjinh:
回复 Alvin Chen:
感谢,设置HAL_UART_DMA_RX_MAX=128就好了。
目前遇到的情况是,把协调器(Concentrator)和路由设置好。然后EndDevce在协调器旁边入网,完成与上位机的交互,然后移动到某个路由器下继续工作。
遇到的问题是,在协调器旁边EndDevice能正常通讯,可是移动到某个路由下就不能正常发送数据。
EndDevice的发送选项是AF_LIMIT_CONCENTRATOR,通过抓包能看到Data Request。
Dandjinh:
回复 Dandjinh:
想咨询下,EndDevice也要收到Route Request才能正常通讯吗?因为EndDevice在移动到路由下就大部分时间处于休眠状态。