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.

CCS/TM4C1294NCPDT: not able to dump the code because its permanently goes into hibernation

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL

Tool/software: Code Composer Studio

Hii,

I already have dump the code to go into hibernation due to GPIO WAKE.

But now I am not able to dump the new code in TM4C1294NCPDT, because its permanently goes into hibernation and waking up for 500usec.

Kindly give any suggestion so that we can dump the new code.

Thanks and regard

Anamika

  • Hi Anamika,

    Can you try doing a Entire Flash Erase using LM Flash Programmer.

    -kel
  • Hii Markel

    I have tried LM Flash Programmer and its successfully displaying flash program erased.
    But when we try to dump the new code its not dumping ,still old program is running.
    Problem is here that, its permanently goes into Hibernation.Kindly give any suggestion so that I can proceed.

    Thanks & Regard
    Anamika
  • Did you try using LM Flash Programmer to "Unlock" the part? That will force an erase of the entire flash. It will also erase the non-volatile user registers which may contain your Ethernet MAC address. You will need to be able to assert RST- low while you power-on the device.
  • Hi Bob Crosby,

    Already I have try to unlock the part by using LM Flash Programmer and I am not getting any error while unlocking. But before unlocking I am trying to update to ICDI Firmware but its showing "failed to program ICDI Device". Is it mandatory to update the Firmware before unlocking. Kindly go through the below screenshot.

    Thanks & Regards ,

    Anamika.

  • Hi Bob Crosby,

    You can go through below steps what I did

    1)Configuration  ---> Quick set (TM4C1294XL Launch Pad)

    2)In Program menu and flash utilities ,we didn't do any changes.

    3)In other utilities  ---> selected MAC address mode and selected Fury, Dust Devil, TM4C123 and TM4C129 classes.

    4)Finally I clicked on UNLOCK button after that

    - confirm with yes

    - on next MsgBox hold reset, connect

    - click ok, while still holding reset

    - release reset

    - power cycle board (and restart Flash tool?)

    Thanks & Regards ,

    Anamika.

  • No, it is not necessary to update the ICDI firmware. You should not have gotten that error message. I question whether your ICDI is still properly working. If you open your Windows Device Manager with the EK-TM4C1294XL launchpad connecting the Debug micro USB port of the launchpad  to a USB port on the PC, does it look like the "Stellaris ICDI JTAG/SWD Interface" is installed correctly?

  • Hi Bob Crosby,

    Yes, there is no any wrong with Stellaris ICDI interface, it showing as like below....

      

    But I don't know why the flash is not erasing with LM Flash Programmer...I need urgent help sir...Will you please give me any suggestion...

    Thanks & Regards,

    Anamika.

  • I created a project that put the TM4C1294NCPDT into hibernate mode on my EK-TM4C1294XL launchpad. I successfully used LM flash programmer to erase and recover the part. Make sure the device is completely powered off to start and that you are holding RST low while you power on the device. If following the procedure carefully does not unlock and erase the part, there is something else wrong other than just being programmed to go into hibernate mode.
  • Hi  Bob Crosby,

    Sir I have tried below mentioned code for hibernation once you try the below code and then after try to erase the flash. Let me know the status...

    #include <stdint.h>

    #include <stdbool.h>

    #include <string.h>

    #include <stdio.h>

    #include "utils/ustdlib.h"

    #include "inc/hw_types.h"

    #include "inc/hw_memmap.h"

    #include "driverlib/sysctl.h"

    #include "driverlib/pin_map.h"

    #include "driverlib/debug.h"

    #include "driverlib/hibernate.h"

    #include "driverlib/gpio.h"

    #include "driverlib/systick.h"

    #ifdef DEBUG

    void__error__(char *pcFilename, unsigned long ulLine)

    {

    }

    #endif

    int main(void)

    {

    uint32_t ui32SysClock;

    ui32SysClock = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), 120000000);

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOK);

    GPIOPinTypeGPIOInput(GPIO_PORTK_BASE,GPIO_PIN_4);

    GPIOPadConfigSet(GPIO_PORTK_BASE, GPIO_PIN_4,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU | GPIO_PIN_TYPE_WAKE_LOW);

    GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);

    GPIOPinWrite(GPIO_PORTN_BASE,GPIO_PIN_0,GPIO_PIN_0);

    SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);

    HibernateEnableExpClk(ui32SysClock);

    HibernateGPIORetentionDisable();

    HibernateIntClear(HIBERNATE_INT_GPIO_WAKE | HIBERNATE_INT_PIN_WAKE );

    HibernateWakeSet(HIBERNATE_WAKE_GPIO);

    HibernateGPIORetentionEnable(); GPIOPinWrite(GPIO_PORTN_BASE,GPIO_PIN_0,0);

    HibernateRequest();

    while(1);

    }

    Thanks & Regards,

    Anamika.

  • Hi Bob Crosby,

    Finally we have erase the entire flash by using LM Flash programmer with this step...
    1) " Make sure the device is completely powered off to start and that you are holding RST low while you power on the device."
    Thank you so much for pointing out the correct steps to erase the flash.

    Thanks & Regards,
    Anamika.