Page 1 of 1

Limited by absence of general-purpose stack

PostPosted: Fri Apr 15, 2011 1:31 pm
by jschooler
We have implemented a CCSDS communication protocol on a linux-based system, and are looking to modify our C program to run as a task in Salvo Pro. The code is designed in a way that reads in bytes from a buffer by a function call that is a few levels deep in the stack.

The Salvo user manual states that

Re: Limited by absence of general-purpose stack

PostPosted: Fri Apr 15, 2011 2:19 pm
by aek
This is a limitation of Salvo's design ... trading the ability to block at any level for much-reduced memory requirements and a very simple overall structure.

Some people have suggested using callbacks, or other similar approaches.

Some others have modified Salvo to support full stack frames, hence being able to block at any level -- Pumpkin does not current offer Salvo in this form.

One other way is to "macrotize" a given multi-level function to turn it into something completely flat (single call level) -- not pretty, not efficient, but it works.

My gut feeling is that your Linux-based implementation will be most easily implemented with a conventional RTOS (i.e., one with dedicated task stacks) -- this would permit you to maintain both versions and develop & test them in parallel.

Re: Limited by absence of general-purpose stack

PostPosted: Mon Apr 18, 2011 10:09 am
by aek
Perhaps it's time to add task stack support to Salvo -- what's your timeframe for needing this new feature?