> I always thought the SPI bus was a clockout/clockin deal.
SPI is a very loose standard, but in the ARMmite/express
implementation the ARMmite/express is always the clock master. SPIOUT
just write bytes out, SPIOUT can write some bytes and then read some
bytes. SPIBI writes and reads byte simultaneously.
> In the C do I need to call SPIOUT (with up to 3 bytes) followed by
> SPIIN? Is this operation 'buffered'?
All SPI operations are done bit-banged so there is no buffering and
when you call the routine the SPI operation will start and it will not
return until the operation is complete.
> I get a 'Data Abort 141c' message with just a SPIIN function call.
> I am also using the latest C version as I have put these pins at 16-20
> and have set them to DIGITAL.
A data abort normally occurs when you have a pointer to non-existant
memory. The 141c refers to the code address where this occurred. You
can see where that is in the code with Edit->ASM listing