CC2530 suppose to have 8K RAM which is larger than CC2430 4K. However, when I port our CC2430 based project into new CC2530, the current INT_HEAP_LEN is too large and I need to reduce it. Is that because I turn on some Macro or some setup error? Or New Z stack will occupy much more space than before? How can I get more INT_HEAP_LEN for OSAL memory allocation?
Thanks
Rui
The CC2430 does have 8K of RAM, 4K is maintained during PM3 sleep and 4K is not. ZStack End-Devices could be configured to use only 4K but Routers used all 8K.
ZStack releases for the CC2430 were based on the ZigBee 2006 specification, while ZStack releases for the CC2530 are based on the ZigBee 2007 specification. The key difference between these two ZigBee specs is ZigBee-Pro and its added features, which does require more code and RAM space than its predecessor. Or course, specific RAM requirerments will be determined by the specific application and the features that it uses.
Some tips for "finding" RAM that can be added to the INT_HEAP_LEN: (1) reduce the parameter stack size if there is unused space - check the "high water mark" after a device has been running normally for some time, (2) reduce or remove unnecssary static variables, buffers, and arrays, (3) check your linker map file to determine how much RAM is not used (wasted) and add that to your heap, (4) disable unused stack features.
thanks.
Regarding the difference between Zigbee-PRO and Zigbee, If we choose zigbee instead of Pro(by using router.lib and disable ZigbeePro option in config file), then the Z stack 2.5.0 still occupies more RAM than Z stack 1.4.3. So It seems to be the Zigbee-Pro is not the problem. What other unused stack features I can disable?
ZStack was re-architected when being upgraded from 2006 (ZStack-1.4.3 and earlier) to 2007 (ZStack-2.0.0 and later), and that resulted in changes that require more code and RAM space. As you can imagine, infrastructure to support both Pro and non-Pro cannot all be compiled out, so non-Pro in 2007 code will be larger that 2006.