Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-9968

Interrupts are improperly enabled at startup of FreeRTOS on CC32xx

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • TIRTOS
    • TIRTOS-2084
    • TIRTOS_5_20_00
    • TIRTOS_5_30_00
    • CC32xx
    • Hide
      After a reset event, there are two calls that globally enable interrupts, and to enable the SysTick interrupt:

      /* Enable Processor */
       MAP_IntMasterEnable();
       MAP_IntEnable(FAULT_SYSTICK);
      These calls are unnecessary, and problematic to do at such an early stage of booting the processor.

      Global interrupts are later enabled by FreeRTOS when xPortStartScheduler() calls to vPortStartFirstTask().

      SysTick interrupts are later enabled automatically too, when xPortStartScheduler() calls to vPortSetupTimerInterrupt().

      These two calls to MAP_IntMasterEnable() and MAP_IntEnable() should be removed:
      startup_cc32xx_ccs.c: remove from initVectors()
      startup_cc32xx_gcc.c: remove from localProgramStart()
      startup_cc32xx_iar.c: remove from localProgramStart()
      startup_cc32xx_ticlang.c: remove from initVectors()
      Show
      After a reset event, there are two calls that globally enable interrupts, and to enable the SysTick interrupt: /* Enable Processor */  MAP_IntMasterEnable();  MAP_IntEnable(FAULT_SYSTICK); These calls are unnecessary, and problematic to do at such an early stage of booting the processor. Global interrupts are later enabled by FreeRTOS when xPortStartScheduler() calls to vPortStartFirstTask(). SysTick interrupts are later enabled automatically too, when xPortStartScheduler() calls to vPortSetupTimerInterrupt(). These two calls to MAP_IntMasterEnable() and MAP_IntEnable() should be removed: startup_cc32xx_ccs.c: remove from initVectors() startup_cc32xx_gcc.c: remove from localProgramStart() startup_cc32xx_iar.c: remove from localProgramStart() startup_cc32xx_ticlang.c: remove from initVectors()

      After a reset event, there are two calls that globally enable interrupts, and to enable the SysTick interrupt:

      /* Enable Processor */
       MAP_IntMasterEnable();
       MAP_IntEnable(FAULT_SYSTICK);

      These calls are unnecessary, and problematic to do at such an early stage of booting the processor.

      Global interrupts are later enabled by FreeRTOS when xPortStartScheduler() calls to vPortStartFirstTask().

      SysTick interrupts are later enabled automatically too, when xPortStartScheduler() calls to vPortSetupTimerInterrupt().

      These two calls to MAP_IntMasterEnable() and MAP_IntEnable() should be removed:
      startup_cc32xx_ccs.c: remove from initVectors()
      startup_cc32xx_gcc.c: remove from localProgramStart()
      startup_cc32xx_iar.c: remove from localProgramStart()
      startup_cc32xx_ticlang.c: remove from initVectors()

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: