Real time OS for MSP430 microcontroller family
- The site is moving to http://sos.skydan.in.ua/. Please update your bookmarks!
- Fixed the wrong behaviour of the
SetTimer function. The updated SOS sources can be downloaded from here.
- The site is moving to http://skydan.in.ua/SOS/. Please update your bookmarks!
- Have checked the sources of the msp430-gcc, and saw that
task function attribute patch
is there, so you can download new SOS sources and avoid using the code shown
below (see news from 15.02.04). With the new version of SOS that code is unnecessary
and should be removed from you projects.
- The testing of the new version SOS2 is almost comleted. The SOS2 provides
much faster sheduler (single pass algorithm for
KSetEvents) and is 100% compatible with SOS.
It will be available soon for the $50 fee.
- I have found a BUG in SOS. When the task function has
a nonzero Frame Size, the needed memory is not allocated on the stack, since
naked attribute is used with the task
functions. I have made a patch for msp430-gcc which implements new
task function attribute. A quick fix is to insert
the following code at the start of the task function (needed only if
There was the same problem with the
asm volatile("sub #.L__FrameSize_"__FUNCTION__",r1" : :);
osinterrupt functions. But it is not likely to have
a FrameSize>0 in interrupt handlers, and I have already fixed it (no changes are needed for
your programs, just download new SOS sources from the download section,
and recompile SOS).
- I have changed the SOS license to make it clearer.
The new copyright is here. Also all old source code is
removed form the web-site.
- SOS is FREE now. The new
copyright is here.
- New SOS sources are in the download section. Now
you can choose not to use the IDLE task. If you do not use IDLE task, the
system will call
__EnterLPM function (you
should implement this function by yourself) during periods of IDLE time. Your
__EnterLPM function should look like:
Now it is possible to use SOS in the low power
for(;;)LPM1; //Use LPM appropriate for your application
- New SOS sources are in the download section. Fixed
BUG in CreateTaskExt/CreateTask that affected dynamic task
- The documentation section is updated (Added some
examples, also there are some additions and corrections by Garst R. Reese.
Many thanks for contributions).
New SOS sources are in
the download section. Fixed some timer issues.
osinterrupt macro syntax to match
the standard msp430-gcc's
- The site devoted to the my DSP HF transceiver (that
uses SOS intensively) is started. You can visit it here.
- The documentation section is updated (Added Timers section).
Discussion group has been started.
Join Now !
- The documentation section is updated.
The old SOS sources are no longer available, please use
the newer one from here.
- Added 'osinterrupt' function attribute for defining
interrupts that uses SOS kernel calls.
functions SupendTask, ResumeTask (and kernel mode KSuspendTask, KResumeTask).
Now you can disable Round-Robin sheduler by
#define RR_SHEDULER line in the
Added dint() and eint() macroses
(the same as in the 'signal.h') to prevent conflicts with 'signal.h'.
Updated SOS sources are here.
- Minor BUG in the file OS.h is fixed. Updated SOS
sources are here.
- Minor corrections of documentation section. (Added
table of contents, started Events section.)
- Updated documentation section. (Added critical section
functions, notes on interrupts and some corrections.)
- Fixed some incorrect links on this site.
Fixed path to header file
inttypes.h. This will make file
OS.h compatible with UNIX systems.
SOS sources are available for downloading here.
- The begining of this site
Designed by Oleg Skydan