Part Number:LAUNCHXL-CC2650Other Parts Discussed in Thread:CC2650, CC2630
协议栈版本 zstackhome 1.2.2a
ZStackCore-EndDevice
RFD_RCVC_ALWAYS_ON=TRUE
SampleSwitch_SmartRF06
static void zswWriteParameters(void)
{
zstack_sysConfigWriteReq_t writeReq = {0};
writeReq.has_macRxOnIdle = true;
writeReq.macRxOnIdle = true;
(void)Zstackapi_sysConfigWriteReq(zswEntity, &writeReq);
}
使用软件抓包发下Receiver On When Idle还是false
请问如何可以打开Receiver On When Idle
Kevin Qiu1:
设置了-DRFD_RCVC_ALWAYS_ON=TRUE后终端就不会休眠,一直打开,此时Receiver应该也是打开的
将完整的抓包文件传上来看看
,
qq81679:
-DRFD_RCVC_ALWAYS_ON=TRUE
编译会报错
Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x102e6 bytes (max align 0x4) in <[0x0000d000-0x0001cfff]> (total uncommitted space 0xffd0). Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x947 bytes (max align 0x4) in <[0x200040e4-0x20004a13]> (total uncommitted space 0x930).
,
YiKai Chen:
這個报错是因為你的程序size太大了,試試看縮減程序吧
,
qq81679:
这是在ZstackCore-EndDevice下编译的,不是SampleApp-SmartRF06里。可能不能缩减协议栈代码?现在是想知道如何开启cc2650的Receiver On When Idle
,
qq81679:
cc2650的EndDevice是不是无法打开Receiver On When Idle?
zstack_sysConfigWriteReq_t writeReq = {0};
writeReq.has_macRxOnIdle = true;writeReq.macRxOnIdle = true;(void)Zstackapi_sysConfigWriteReq(zswEntity, &writeReq);
空闲接收打开,也无法改变Device Annoince中的Receiver On When Idle
,
Kevin Qiu1:
这是我测的,只要终端是ALWAYS_ON就会是Receiver On When Idle
,
qq81679:
现在的问题是cc2650的f8wConfig.cfg中 -DRFD_RCVC_ALWAYS_ON=TRUE,编译不通过。
Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x102e6 bytes (max align 0x4) in <[0x0000d000-0x0001cfff]> (total uncommitted space 0xffd0). Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x947 bytes (max align 0x4) in <[0x200040e4-0x20004a13]> (total uncommitted space 0x930).
clean后,make一次,编译通过,没有生成.out文件,再点击一次make,会出现和上文一样的错误。重新安装协议栈也是一样。
iar版本
协议栈版本zstack_home_1_02_02a_44539
,
Kevin Qiu1:
使用 -DRFD_RCVC_ALWAYS_ON=TRUE后是会占用更多的内存
我没有IAR7.40,看下这里YiKai之前测试https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/533472/enable-rfd_rcvc_always_on-on-cc2650-zed
,
qq81679:
这个文章我看过了,重新安装协议栈依旧不能解决。
取消FALSH_ROM_BUILD编译后编译通过,但是烧录后cc2650不能正常工作。
,
Kevin Qiu1:
协议栈有些是放在ROM中的,取消后不能正常加载
CC2650和CC2630已经不推荐用于新设计当中了,协议栈也是更新到2015年,
里面有一些bug,TI不会再更新它。
回到你的问题,只要打开 -DRFD_RCVC_ALWAYS_ON=TRUE,Receiver就会在IDLE时打开
如果你还想在CC2650上实现,你可能要修改程序的大小,以给ZstackCore分配更多的内存
,
qq81679:
我是用官方示例程序SampleSwitch 没有任何修改,打开 -DRFD_RCVC_ALWAYS_ON=TRUE,编译也是无法通过的。
ZStackCore-EndDevice iar生成.map文件内容
66 046 bytes of readonly code memory 299 bytes of readonly data memory 2 372 bytes of readwrite data memory
SampleSwitch-SmartRF06 iar生成.map文件内容
34 909 bytes of readonly code memory 2 865 bytes of readonly data memory 12 306 bytes of readwrite data memory
-DRFD_RCVC_ALWAYS_ON=FALSE后
ZStackCore-EndDevice iar生成.map文件内容
64 796 bytes of readonly code memory 339 bytes of readonly data memory 2 325 bytes of readwrite data memory
,
qq81679:
可能无法缩减协议栈代码
,
Kevin Qiu1:
我指的是缩减SampleSwitch_SmartRF06应用部分的代码,给stack分配更大的内存