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.

how to pass paramter from DSP to ARM?



Now i use DVRRDK in 8168,and right now i don not know how to pass the parameter which i defined from DSP to ARM.

I read one info from http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/309957/1144517.aspx#1144517

"Refer the algLink where similar logic is used to export analytics info to A8."

I refer the algLink(eg:SCD) using "System_linkControl(SYSTEM_LINK_ID_HOST, VSYS_EVENT_DETECT, algResultBuff, sizeof(TRIMPS_AlgResult), TRUE);" to write some analytics info to A8, however,it hang .I checked the code and found that the system run normally when the sizeof(PARAMETER)is shorter while the sizeof(PARAMETER)≈2KB it hang.

Therefore,System_linkControl can not pass the parameter which the sizeof is taller ,is it right? And how to solve the problem passed the parameter of "TRIMPS_AlgResult" from DSP to ARM?

  • AlgLink doesn't use System_linkControl(SYSTEM_LINK_ID_HOST, VSYS_EVENT_DETECT, algResultBuff, sizeof(TRIMPS_AlgResult), TRUE) to pass data to A8.

    It actually put the meta data in BitstreamBuffer and uses ipcBitsOutLink (c674 dsp) -> ipcBitsInLink (A8) to export the info.

    If you are using Syslink_linkControl ,have you added a new event or are you using VSYS_EVENT_DETECT ?

    What is the hang you are seeing when PARAMETER is 2KB ? Do you get any error msg ?

  • I think using ipcBitsOutLink (c674 dsp) -> ipcBitsInLink (A8)  only to export  frame data,and i wanna to export the output of ALG running on DSP from DSP to HOST.

     I am still using  Syslink_linkControl,add a new event and using VSYS_EVENT_DETECT.

    and change the size of  "#define SYSTEM_IPC_MSGQ_MSG_SIZE_MAX" from 64*1024 to 256*1024 in the file of mcfw\interfac\link_api\System_common.h,increase SR0_SIZE from 15MB to 20MB and decrease SR2_FRAME_BUFFER_SIZE from 234MB-256KB to234MB-256KB -5MB in the file of config_2G.bld. However, this occured "segment default".

    Therefore, i wanna know can  Syslink_linkControl achieve that passing  huge amounts of data from DSP to Host? Any other way? thanks!

     

     

  • If you want to pass large sized data than using ipcBitsOutLink ->ipcBitsInLink is the right method. You can send any data using ipcBitsOutLink->ipcBitsInLink. There is no restriction that it is frame data.

    MessageQ heap is not cached on c674 and sending large msgs will result in very bad performance.

    Apart from SYSTEM_IPC_MSGQ_MSG_SIZE_MAX you should also change SYSTEM_IPC_MSGQ_HEAP_SIZE to

    SYSTEM_IPC_MSGQ_HEAP_SIZE * 5. You don't have to increase SR0 but the change you have done should also work. Make sure SR0 start at 16MB address boundary and is multiple of 16 MB