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.

Hanging issue in CC3200 after adding the OTA application with my application

Part Number: CC3200


Tool/software: Code Composer Studio

Hi,

I am facing the hanging issue continuously in CC3200 launchpad. I have discussed about the WD reset. It seems fine in my application.

My question is " why device has started hanging after adding the OTA?"

Please keep in note device in not hanging while OTA updation and device works fine for 2-3 days continuously.

Thanks

  • Hi,

    Please provide more details/logs.

    What was the exact change that caused the issue?

    Does the OTA process triggers the hanging or it happens when the OTA task is idle?

    Does the device resets or just stop responding?

    You mentioned checking the WD mechanism. Have you verified it is not related?

    br,

    Kobi

  • Hi,

    The device is hanging after adding the OTA application in my application. It is happening when the OTA task is idle. The OTA does not happen at that time. You can say that my code is getting stuck in while() loop. While debug, I got to know the code is getting stuck at the end of the while() loop. I am unable to find out the exact reason in debug mode also.

    The main problem is that if any interruption is there then the device should reset but it is not happening. The device works fine for few hours or days after that stop responding.
    Please keep in mind, I am using the latest service pack and I am following the same procedure for flashing also which is given in OTA application.


    Thanks
  • Hi,

    Have you verified the watchdog before? Did it help you recover from hanging before the OTA integration?
    The information you've provided is not enough. Just adding the OTA shouldn't cause any issue.
    What platform (launchpad?) and OS are you using?
    Since the OTA is not in process, we need your help debugging your code and find the root cause. Can you connect to the device when it is stuck to monitor the cause?
    Maybe the stack size is impacted. Please verify that the size is sufficient.

    Br,
    Kobi
  • Hi,

    Yes, I have verified the watchdog. There was not any hanging issue before integration of OTA.

    The platform is Launchpad CC3200. OS is windows.

    There are more information about memory:

    #define RAM_BASE 0x20004000

    /* System memory map */

    MEMORY
    {
    /* Application uses internal RAM for program and data */
    SRAM_CODE (RWX) : origin = 0x20004000, length = 0x1E000
    SRAM_DATA (RWX) : origin = 0x20022000, length = 0x1E000
    }

    /* Section allocation in memory */

    SECTIONS
    {
    .intvecs: > RAM_BASE
    .init_array : > SRAM_CODE
    .vtable : > SRAM_CODE
    .text : > SRAM_CODE
    .const : > SRAM_CODE
    .cinit : > SRAM_CODE
    .pinit : > SRAM_CODE
    .data : > SRAM_DATA
    .bss : > SRAM_DATA
    .sysmem : > SRAM_DATA
    .stack : > SRAM_DATA(HIGH)
    }

  • Hi,

    I was asking about the RTOS used on the device (the SDK supports non-os, TIRTOS or freeRTOS).
    You can try to increase the stack size. I saw that the OTA examples use a larger stack size (though it is probably not the problem since the OTA is not active).
    I saw that the SRAM DATA section is almost full. You can use the cmd file to add more SRAM DATA on the account of the SRAM CODE.

    If these won't help, you will need to debug your application code and find where exactly it gets stuck.
    Can you connect to the device once it is stuck and find the PC location?

    Br,
    Kobi
  • Hi,

    I am using the freeRTOS. I have increased the stack size and adjusted the size of DATA RAM and CODE RAM.

    Please look into this. I am attaching the files below. Is this fine for my application?

    #define RAM_BASE 0x20004000

    /* System memory map */

    MEMORY

    {

       /* Application uses internal RAM for program and data */

       SRAM_CODE (RWX) : origin = 0x20004000, length = 0x18628

       SRAM_DATA (RWX) : origin = 0x2001C628, length = 0x239D8

    }

    /* Section allocation in memory */

    SECTIONS

    {

       .intvecs:   > RAM_BASE

       .init_array : > SRAM_CODE

       .vtable :   > SRAM_CODE

       .text   :   > SRAM_CODE

       .const  :   > SRAM_CODE

       .cinit  :   > SRAM_CODE

       .pinit  :   > SRAM_CODE

       .data   :   > SRAM_DATA

       .bss    :   > SRAM_DATA

       .sysmem :   > SRAM_DATA

       .stack  :   > SRAM_DATA(HIGH)

    }

    Or

    Which one is fine for stack size? Can you please help me?

  • Hi,

    Is anyone there?

    Thanks
  • I can't help you with the stack size since it depends on your application.

    Try to increase it by a lot to make sure it is not related to the stuck.

    the linker command setting seems ok. 

    To further optimize the RAM usage, you should be able to use only one SRAM section (instead of the separated SRAM_DATA and SRAM_CODE):

    SRAM (RWX) : origin = 0x20004000, length = 0x3C000

    Br,

    Kobi

  • Hi,

    How can I get to know, how much I need the stack size according to my application?

    Thanks
  • use a large number (e.g. 0x11000). If it works, try a smaller one.