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.

If i create 4 remote codec on the dsp by CodecEngine,video capture fail on the A8.

Hi,

First,My work platform is DM8168.

Video capture is working on VPSS-M3,and A  thread of an application on the A8 can get the video capture buffer by syslink from VPSS-M3.

But if  B thread of the application  create four remote codeces on the dsp,A thread can't get capture buffer by syslink.

I suppose that memory configuration is not correct.

The following lines is the relative script .

==========================================

dspserver.cfg:

var TI816X_DSP_MemoryMap = [
            ["DDR3_HOST", {
                comment: "DDR3 Memory reserved for use by the A8",
                name: "DDR3_HOST",
                base: 0x80000000,
                len:  0x10000000/* 256 MB */
            }],
            ["DDR3_DSP", {
                comment: "DDR3 Memory reserved for use by the C674",
                name: "DDR3_DSP",
                base: 0x9a400000,
                len:  0x800000/* 8 MB (Default memory reserved for c674x changed based on size of the DSP code)*/
            }],
     ["DDR3_CMEM", {
                comment: "DDR3 Memory reserved for use by the C674/ARM for CMEM",
                name: "DDR3_CMEM",
                base: 0x9ac00000,
                len: 0x3c00000/* 60MB (CMEM region defined based on application requirement) */
            }],
            ["DDRALGHEAP", {
                comment: "DDR3 Memory reserved for use by algorithms on the C674",
                name: "DDRALGHEAP",
                base: 0x9e800000,
                len:  0x1000000/* 16 MB (Region used by algs and codec engine for memory allocations)*/
            }],
           
            ["DDR3_SR1", {
                comment: "DDR3 Memory reserved for use by SharedRegion 1",
                name: "DDR3_SR1",
                base: 0x9f800000,
                len:  0x800000 //8 MB (Reserved)
            }],
            ["DDR3_HDVPSS", {
                comment: "DDR3 Memory reserved for use by HDVPSS",
                name: "DDR3_HDVPSS",
                base: 0x91000000,//DDR3_HDVPSS_base,
                len:  0x800000,//DDR3_HDVPSSLen    //2 MB (Reserved)
            }],
            ["DDR3_V4L2", {
                comment: "DDR3 Memory reserved for use by V4L2",
                name: "DDR3_V4L2",
                base: 0xb2c00000,
                len:  0x200000,//2 MB (Reserved)
            }],
            ["DDR3_SR0", {
                comment: "DDR3 Memory reserved for use by SharedRegion 0",
                name: "DDR3_SR0",
                base: 0x90000000,
                len:  0x1000000//16 MB (Reserved)
            }],
            ["DDR3_M3", {
                comment: "DDR3 Memory reserved for use by the M3 core",
                name: "DDR3_M3",
                base: 0x95800000,
                len:  0x800000,//16 MB (Reserved)
            }],   

];

var common = xdc.loadCapsule('../examples/ti/sdo/ce/examples/buildutils/common_sys.cfg');

 if (platformName.match(/3530|DM8148/)) {
        var syslinkSharedMem = Program.cpu.memoryMap["SysLink"];
        var ipcSharedMem = Program.cpu.memoryMap["IpcShared"];
    }
    else {
        var syslinkSharedMem = Program.cpu.memoryMap["DDR3_SR0"];
        var ipcSharedMem = Program.cpu.memoryMap["DDR3_SR1"];
    }

  var SharedRegion  = xdc.useModule('ti.sdo.ipc.SharedRegion');

    var entry = new SharedRegion.Entry();

    entry.base = syslinkSharedMem.base;
    entry.len = syslinkSharedMem.len;
    entry.ownerProcId = MultiProc.getIdMeta("HOST");
    entry.isValid = true;
    entry.name = "SysLink";

    SharedRegion.setEntryMeta(
            common.SharedRegion_map["SysLink: HOST<--->DSP"],  /* index */
            entry
    );

    var entry2 = new SharedRegion.Entry();

    entry2.base = ipcSharedMem.base;
    entry2.len = ipcSharedMem.len;
    entry2.ownerProcId = MultiProc.getIdMeta("HOST");
    entry2.isValid = true;
    entry2.createHeap = true;
    entry2.cacheEnable = true;
    entry2.name = "IpcShared";

    SharedRegion.setEntryMeta(
            common.SharedRegion_map["Ipc"],  /* index */
            entry2
    );

==========================================================

common_sys.cfg:

/* system wide shared region assignments */
var SharedRegion_map = {};

SharedRegion_map["SysLink: HOST<--->DSP"] = 0;
SharedRegion_map["Ipc"] = 1;
SharedRegion_map["unused 02"] = 2;
SharedRegion_map["unused 03"] = 3;
SharedRegion_map["unused 04"] = 4;
SharedRegion_map["unused 05"] = 5;
SharedRegion_map["unused 06"] = 6;
SharedRegion_map["unused 07"] = 7;
SharedRegion_map["unused 08"] = 8;
SharedRegion_map["unused 09"] = 9;
SharedRegion_map["unused 10"] = 10;
SharedRegion_map["unused 11"] = 11;
SharedRegion_map["unused 12"] = 12;
SharedRegion_map["unused 13"] = 13;
SharedRegion_map["unused 14"] = 14;
SharedRegion_map["unused 15"] = 15;

/* system wide MessageQ heapId assignments */
var MessageQ_heapMap = {};
MessageQ_heapMap["Ipc"] = 0;  /* application */
MessageQ_heapMap["App"] = 1;  /* application */

 =================================================================================

 the shared region (syslink) is from 0x90000000 to 0x91000000,are the three core (VPSS-M3,Video-M3,DSP)use it?