anonymous wrote on Wednesday, September 11, 2013:
Hi, this is my first post and if I miss to include any essential information, please inform me.
I have a project that we are using FreeRTOS in. I want to have a number of tasks periodically and for that I use vTaskDelayUntil. So far everything is quite nice and easy.
What I’m looking for is to stop a task (not end it, not preemptive it, so it starts all over next period) if it goes on too long. For example a extreme value that’s not thought of, creating a inf-loop.
This is because we’re working with sensors and controllers and the timing need to be rather good and consistent.
For example, Task1 in a period goes over its deadline. Task2 have lower priority and gets delayed, from then on Task2 will be delayed since vTaskDelayUntil reads the tick-count when entering a task.
Example 2, Task1 in a period goes over its deadline, not finishing putting sensor values in a message queue, Task2 have higher priority and preemptives it. Task2, Task3… TaskN finishes and Task1 continues, going over into the new period.
I know this is a bit academic due to the fact that the processor won’t be used 100% but since the system in this project is going to be on a truck we want it to be robust for future task-scheduling, saftey etc.
FYI, this is a student project, so if I said something stupid, I blame it on that.
For the curoius people, we’re using a TI devel-board, RM48HDK, and will implement inverse kinematic, automatic control and more.