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

Z-Stack-Mesh-1.0.0中路由使能MTO导致内存不足

官网下的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在移动到路由下就大部分时间处于休眠状态。

赞(0)
未经允许不得转载:TI中文支持网 » Z-Stack-Mesh-1.0.0中路由使能MTO导致内存不足
分享到: 更多 (0)