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.

DSP+ARM data exchange using BSL

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

Hello,

I have OMAPL138 EVM from logicPd, CCSV4.2.4, sysBIOS, logicPd BSL &GEL files. Presently I have two dis-joint projects.

First Poject: ARM9/OMAPL138 does some peripheral handling such as LCDC, timer, LED blinks using BSL function in sysBIOS project

Second Poject: C6748/OMAPL138 does some analog acquisition using BSL and then does some signal processing tasks in sysBIOS project

Now I want to pass these data from DSP side to ARM9. I did not use any packages or IPC  till now. How to go about this. Can any body please help me in exchanging the data.

The data can be:

   i. numeric values

  ii. strings

 iii. Large array

and

iv.  Real-time data transfer.

Please state clearly in simple steps

Thank you

Yours friend

Mahesh

 

  • Mahesh,

    If you are not using the MMU on the ARM9 processor in OMAP-L138, the memory map for ARM and c674 DSP will be the same. If this is the case, you can use the IPC package which is SysBIOS compatible. The latest IPC package can be downloaded from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ipc/index.html 

    Please note the compatible SysBIOS version and XDCtools packages that must be used together to avoid build and compatibility issues. Once installed, you can start with the IPC hello world example which creates two SysBIOS projects, one runs on ARM9, and another on C674 for OMAP-L138. This example passes a simple payload value between the 2 CPUs and you can use this as a starting point. How IPC is related to SysBIOS is described at http://processors.wiki.ti.com/index.php/How_is_SYS/BIOS_related_to_IPC%3F 

    If you are not using the MMU, data can be passed from ARM to DSP and vice versa using the Notify_sendEvent API. This API passes a 32-bit payload from application running on one CPU to the other. On the receiving side, your application provides a callback handler to read this payload and pass it on to the application. The 32-bit value can be used as a pointer to the data structure that you want to pass between one CPU to the other.

    If you are using the MMU to map virtual addresses for the ARM, you need to provide the address translation between the DSP and ARM (this will depend on how you map the MMU) or create a virtual address region where the memory map has a one-to-one correspondence between the ARM and DSP to remove the address translation need.