Go Down

Topic: New FreeRTOS examples for AVR and ARM (Read 2 times) previous topic - next topic

fat16lib

Jan 07, 2013, 11:37 pm Last Edit: Jan 29, 2013, 06:02 pm by fat16lib Reason: 1
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.
Quote

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.

skyjumper

This is fantastic, thank you!

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

fat16lib

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.

Go Up