AVR ATmega port of freeRTOS
C C++ Objective-C Assembly Processing Makefile
Latest commit 92ec13a Dec 9, 2016 @feilipu committed on GitHub Delete unnecessary file.
Replicates FreeRTOSVariant.h replicates the FreeRTOSBoardsDefs.h file.
Snuck in here from the Arduino and miniAVRfreeRTOS repos.
Permalink
Failed to load latest commit information.
4MHz_Oscillator Updated applications at last state before new freeRTOS branch. Feb 26, 2016
AVRstk500v2_bootloader Update to 2015-06-12 release Jun 14, 2015
ConwayLifePeggy Update to 2015-06-12 release Jun 14, 2015
Danger_ADB Update to 2015-06-12 release Jun 14, 2015
Danger_HID Update to 2015-06-12 release Jun 14, 2015
DogBot Update to 2015-06-12 release Jun 14, 2015
FRAMTest Updated applications at last state before new freeRTOS branch. Feb 26, 2016
GA_Synth brackets again Sep 29, 2016
GA_TestSuite brackets again Sep 29, 2016
GA_WalkieTalkie brackets again Sep 29, 2016
Gameduino2 Updated applications at last state before new freeRTOS branch. Feb 26, 2016
Gameduino2_blobs Update to 2015-06-12 release Jun 14, 2015
Gameduino2_helloworld Update to 2015-06-12 release Jun 14, 2015
Gameduino2_sprites Update to 2015-06-12 release Jun 14, 2015
GoldilocksAnalogue brackets again Sep 29, 2016
IINChip_uIP_Test Update to xSerialRxFlush() Sep 11, 2016
KermitServer brackets again Sep 29, 2016
LCD6100_Demo Update to 2015-06-12 release Jun 14, 2015
LCD6100_Driver Update to 2015-06-12 release Jun 14, 2015
MegaBlink Updated applications at last state before new freeRTOS branch. Feb 26, 2016
MegaSDTest Updated applications at last state before new freeRTOS branch. Feb 26, 2016
MegaW5100Test updated webserver timeouts to be freeRTOS friendly. Mar 10, 2016
PeggyVideo16 Update to 2015-06-12 release Jun 14, 2015
PeggyVideoPong Update to 2015-06-12 release Jun 14, 2015
PixyTest Updated applications at last state before new freeRTOS branch. Feb 26, 2016
RFIDBlackWidowTest Update to 2015-06-12 release Jun 14, 2015
TouchPhone Update to xSerialRxFlush() Sep 11, 2016
UnoBlink brackets again Sep 29, 2016
audio_shield Updated applications at last state before new freeRTOS branch. Feb 26, 2016
electric_imp_v1 Updated applications at last state before new freeRTOS branch. Feb 26, 2016
freeRTOS82x FreeRTOS v9.0.0 - first commit Dec 4, 2016
freeRTOS9xx Delete unnecessary file. Dec 9, 2016
microbridge Updated applications at last state before new freeRTOS branch. Feb 26, 2016
multiplication Updated applications at last state before new freeRTOS branch. Feb 26, 2016
ramfs_client Update to 2015-06-12 release Jun 14, 2015
ramfs_load_gen Update to 2015-06-12 release Jun 14, 2015
ramfs_supervisor Update to 2015-06-12 release Jun 14, 2015
retrograde_v2 brackets again Sep 29, 2016
README.md fixed missing URL closure bracket ")" Mar 7, 2016

README.md

Description

AVR ATmega port of freeRTOS A port of freeRTOS which can be flexibly flexibly configured use almost any available Timer on AVR ATmega devices and will operate with almost any classic Arduino device from Arduino, SeeedStudio, Sparkfun, Freetronics or Pololu.

The Goldilocks Analogue story of adding a dual channel DAC to a 1284p classic Arduino board is told here. The Goldilocks Analogue - Kickstarter Campaign was successfully funded. It was also a Hackaday Prize 2015 Quarter Finalist.

Goldilocks Analogue

The first Goldilocks 1284p story is here. Ths idea was launched as a Pozible campaign in 2013. It was successfully funded and the Goldilocks was developed and supported by Freetronics.

This repo has been hosted on Sourceforge avrfreertos since 2012, and has been downloaded over 20,000 times. Going forward Sourceforge will be updated less often and only with major releases.

Please follow @_feilipu on Twitter.

Getting Started

To get started, follow the instructions on freeRTOS & libraries for AVR ATmega. Then do some further reading on the freeRTOS Quick Start Guide.

If this repository is too complicated to get started, a minimum AVR freeRTOS configured using the Watchdog Timer and Heap 3 is also also available. This option is without libraries, and is configured to get started with simple applications.

Also, for the Arduino platform, there is an Arduino freeRTOS Library available in the Arduino IDE Library manager, or by directly downloading the ZIP file and importing it into your Arduino IDE.

Features

The freeRTOS scheduler can be driven by any of the AVR ATmega timers, down to one millisecond (or less) time slices, depending on the application requirements. By using Timer2 for scheduling timing can be linked with a RTC capability with up to millisecond accuracy. By using the Watchdog Timer for scheduling no externally useful system resources are consumed, but time slicing is limited to 15 millisecond increments. Generally, I use the freeRTOS scheduler for loose timing (15ms) and hardware timers for tight (microsecond) timing, but each application is different.

There are multiple options for configuring the heap in freeRTOS. Please read the freeRTOS descriptions for the appropriate solution relevant to the application. Heap versions 1, 2, 3, and 4 have been implemented for this repository.

An integrated RTC providing Standard C90 system_time using the 32.768kHz crystal attached to Timer2 on 1284p Goldilocks or other RTC equipped boards. Standard C90 system_time is also available as an approximate RTC off other timers using 16MHz and other crystals.

Further Reading

The canonical source for information is the freeRTOS Web Site. Within this site, the Getting Started page is very useful. It is worth having a view from another user, and manicbug has some interesting examples. This AVRfreeRTOS Repository has plenty of examples, ranging from Blink through to a Synthesiser for the Goldilocks Analogue.