This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FIFOs using CHNL module

hi everybody,


we are currently trying to implement FIFOs for communication from GPP<->DSP and
DSP<->DSP using CHNL. (we are developing on linux!)

when running this example: "GPP -> DSP -> GPP" everything works fine. this is
how we go about on the GPP side:
+ creates input/output channel with CHNL_create("dio_dsplink#")
+ allocate one buffer with CHNL_allocateBuffer()
+ the first GPP task does this on the output channel:
  + CHNL_issue()
  + CHNL_reclaim()
+ the second GPP task does this on the input channel:
  + CHNL_issue()
  + CHNL_reclaim()

now the DSP side:
+ create one input and one output channel with SIE_create("dio_dsplink#")
+ allocate one buffer with POOL_alloc()
+ this is how the input and output stuff is handled:
  + SIO_issue(inputstream, buffer);
  + SIO_reclaim(inputstream, buffer);
  + // PLACE1 //
  + SIO_issue(outputstream, buffer);
  + SIO_reclaim(outputstream, buffer);

(i ll skip the cleanup code)

how the problems/question.


1) i created two tasks on the DSP and splitted at the PLACE1 marker in my
previous application. receiving buffers from GPP works like before but i cannot
send correctly. i manage to send "something" to the GPP. buffer size is zero
and a CHNL_E_EOS (end of stream was already requested on this output channel)
is returned.

what would be the correct way (maybe in form of function calls) to send
something from DSP to GPP using CHNL?


2) additionally, i am trying to implement DSP-side communication only, using
CHNL again.

when creating the channel with CHNL_create() what would be the device name?

thx for any help

best regards

  • hi all,

    1) solved. some old code set the buffer size that was sent to the GPP to 0.

    2) still open. do i have to create a static devince for CHNL on DSP?

    thx

  • hi pals,

    consider the following situation: i want to submit several (e.g. 10) items on a CHNL. it works just fine if the number of elements is just 1. but when i try to work with more items i simply cant handle it.

    i am the writer. after first issue() that is using an allocated buffer i get by "reclaim" some buffer i never allocated. now, when sending next item with this buffer i am blocked.

    what is the correct way doing these things? is there somewhere a very small/simple/noob example/documentation?

    thx