The task remains in infinite loop

karimaaissaoui wrote on Tuesday, April 19, 2016:

Hello everyone,
we have created several tasks with different priorities, tasks are created, and this is the task that has the highest priority that runs without going to the other, in our case 3 tasks allow to light and turn off the LEDs.

The first task turns on the LED without turning off, and the program remains in the infinite loop, because the “vTaskDelay ()” function does not work correctly, therefore other tasks do not run .
When loading the program into the microcontroller, the function used by the task turns the LED, and an interruption is generating : “ISR (Cpu_Interrupt)”


/*
** ===================================================================
**     Method      :  Cpu_Cpu_Interrupt (component MC9S12P128_64)
**
**     Description :
**         The method services unhandled interrupt vectors.
**         This method is internal. It is used by Processor Expert only.
** ===================================================================
*/
ISR(Cpu_Interrupt)
{
  /*lint -save -e950 Disable MISRA rule (1.1) checking. */
 
/*
#ifdef debug
  asm(BGND);
  #endif
  _EntryPoint;
*/

asm(BGND);


  /*lint -restore Enable MISRA rule (1.1) checking. */
}

We are stuck in this phase, and we hope to have your opinion
We thank you in advance, and we apologize for the inconvenience.

Best Regards.
FreeRTOSV9 microcontroller : HCS12P64 codeWarrior V5.9.0

rtel wrote on Thursday, April 21, 2016:

I’m going to guess your interrupt service routines are not executing as you expect - particularly whatever is executed in response to an swi instruction, which is the instruction that executes when vTaskDelay() attempts to yield. Did you take note of the “interrupt service routines” section of this page http://www.freertos.org/porthcs12.html ? Test the operation of the swi instruction and the tick timer in isolation to ensure they are working.

karimaaissaoui wrote on Friday, April 22, 2016:

Hello
Thank you very much for your response
In fact, until the moment I could not solve the problem.And I would like to inform you that when I load the program into the microcontroller and I click start, an interruption which generates CPU_Interruption and in the command window I receive the following message: illegal_BP

ISR(Cpu_Interrupt)
{
  /*lint -save -e950 Disable MISRA rule (1.1) checking. */
  asm(BGND);
  /*lint -restore Enable MISRA rule (1.1) checking. */
}

I thank you once again for your helpfulness