This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2538: Coordinator start a new PANID network after set ZDSECMGR_TC_DEVICE_MAX=150 in Z-Stack 3.0.1

Part Number: CC2538
Other Parts Discussed in Thread: Z-STACK

Hi All,

I'm using CC2538 as the Coordinator to setup a big network. I set the ZDSECMGR_TC_DEVICE_MAX to 150 on CC2538 in Z-Stack 3.0.1.

NV_RESTORE is enabled in my project.

When I power up the CC2538, it will create a new PANID network first time.

When I power cycle the device, it will create another new PANID network. 

I'm confused why it create a new network PANID.

Thanks.

  • If you use default SampleLight as coordinator, do you see the same issue?
  • If use default samplelight project, didn't see this issue. If just just change the ZDSECMGR_TC_DEVICE_MAX=150, this issue happens.
  • Hi Q W,

    I have replicated the issue and am passing along to the Software Development Team, we will return with the suggested resolution shortly.

    Regards,
    Ryan

  • Does Z-Stack 3.0.2 or latest Z-Stack for CC26x2 and CC13x2 have the same issue?
  • Hi Ryan,

    I tried to increase the NV memory pages, but still have the issue.

    From the NV items define below, it should more than 150 nodes.

    #define ZCD_NV_TCLK_TABLE_START 0x0111 
    #define ZCD_NV_TCLK_TABLE_END 0x01FF

    Thanks.

  • Hi YK, Q W,

    The SimpleLink SDK reflects significantly long delay times when ZDSECMGR_TC_DEVICE_MAX in increased, it is clear that the NV memory is corrupted when increasing this macro and we are currently determining the best method for resolving this issue.

    Regards,
    Ryan
  • Hi Ryan,

    In Zigbee 3.0 specification, this parameters will directly influence the capacity of large network.

    Hope we can solve it as soon as possible.

    Thanks.

  • Hi Q W,

    Thank you for your patience, we are still working to resolve this issue internally.

    Regards,
    Ryan
  • There are still no updates to provide as the NV drivers continue to be investigated.

    Regards,
    Ryan
  • Any new update on this will be appriciated, its very critical for us.

  • All,

    The issue is resolved for CC253x devices once increasing HAL_NV_PAGE_CNT to 12 and OSAL_NV_PHY_PER_PG to 2 as well as modifying NV_MEM and FLASH in the CC2538.icf:

    FLASH = mem:[from 0x00200000 to 0x002797FF];
    NV_MEM = mem:[from 0x00279800 to 0x0027F7FF];

    The CC13x2 and CC26x2 devices use a completely different NV driver we are still working towards resolution on this platform.

    Regards,
    Ryan

  • Hello Ryan,

    I get the following linker error even after implementing the recommended fix.

    #define ZDSECMGR_TC_DEVICE_MAX 235//default value is 40  

    Error[Lp011]: section placement failed

    unable to allocate space for sections/blocks with a total estimated minimum size of 0x42c8 bytes (max align 0x4) in <[0x2000'4000-0x2000'7fff]> (total uncommitted space 0x3f00).

    Error[Lp021]: the destination for compressed initializer batch "P3-1" is placed at an address that is dependent on the size of the batch, which is not allowed when using lz77 compression. Consider using "initialize by copy with packing = zeros" (or none) instead.

  • Hello Prem,

    Please regard my previous post (which has been edited) and make sure you are using the proper IAR version and compiler optimizations.

    Regards,
    Ryan

  • Hello Ryan,
    I am using the below mentioned IAR version and compiler optimizations:
    1) IAR EW for Arm v8.30.1
    2) Compiler optimization set to High
    3)using ZNP-CC2538ZNP-with-SBL project
    default value in CC2538-sb.icf
    1)FLASH = mem:[from 0x00200134 to 0x0027AFFF];
    2)NV_MEM = mem:[from 0x0027C800 to 0x0027F7FF];

    Still throws the same Error

  • I notice that the linker configuration values have not been changed as requested.  Also, EWARM  8.22.1 should be used.

    Regards,
    Ryan

  • I Changed the configuration values as per your instruction yet faced the same Error.
  • we changed the values as recommanded -
    FLASH = mem:[from 0x00200000 to 0x002797FF];
    NV_MEM = mem:[from 0x00279800 to 0x0027F7FF];
    But it show the same error.
    Also Note that we are using using ZNP-CC2538ZNP-with-SBL project.

    Do you want us to use cc2538.icf file instead of CC2538-sb.icf in linker ??

  • For the CC2538-sb.icf linker file you will need to use the following:

    FLASH = mem:[from 0x00200134 to 0x00277FFF];
    NV_MEM = mem:[from 0x00279800 to 0x0027F7FF];

    Regards,
    Ryan
  • STILL ITS SHOWING ERROR-

    Error[Lp011]: section placement failed
    unable to allocate space for sections/blocks with a total estimated minimum size of 0x4454 bytes (max align 0x4) in <[0x2000'4000-0x2000'7fff]> (total uncommitted
    space 0x3f00).
    Error[Lp021]: the destination for compressed initializer batch "P3-1" is placed at an address that is dependent on the size of the batch, which is not allowed when using
    lz77 compression. Consider using "initialize by copy with packing = zeros" (or none) instead.
    Error while running Linker
  • You are trying to allocate 0x4454 bytes of SRAM when only 0x4000 is available on the IC. I've already recommended that you use the advised version of IAR and you can attempt reducing ZDSECMGR_TC_DEVICE_MAX to see if the error is dependent on this particular value.

    Regards,
    Ryan
  • I tried reducing the number. So I am able to compile the code for up to " #define ZDSECMGR_TC_DEVICE_MAX 140" only.
    But my requirement to have support for 250 devices.

    But with the recommended settings(same as below ) My gateway does not start and cc2538 does not appear in USB com port devices list.

    HAL_NV_PAGE_CNT to 12 

    OSAL_NV_PHY_PER_PG  2

    NV_MEM and FLASH in the CC2538.icf:

    FLASH = mem:[from 0x00200000 to 0x002797FF];
    NV_MEM = mem:[from 0x00279800 to 0x0027F7FF];

  • After making all of the recommended changes I am able to compile the code using a ZDSECMGR_TC_DEVICE_MAX of 235. Please note that if using the SBL project you will also have to recompile the Boot project using a new boot.icf memory range that goes in accordance with the CC2538-sb.icf changes so that CC2538_SBL_[SPI/UART].hex does not overlap.

    Regards,
    Ryan
  • Hi, Ryan.

    How do I change the parameters of the "CC2538_SBL_UART" project?

    I set HAL_NV_PAGE_CNT to 12 and OSAL_NV_PHY_PER_PG to 2.

    FLASH = mem:[from 0x00200000 to 0x002797FF];

    NV_MEM = mem:[from 0x00279800 to 0x0027F7FF];

    Then successfully compile the project.

    However, when I downloaded the boot program to CC2538, IAR appeared the message "There were warnings while generating flash loader input."

    See "Debug log" for details:

    Debug log.rar

  • Hi, Ryan.

    I found that using the parameters you gave to set up the project will take up the "Serial Boot Loader" flash.

    My project needs to use SBL. How can I set the flash parameter so that "ZDSECMGR_TC_DEVICE_MAX" can be equal to 100?

  • Hi Jesse,

    Why are you not using the setting I provided on this post? e2e.ti.com/.../2800243

    Then the FLASH of boot.icf needs to be from 0x00278000 to 0x00279800 and NVMEM should be changed for the same area as CC2538-sb.icf

    Regards,
    Ryan
  • I have already calculated it, thank you!