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();
// }
}
}
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
