Pumpkin, Inc.

Pumpkin User Forums

Salvo on 18Fxx20

For issues specific to Microchip's PICmicro® MCUs, including compilers (e.g. HI-TECH PICC & PICC-18, Microchip MPLAB®-C18) and IDEs (e.g. Microchip MPLAB®).

Salvo on 18Fxx20

Postby rjohno » Thu Apr 21, 2005 6:06 am

.. and it works fine.

Here's the good stuff:
I've written my own RTOS's in various languages and SALVO is as good as any. Its full featured and absolutely works as advertised. The few times I have talked to Andrew about problems have been resolved completly.

Using Salvo made an extremly complex industrial control project easy to manage even though I byoassed some of the semaphores and messaging et al.

I confess to just flipping a global bit to indicate a keyboard hit.. etc.

The real Salvo payoffs for me were in the messaging queues (to drive an interminably slow Itron graphics display) and the absolutely invaluable OS_Replace macro. That little puppy allows my users to navigate the entire system using only one task. Sweet. Just swap in little task modules as selected.

Salvo downsides:

Salvo is written to compile on any ANSI compiler. That's fine but IMHO ignores the reality of embedded programming i.e. lots of hardware differences. For example, Salvo requires that all context switches be made at the top stack level because of the vast differences in the availability of the targets. Not a show stopper and in fact hard to do since different processors have different ways to handle the stack (if able at all). But since, I ..KNOW what processor I am using, it would be nice to have the ability to suspend at any stack level, especially since the 18F, and the the 8051 for that matter, have a crude ability to pop the stack into a TCB.

Maybe a compiler-specific library is in order.

All said.. I like Salvo a lot. Its contributed to 2 very successful projects and I have adopted it as a requirement for other clients for their 18F projects until I find something better..

Short answer:
Salvo works. I like it.


Posts: 2
Joined: Wed Apr 20, 2005 11:00 pm
Location: Coppell, TX, USA

Re: Salvo on 18Fxx20

Postby aek » Fri Apr 22, 2005 10:07 am

Thanks for the kind words.

Salvo's "context-switch-only-at-the-task-level" design is not so much a byproduct of architectures, but an intentional choice, made to minimize RAM requirements. The idea being that an RTOS is a powerful and very useful tool, but if you can't fit it in the part to begin with, then there's no hope of taking advantage of an RTOS to begin with.

That said, it sure would be nice to be able to context-switch at levels deeper than the task level, if only perhaps in certain call trees that need it.

In response to many customer requests like yours, we are currently evaluating a few different methods that would potentially allow context switches at deeper depths, but still keep Salvo's overall RAM requirements at a minimum. More news as it becomes available.


Posts: 1888
Joined: Sat Aug 26, 2000 11:00 pm

Return to PICmicro MCUs

Who is online

Users browsing this forum: No registered users and 2 guests