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.

TI-RTOS for both cores on OMAP-L138

Other Parts Discussed in Thread: OMAP-L138, OMAPL138, SYSBIOS

Hi Guys,

I'm wondering if anyone can shine any light on what we are trying to do here and perhaps tell us if we're crazy or might more faster with a different approach.

We are considering using the OMAP-L138 for a low resolution high speed (although speed is a dependant variable) image processing platform (colour object detection). Our intention was somewhere along the lines of getting the DSP core to pre-process all the image data and then run our detection algorithm on the ARM which then forwards the results over Ethernet.

We have evaluated both versions of the LCDK, both the C6748 and the OMAP-L138. We initially started with the OMAP hoping we could use it pretending the ARM core simply wasn't there and that is where our problems started.

We've been struggling to find information about what everything needs to be initialised properly, but we've tried to load the UART echo C6748 demo program to the DSP core on the OMAP and it does not work. It doesn't work because the DSP cannot seem to write to the config registers of the UART successfully and we don't know why (we suspect the ARM core has done something from the onboard code to block this, but resetting the ARM core or holding it in reset, etc. doesn't help).

Our ultimate aim is to run both cores on TI-RTOS, if this is possible, with only basic synchronisation messages flowing between the cores and shared memory to access blocks of data ready for the ARM to work on (Ping-Pong buffering I guess), but our work starts on the DSP core first. the C6748 kit works great and we can run and debug everything, but we still don't know how we would migrate to the OMAP core to get the extra processing power.

I've read through all the documentation I can find and nothing talks about using RTOS on both devices, and certainly not how to debug the DSP in isolation.

As I said, if anyone can shine any light on this then it will be greatly appreciated!

  • Hi,

    Thanks for your post.

    It is not feasible for the ARM core on OMAPL138 to run on TI-RTOS, it can run on Linux and only DSP core can run on TI- RTOS (SYSBIOS).  To load the UART c6748 echo demo on OMAPL13x which is a dsp based project, so, please refer the note below:

    Note: While launching CCS debugger, please ensure to connect the ARM core first to make DSP out of reset before running the code and disconnect the ARM core, Then try reconnecting to the DSP core, reload the application image and run the application. This is because, OMAPL138 is an ARM boot device where in which arm boots first with its bootloader code and then it wakes up the DSP core letting it out of reset, so that, we are allowed to connect to the DSP core and run the application on the same.

    I would recommend you to ensure the above note is properly executed before running the UART echo example project on OMAPL138 LCDK.

    Unfortuanately, you could not run both core on TI-RTOS, but you could call IPC synchronization messages from ARM to DSP & viceversa to talk between the cores and use shared memory to access block of data across ARM and DSP core.

    Thanks & regards,

    Sivaraj K

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

    Please click the Verify Answer button on this post if it answers your question.

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

  • Hi Sivaraj,

    Thanks for the quick reply. Its worth noting, we are able to step through the code on the DSP, and most lines of code execute with no problems, until it comes to the point where the DSP needs to set the UART configuration registers, at this point the values in the registers do not change and the example does not work as a result of it.
  • Hi Sivaraj,

    I have recently suffered from a very similar problem to what Anthony has described, and although the above steps let me program the DSP device, they do not solve the issue of the UART not working.

    I get this in the console window whenever I connect to the ARM core, which may be relevant since it concerns the clock frequency and thus the UART module:

    ARM9_0: GEL: Error while executing OnTargetConnect(): Target failed to write 0x01C11138 at (*((unsigned int *) (0x01C11000+0x138))|=0x1) [OMAP-L138_LCDK.gel:16] at device_PLL0(0, 24, 1, 0, 1, 11, 5) [OMAP-L138_LCDK.gel:403] at Set_Core_300MHz() [OMAP-L138_LCDK.gel:468] at Core_300MHz_mDDR_150MHz() [OMAP-L138_LCDK.gel:245] at OnTargetConnect() .

    The main problem when the UART is running is inconsistent behaviour and all packets being read/written as 0xFF.  The PINMUX registers are all correctly setup for UART2, and the terminal registers the ARM Boot sequence if it attempts to boot via the micro SD card. 

    Regards,

    David.

  • Hi Antony,

    Antony said:
    We have evaluated both versions of the LCDK, both the C6748 and the OMAP-L138. We initially started with the OMAP hoping we could use it pretending the ARM core simply wasn't there and that is where our problems started.

    Yes, this is also possible. I mean to say, using OMAPL138, you can use only the C6748 core and ignore the ARM core. You can run all the examples made for C6748 LCDK on OMAPL138 LCDK. I have attempted running the C6748 example code ( Face detect demo ) on OMAPL138 LCDK getting executed on C6748 DSP core.

    The following are my steps to run the face detect demo ( you will find this demo as part of c6sdk_02_00_00_00 package ) on OMAPL138 LCDK.

    1. In OMAPL138 LCDK Board- Switch settings are : SW1 : 2,3,4 ON

    Hardware connection details - Display - VGA monitor, video input - DVD player, Emulator - TI XDS560 Emulator.

    2. In CCS V5.2, imported the project of face detect from C:\Program Files\Texas Instruments\c6sdk_02_00_00_00\demos\facedetect\build\cgt_ccs\lcdk

    3. In target configuration file,

         3.1 select the emulator as TI XDS560 Emulator

         3.2 select the board or device as LCDKC6748  

         3.3 select the gel file as C6748_LCDK.gel and do the test connection and made sure the connection is established.

    4. Build the project without any errors and start the debug session.

    5. In debug window, Select  "../C674X_0" and hit Resume.

    6. If you notice any "Load program error" (attached) , press reset button on OMAPL138 LCDK board and relaunch the debug session in CCS.

    7. As an output, you will noticed that the video plays and the (face detect) rectangles are displayed.

     For more info please refer to this thread:

    Regards,

    Shankari

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

    Please click the Verify Answer button on this post if it answers your question.
    --------------------------------------------------------------------------------------------------------