Jump to content
43oh

Launchpad Operating System


Recommended Posts

Hi All.

 

Just wanted to let you know of a port of RT-Druid and the ERIKA Enterprise OSEK/VDX-like operating system to the msp430, with support for the LaunchPad board added by me!

 

http://erika.tuxfamily.org/wiki/index.php?title=TI_MSP430

 

RT-Druid is a set of plugins for the Eclipse IDE that let you configure the ERIKA Enterprise operating system - it includes a simple demo (using the on-chip ADC and temperature sensor to drive the LEDs, as always!) that can be used as a starting point for more complex programs.

 

The msp430 support uses the mspgcc compiler, and is currently working under Linux with Windows support on the way.

 

Steve.

Link to post
Share on other sites

Hi Steve,

 

It's cool to see the MSP430 getting some serious attention but I'm still trying to understand why I should use an RTOS on it.

 

Could you post an example of this RTOS running something blinky?

Link to post
Share on other sites
Hi Steve,

 

It's cool to see the MSP430 getting some serious attention but I'm still trying to understand why I should use an RTOS on it.

 

Could you post an example of this RTOS running something blinky?

 

Sure, an RTOS is overkill for "something blinky", but to implement more complex solutions an RTOS might start to make sense. Exactly where that point is will depend on the problem.

 

A "blinky" implementation under ERIKA Enterprise is going to look something like this (untested):

 

#include "ee.h"

/* configure timer A to give us periodic interrupts */
static void __inline__ timerA_init (void)
   {
/* configure timer A to give us interrupts */
   TACCTL0 = CCIE;

   /* source clock from SMCLK, continuous UP */
   TACTL = TASSEL_2 | MC_2;
   }

ISR2 (TIMERA0_VECTOR)
   {
   ActivateTask (Task1);
   }

TASK (Task1)
   {
       EE_led_0_toggle ();
   }

int main(void)
   {
   EE_watchdog_disable ();

   EE_sysclk_init_1MHz ();

   EE_leds_init ();

   timerA_init ();

   EE_hal_enableIRQ ();

   for (;
       {
       /* enter low power mode and wait for interrupts */
       EE_msp430_enter_LPM (LPMODE_0);
       }

   return 0;
   }

 

This could be cut down even more, as the LED toggling could be done in the ISR, rather than activating a task, but then if all you want to do is flash a LED then why not just use a couple of BJTs?

Link to post
Share on other sites
... RT-Druid and the ERIKA Enterprise OSEK/VDX-like operating system ...

 

What is it? I haven't found anything even close to a good description on that site.

 

http://erika.tuxfamily.org/ (the main site, not the wiki) has a pretty good overview of what RT-Druid and ERIKA Enterprise are:

 

Erika Enterprise is a free of charge, open-source RTOS implementation of the ISO 17356 API (derived from the OSEK/VDX API).

 

RT-Druid is a set of Eclipse plugins implementing an configuration language inspired on OSEK OIL, able to produce an OSEK ORTI file compatible with Lauterbach Trace32 debuggers.

 

Erika Enterprise provides a minimal 1-4 Kb Flash real-time kernel (RTOS) for single and multicore embedded systems.

 

Erika Enterprise implements conformance classes BCC1, BCC2, ECC1, ECC2, plus other custom conformance classes named FP, EDF, and FRSH.

 

Erika Enterprise supports a variety of 8, 16, 32 bit microcontrollers, including multicores.

Link to post
Share on other sites

One great application which an MSP430 would benefit from an RTOS is in a wireless mesh network. Many tasks will need to be done on a single chip randomly, sometimes causing conflicts. If I understand it correctly, an RTOS is really just a way to manage tasks in real time.

 

Hope that helps put some perspective on it!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...