New FreeRTOS examples for AVR and ARM

The latest versions of FreeRTOS are now located here: http://code.google.com/p/rtoslibs/

A version of FreeRTOS with many new examples is here FreeRTOSBeta20130107.zip http://code.google.com/p/beta-lib/downloads/list.

There are sixteen new examples from the book "Using The FreeRTOS Real Time Kernel - a Practical Guide". http://shop.freertos.org/RTOS_primer_books_and_manual_s/1819.htm

The following examples are fully described in the above book. I have modified the examples to run as Arduino sketches.

Example 1. Creating Tasks Example 2. Using the Task Parameter Example 3. Experimenting with priorities Example 4. Using the Blocked state to create a delay Example 5. Converting the example tasks to use vTaskDelayUntil() Example 6. Combining blocking and non-blocking tasks Example 7. Defining an Idle Task Hook Function Example 8. Changing task priorities Example 9. Deleting tasks Example 10. Blocking When Receiving From a Queue Example 11. Blocking When Sending to a Queue / Sending Structures on a Queue Example 12. Using a Binary Semaphore to Synchronize a Task with an Interrupt Example 13. Using a Counting Semaphore to Synchronize a Task with an Interrupt Example 14. Sending and Receiving on a Queue from Within an Interrupt Example 15. Rewriting vPrintString() to Use a Semaphore Example 16. Re-writing vPrintString() to Use a Gatekeeper Task

I have modified existing examples to illustrate more FreeRTOS features and add a new example to illustrate Rate Monotonic Scheduling.

The importance of preemptive scheduling for hard real-time systems was demonstrated in the the seminal Liu and Layland paper [1973]. This paper introduced the concept of Rate Monotonic Scheduling and proved key theorems basic to RTOS scheduling algorithms.

This is fantastic, thank you!

Which edition is the best to purchase? M3? Standard?

I think M3 would be good. It has a little Cortex M3 info but the examples are basically the same in all editions.

The examples have slight differences in each edition, things like stack size and some aspects of initializing the CPU.

I have modified these areas to provide an AVR and ARM version for Arduino. The ARM versions run on both Due and Teensy 3.0.