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.

MSPM0G3107: systick

Part Number: MSPM0G3107


Tool/software:

My App2 (0x2000) code

                        NVIC_DisableIRQ(UART0_INT_IRQn);
                        NVIC_ClearPendingIRQ(UART0_INT_IRQn);
                        SysTick->CTRL = 0;
                        DL_SYSTICK_disable();

                        SCB->VTOR = (uint32_t) (0x00000000);
                        NVIC_SystemReset();  

I am successfully Jump to App1(0x0000)
Case1: After reset I jump to App1(0x0000)

if I add delay like following in App1 init all working well
void SYSCFG_DL_init(void)
{
    SYSCFG_DL_initPower();
    SYSCFG_DL_GPIO_init();
    /* Module-Specific Initializations*/
    SYSCFG_DL_SYSCTL_init();
    SYSCFG_DL_SYSTICK_init();
    delay_cycles(32000);
    SYSCFG_DL_UART_0_init();
    SYSCFG_DL_DMA_init();
}
Case2: If I remove delay, then it missed some starting bytes which I transferred through UART
void SYSCFG_DL_init(void)
{
    SYSCFG_DL_initPower();
    SYSCFG_DL_GPIO_init();
    /* Module-Specific Initializations*/
    SYSCFG_DL_SYSCTL_init();
    SYSCFG_DL_SYSTICK_init();
    SYSCFG_DL_UART_0_init();
    SYSCFG_DL_DMA_init();
}

 
  • Hi Saraswati,

    From the problem you described, it could be UART transfers the data before the SYSTICK timer count down starts, therefore causing some missing starting bytes.

    I would recommend first initialize SYSCFG_DL_UART_0_init() then initialize SYSCFG_DL_SYSTICK_init() see if that helps with your issue.

    Regards,

    Bill