Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

Problems with Task Priorities

Posted by Mathias Zenger on June 3, 2009
Hi

I have several tasks running in my application. Basically I want them to run periodically in a fix order. Unfortunately the execution seems to mix up so I do not achieve the desired order.

Task 1 (priority 6) should execute every 10ms and increments a variable (time base in 10ms steps). It blocks calling vTaskDelayUntil.

Task 2 (priority 4) depends on the variable's value and should also execute every 10ms. It also blocks calling vTaskDelayUntil.

As far as I know Task 1 should always enter the running state first due to its higher priority. After Task 1 having blocked, Task 2 should enter the running state (never missing an increment). I assume this scenario should repeat for ever periodically. How can it happen that Task 1 sometimes gets executed twice before Task 2 enters the running state? Is my approach wrong? Can a task leave the blocked state prior to the elapsing of the desired delay time (what reasons are possible)? Thanks for helping.

Regards,
Mathias


RE: Problems with Task Priorities

Posted by Dave on June 3, 2009
If your tasks are at different priorities then it should work I think, but it will depend on what else your system is doing. For example, is it possible that Task 2 is getting starved of processing time?

Can you cut your app down to the bare bones and still get this behavior? If so then post the code (pastebin.com seems to be a good place to put source code and keep the formatting).

RE: Problems with Task Priorities

Posted by Mathias Zenger on June 4, 2009
Dave,

Thank you for your suggestions. Since my project has become quite big it was the right way to cut it down. I guess to question FreeRTOS was a bit too fast (it works fine as expected). I am using two EVK1100 with ATMEL's AT32UCA0512. Both boards are using DHCP but unfortunately had the same MAC address. Therefore they got the same IP from the DHCP server!! I believe this troubled my application completely and leaded to getting starved some tasks.

Anyway it helped me to discuss the problem with you. Thanks!


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS