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.

SIO_create hangs

Other Parts Discussed in Thread: OMAPL138

Hi All,

I'm starting my first project with BIOS/DSP and OMAP L138.

I have to use McASP. I want to start my program not from scratch, so I tried the example program mcasp\mcaspSampleSlave.pjt

Unfortunately this application program hangs in the function SIO_Create.

I have searched already in the forum for solutions, so I found the hint regarding Timer and  TSK_sleep(). But this seems not to be the problem, I tried the Sleep function and it is working properly:

// code

 TSK_sleep(5000);                                                          // is ok, function returns after 5 sec
 /* open the I/O streams for receive      */
 inStream = SIO_create("/dioMcaspIN", SIO_INPUT, BUFSIZE, &sioAttrs);      // no return from this function !!!

System:

Tool: CCS3
Target: LogicPD OMAPL138 SOM/Experimeter Kit
DSP/BIOS Version:5_41_02_14
only DSP is running

What is wrong?

Thanks in Advance

Richard

  • Creating dynamic threads is discussed in this wiki page:

    http://processors.wiki.ti.com/index.php/Creating_Dynamic_Objects_and_Threads_in_BIOS

    However, given that SIO_create never returns you might have something more fundamental that is wrong.  You should probably check out this page as well:

    http://processors.wiki.ti.com/index.php?title=DSP_BIOS_Debugging_Tips

     

  • Hi Richard,

    Have you found the solution to this problem in audioSample? I am having the exactly same problem and looking for an answer.

    I have tried the TSK_sleep(), Increase the stack size. However, nothing worked.

    Using CCS4 with DSP/BIOS Version 5_41_10_36 and PSP pspdrivers_01_30_01. Target : LogicPD OMAPL138 SOM/Experimeter Kit.

    Any information will be appreciated.

    Thanks,

    Sarah

  • Hello Sarah,

    unfortunately I cannot help. I was not able to bring this example running, and I stopped investigations.

    Instead of, on our own target, I have written the mcasp programming totally by my own with direct register access to mcasp, and this is working well now. if doing this, you have to program FIFO and DMA, too. (you can work without, but you will have bad performance which causes underruns and overruns).

    maybe I have an idea, what can be a reason for this problem.

    if you have no I2S Clock (no clock at all or wrong PinMux Settings, the initialisation cannot start. I found, when programming the register accesses, that after writing the control register you have to re-read the register, till the register is latched and you are able to read the value, you have written. the macasp is not latching this register, when it has no I2S clock, so maybe this can cause an infinite loop.

    Good Look

    Richard

     

  • Thank you for your quick reply and the information, Richard.

    I tried the McASPSample, which uses the SIO_Create() as well, and somehow it worked just fine.  I will start from there and try to build my own AudioSample.

    Hopefully that will at least explain which part went wrong.  If I couldn't get it work, I will have to do the same - start from scratch.

    Cheers,

    Sarah