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.

MSPM0C1106: MCU will get stuck after configure the SYSTICK in sysconfig

Part Number: MSPM0C1106
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi Expert 

Customer feedback the MCU will restart and cannot work properly with the sysconfig file that he shared with me.

I tried the file with a very simple main function and I attach the main function and sysconfig file in the E2E thread:

/*
 * Copyright (c) 2021, Texas Instruments Incorporated
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * *  Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * *  Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * *  Neither the name of Texas Instruments Incorporated nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include "ti_msp_dl_config.h"
/******************************************************************************
******************************************************************************/
// #include "userdefV01.h"
// #include "common_defineV01.h"
// #include "main.h"
// #include "rs232V01.h"
// #include "adcV02.h"
// #include "calibrationV01.h"
// #include "ledV01.h"
// #include "oneWireV01.h"
// #include "configV01.h"
// #include "pwmV01.h"
// #include "i2cSlaveV01.h"
// #include "detectV01.h"
// #include "chargeV01.h"
// #include "temperatureV01.h"
// #include "sleepV01.h"
/******************************************************************************
******************************************************************************/
uint8_t g_fwVersion[4u] = {3u,'A','2','3'};

// define_16bits g_flagSystem;
// define_16bits g_flagSystem2;
// define_8bits g_flagCtr;
// define_8bits g_flagFault;
// define_8bits g_flagFlash;

// volatile uint16_t g_timer5ms = 0u;
// volatile uint16_t g_timer100ms = 0u;
// volatile uint16_t g_timer1s = TIMER1MS_500MS;
// volatile uint16_t g_timer20s = 0u;

uint8_t g_chargeMode = 0u;
uint8_t g_battType = 0u;
uint8_t g_testMode;
uint8_t g_testData;
/******************************************************************************
******************************************************************************/
// void SysTick_Handler(void)
// {
//     g_flag1ms = 1u;
//     g_timer5ms++;
//     g_timer100ms++;
//     g_timer1s++;
//     g_timer20s++;
// }
/******************************************************************************
******************************************************************************/
int main(void)
{
    SYSCFG_DL_init();

    // DL_GPIO_clearPins(GPIO_PWM0_C1_PORT,GPIO_PWM0_C1_PIN );
    // DL_GPIO_clearPins(GPIO_PWM0_C1_CMPL_PORT,GPIO_PWM0_C1_CMPL_PIN);
    // DL_GPIO_initDigitalOutput(GPIO_PWM0_C1_IOMUX);
    // DL_GPIO_initDigitalOutput(GPIO_PWM0_C1_CMPL_IOMUX);


    // g_flagI2c.byte = 0u;
    // g_flagSystem.word = 0u;
    // g_flagCtr.byte = 0u;
    // g_flagFault.byte = 0u;
    // downloadCalData();
    // downloadConfigData();
    // ledVersionDisplay();

    // NVIC_EnableIRQ(ADC0_INST_INT_IRQN);
    // NVIC_EnableIRQ(PWM0_INST_INT_IRQN);
    // NVIC_EnableIRQ(TIMER0_INST_INT_IRQN);
    // NVIC_EnableIRQ(I2C_INST_INT_IRQN);

   // DL_SYSCTL_enableSleepOnExit();
    //DL_Timer_setCoreHaltBehavior(TIMER0_INST, DL_TIMER_CORE_HALT_IMMEDIATE);
    //DL_TimerG_startCounter(TIMER0_INST);
    DL_SYSCTL_enableSleepOnExit();

        /* Set LED to indicate Timer counter enable */
    //     delay_cycles(320000);
    //  DL_GPIO_togglePins(
    //     GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN );
    //  delay_cycles(320000);
    //  DL_GPIO_togglePins(
    //     GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN );
    // delay_cycles(320000);
    //  DL_GPIO_togglePins(
    //     GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN );
    //  delay_cycles(320000);
    //  DL_GPIO_togglePins(
    //     GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);

    while (1) 
    {

       //  __WFI();
        // if (g_flag1ms == 1u)
        // {
        //     g_flag1ms = 0u;

        //     scanSampleFunc();
        // }
        // if (g_timer5ms >= TIMER1MS_5MS)
        // {
        //     g_timer5ms = 0u;

        //     CLRWDT;
        //     battTypeDetecFunc();
		// 	dockTypeDetectFunc();
		// 	sampleFunc();
		// 	getVoltCurrFunc();
		// 	inputDetectFunc();
		// 	battDetectFunc();
		// 	faultModeFunc();
		// 	currSmartCtrFunc();
		// 	pwmCtrFunc();
		// 	dockDetectFunc();
		// 	chargeCtrFunc();
		// 	//sleepFunc();
        // }
        // if (g_timer100ms >= TIMER1MS_100MS)
        // {
        //     g_timer100ms = 0u;

        //     ledCtrFunc();
        //     chargeModeFunc();
        // }
        // if (g_timer1s >= TIMER1MS_1S)
        // {
        //     g_timer1s = 0u;

        //     temperatureProtect();
        //     terminationFunc();
        //     chargeTimeFunc();
        //     sendDataFunc();
        // }
    }
}
https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/908/3235_2D00_003_2D00_Charger.syscfg.

There are 2 finds,

1st: if I click step into in the debug window and run the program step by step, the MCU will work properly, but if I run the program with full speed, the program will crash into the default handler.

2nd: if I delete the SYSTICK configuration in sysconfig file, the program can run properly with full speed.

Support needs:

Could you please kindly help to check why this issue occurs with the attached files?

Thanks

joe