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.

AWR2944EVM: How to reset all program(include bootloader) by software

Part Number: AWR2944EVM

Hi,

I want reset program by software,Achieve the same effect as through reset pin(Pin H16).

I try to used Bootloader_socCpuResetReleaseSelf(),the program can't restart ,it just stop at vlistinsertend.

 

  • Hello Shi Guillin,

    You can use the warm reset option that will reset all the cores.
    You can invoke the same by entering the below mentioned code

    //warm reset test
                   
    #include <kernel/dpl/ClockP.h>
    #include <drivers/hw_include/cslr_soc.h>
    #include <drivers/soc.h>
    #define KICK_LOCK_VAL                           (0x00000000U)
    #define KICK0_UNLOCK_VAL                        (0x01234567U)
    #define KICK1_UNLOCK_VAL                        (0x0FEDCBA8U)
    #define IOMUX_KICK0_UNLOCK_VAL                  (0x83E70B13U)
    #define IOMUX_KICK1_UNLOCK_VAL                  (0x95A4F1E0U)
                   
                    uint32_t            baseAddr;
                    volatile uint32_t  *kickAddr;
                    uint32_t             i=0;
                    uint32_t            value=0;
                    baseAddr = CSL_MSS_TOPRCM_U_BASE;
                    kickAddr = (volatile uint32_t *) (baseAddr + CSL_MSS_TOPRCM_LOCK0_KICK0);
                    CSL_REG32_WR(kickAddr, KICK0_UNLOCK_VAL);   /* KICK 0 */
                    kickAddr = (volatile uint32_t *) (baseAddr + CSL_MSS_TOPRCM_LOCK0_KICK1);
                    CSL_REG32_WR(kickAddr, KICK1_UNLOCK_VAL);   /* KICK 1 */
                    uint32_t* regAddr = (uint32_t*)0x02140100;
                    uint32_t dbg = *regAddr & 0xFFFFF8FF;
                    while(i<0xFFFF){
                        i++;
                    }
                    *regAddr = dbg;
     //warm reset end

    You can make this into a function and then invoke the same where required.

    Regards,
    Saswat Kumar
  • Hello Saswat ,

    I executed this code,The effect is the same as Bootloader_socCpuResetReleaseSelf().

    The program stopped,but bootloader can‘t restart.

    Can i realize Power On Reset with software?(Features on the following pictures)

    Regards,

    guilin.shi

  • Hello Shi guillin,

    Please try the same code with the MMWAVE SDK 4.3.1 which is the new SDK version.
    The warm reset Code that I have provided is the only way to achieve all the cores restarting.
    The above code has been tested and it works, but there was a warm reset issue in the SDK 4.2.3 which is fixed in the latest SDK release 4.3.1.

    Regards,
    Saswat 

  • Hello Saswat ,

    Because my current project is based on SDK 4.2.3,I have achieved restart in other ways.

    I will try it when my project SDK is updated.

    Thank you for your support!!!

    Regards,

    guilin.shi