Compiling the utilities:

just type make.

==================================================================== 

create a dsp microcode binary file with:

./compile mycode.dsp mycode.bin

Have a look at the example.dsp to see what's possible to do.

=====================================================================

There are three dsp code specific C variable types: gpr, tram_line, tram_block.

A gpr can be of one of the following types:
INPUT - where the patch is going to fetch it's input signal.
OUTPUT - where the patch is going to put it's output signal.
STATIC - the value is preserved at all times i.e. other patches can not overwrite it.
CONTROL - like STATIC but will be exposed to external applications.
DYNAMIC - the value is only preserved within the scope of the patch.

To use a gpr you first have to declare it:

gpr foo;

And initialize it (the type chosen from the above options):

INIT_GPR_INPUT(foo);

	or

INIT_GPR(foo, GPR_TYPE_INPUT);

For CONTROL and STATIC gprs you can set their initial value with:

SET_GPR_VALUE(foo, value);

For CONTROL gprs you can set their name, which will be visible to the user, with:

SET_GPR_NAME(foo, "name");

-------------------------------------------------------------------------

A tram block can be of one of the following types:
DELAYLINE - the block of tram memory will be used for a delay line.
	    (the base address decreases)
TABLELOOKUP - the block of tram memory will be used for a table lookup.
	      (the base address remains constant)

To use a tram block you first have to declare it:

tram_block foo;

And initialize it (the type chosen from the above options):

INIT_TRAM_BLOCK_DELAYLINE(foo, size);

	or

INIT_TRAM_BLOCK(foo, TRAM_BLOCK_TYPE_DELAYLINE, size);

--------------------------------------------------------------------------

A tram line can be of one of the following types:
READ - the tram engine will read data from tram memory. 
WRITE - the tram engine will write data to tram memory.

To use a tram line you first have to declare it:

tram_line bar;

And initialize it

INIT_TRAM_LINE_READ(bar, foo);

        or

INIT_TRAM_LINE(bar, TRAM_LINE_TYPE_READ, foo);

Notice that you need to attach the line to an already declared and initialized
tram block.

You can set the tram address value with:

SET_TRAM_LINE_ADDRESS_VALUE(bar, value);

and the tram data value with:

SET_TRAM_LINE_DATA_VALUE(bar, value);

=====================================================================

DSP programs loading:

Load a binary dsp microcode file with:

./load mycode.bin

=====================================================================

Register dumping:

Look at the register values with:

./dump offset lenght

offset and lenght in bytes units and decimal notation.
