Pages: [1]   Go Down
Author Topic: Ideas for explaining simple RTOS through Arduino  (Read 2072 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I am looking for some basic application examples to explain students concepts of RTOS.
I am using DuinOS library currently. DuinOS has two basic example which use only leds.
Kindly share your ideas with me on ,How can be more examples build to explain concepts of RTOS a little differently.

I was only able to think about calculating frequency of two pins A and B having same signal, using two routines A and B having different task priorities which are running in parallel.

I know there can be many examples like this but couldn't do beyond adding a serial port for debugging to above Idea.

So if any interesting one comes to your mind don't forget to share.

I am into publishing if any body has some articles on RTOS or has created examples using DuinOS library just PM me. I will not forget to mention your name. smiley
« Last Edit: February 16, 2012, 06:53:01 am by dakudiv » Logged

Denver Colorado USA
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Chip Overclock is a product developer based in Denver Colorado USA who specializes in very large and very small systems: distributed, real-time, high performance, embedded, highly concurrent.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I've had the same idea: I believe Arduino would be an excellent basis for teaching real-time software design, all the way from simple unitasked busy-waiting stuff using the Arduino platform, to complex multitasked interrupt-driven applications using a platform like FreeRTOS. Instructors could start small with the Arduino SW and IDE on the Arduino Uno, and migrate to advanced topics related to how commercial embedded product development is done on Arduino Mega and clones. That's basically what I did: learned the AVR architecture on the Uno with Arduino, then got FreeRTOS running on a Freetronics EtherMega (a Arduino Mega clone that has the equivalent of an Ethernet Shield integrated on to the board), then wrote a C++ OO wrapper layer around the FreeRTOS facilities (because that's my own thing: applying C++ and OO to embedded development), then wrote interrupt-driven device drivers for Serial and SPI in C++, and drive it all with a simple unit testing framework to convince myself it all works. I think the Arduino HW is a pretty much idea platform for teaching and learning this kind of stuff.

The FreeRTOS docs, both the reference manual and the introductory user guide are well worth their tiny price. The Atmel reference manual for the specific microcontroller is a must. I have a slew of textbooks on real-time and concurrent programming, but it would take some thought to decide which one would serve best in a specific course.

I've looked at a lot of platforms over the past few years, including an Atmel AT91 (ARM) evaluation board, BeagleBoards (OMAP ARM), etc. I've spent years doing embedded development on ARM processors using Linux, but I just think that Linux and any processor with a memory management unit is just too complicated for introductory courses. You spent too much time dealing with stuff that isn't core to what you are trying to teach.

A link to a tarball of the whole my whole project can be found here:

http://www.diag.com/navigation/downloads/Amigo.html

Recent blog articles I've written on this topic:

http://coverclock.blogspot.com/2012/03/small-town-big-city.html

http://coverclock.blogspot.com/2012/04/learning-by-doing.html

http://coverclock.blogspot.com/2012/03/getting-from-power-up-to-running-main.html
Logged


Pages: [1]   Go Up
Jump to: