I am confused in OS_EnterNestableInterrupt

Hi
I am a little confused while I am migrating my old embOS Renesas source code to Microchip FreeRTOS.
In Renesas, we were using this below :

void far TA1_ISR()
{	
	P7 &=  0xFB; //sk cr step signal off//
	OS_EnterNestableInterrupt();	
	Motor_timer();			
	OS_LeaveNestableInterrupt();	
}

Now in Microchip, I am using this :

void TA1_ISR(uint32_t status, uintptr_t context) {
    
    UBaseType_t TA1_ISR_uxSavedInterruptStatus;
    TA1_ISR_uxSavedInterruptStatus = taskENTER_CRITICAL_FROM_ISR();
    vTaskSuspendAll();

    PORT_PinWrite(CR_CLK_PIN, false);
    Motor_timer();

    xTaskResumeAll();
    taskEXIT_CRITICAL_FROM_ISR(TA1_ISR_uxSavedInterruptStatus);
}

Is this correct ?? If not then please help me out.

Seems that OS_Enter/LeaveNestableInterrupt is the embOS API for a critical section (in an ISR), right ?
Then taskENTER/EXIT_CRITICAL_FROM_ISR is the proper replacement. vTaskSuspend/ResumeAll is useless/incorrect.

Thank You for replying.
I also do that but I faced the problem during re-enabling the interrupt.

OS_Enter/LeaveNestableInterrupt is also re-enable the interrupt. Have you any idea how to do that in freeRTOS?

I have another query, is it possible to use EmbosRTOS in MPLAB X ide? if yes, please guide me on how to do that or share any reference links.

Best Regards
Pankaj

  1. Which problem ?
  2. Which interrupt ? Is this This page describes the FreeRTOS taskENTER_CRITICAL_FROM_ISR() and taskEXIT_CRITICAL_FROM_ISR() API macros not what you need ?
  3. Wrong forum I afraid :wink: