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.

Need help with the following scenario

Other Parts Discussed in Thread: OMAP-L137

I have the following scenario:

0) OMAP-L137 EVM

1) DSPBIOS 5.41.0.6 running on DSP.  Timesys Linux Running on the ARM.

2) DSP code running from L2 cache

3) DSPLINK 1.65.0 changed to draw pool memory from L3 Cache

4) L3 Cache not turned on (I haven't set the MAR bits for it in the tconf file)

5) The ARM program allocates a buffer, puts some data in it.  One of these data variables is a control word.

6) The DSP looks at this control word, and when it goes high, it reads the rest of the data and processes it.

7) When done, the DSP returns the control word to 0

8) The ARM waits until this control word returns to zero and displays the results.

The problem is, Nothing happens.  The control word goes high and stays high, and none of the data changes.  I've got a suspicion that the ARM has cached the value, and the DSP isn't seeing it.  On the dsp side of things, I do call HAL_cacheInv before reading the data and I call HAL_cacheWb when I've made my changes, but no luck.

Ideas?

  • Christopher Fury said:
    5) The ARM program allocates a buffer, puts some data in it.  One of these data variables is a control word.

    How are you allocating the buffer?  Are you using CMEM?  In any case I would agree with you that most likely your buffer is not being allocated correctly and as a result the ARM is caching the data.