FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [June 2009 Threads] Behavior of critical section inside a taskPosted by aamir mahmood on June 12, 2009 Hi,
I have a question on the behavior of critical section procession (portENTER_CRITICAL( ) and portEXIT_CRITICAL( )). As I understood all the interrupts other that SWI are disabled as the code execution enters into the critical section.
Assuming a taskA with priority 1 is allocated with its time slice by the scheduler and taskA have just entered into the critical section of the code. While the code inside the critical section is executing, the taskA time slice expires and another taskB with higher priority 2 goes into the ready state. The question is, will critical section be able protect the taskA from being preempted by taskB? If not what could be done to prevent a higher priority task from preempting a lower priority task which is doing something critical.
Best regards, Aamir
RE: Behavior of critical section inside a taskPosted by Richard Damon on June 12, 2009 When you enter the critical section, the interrupts (or at least those involved that interact with scheduling) are disabled. When the time slice ends, the hardware will set the request for the timer interrupt, but the interrupt will not actually occur (since it is disabled) so nothing will cause the task switch. When the critical section ends, the interrupt will occur, and taskB will get switched in, but none of this happens until the critical section is over.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|