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.

Linking issue in PA package multicore example

Other Parts Discussed in Thread: SYSBIOS

Hello, 

I am trying to compile the multicore example given in packege PA. I have copied this in a different folder and have provided all the linking path and configuration file as well.

All things are compiled but few global variables are giving linking issue.

Error snapshot:

undefined                   first referenced
symbol                         in file
---------                           ----------------
c1                                  ./pa_mgmt.obj
c1Size                           ./pa_mgmt.obj
c2                                  ./pa_mgmt.obj
c2Size                           ./pa_mgmt.obj
cppiGblCfgParams   ./cppi_qmss_mgmt.obj
m                                  ./pa_mgmt.obj
mSize                           ./pa_mgmt.obj
qmssGblCfgParams ./cppi_qmss_mgmt.obj

Since all the library package are already consider using the configuration file multicore_example.cfg, so I guess i did not miss any of the libraries.

Is there any other library I have to provide separately for linking. All library package are consider using the cfg file i guess.

Below are the details of my cfg file.

* ======== multicore_example.cfg ========
*
*/

/* Load all required BIOS/XDC runtime packages */
var Memory = xdc.useModule('xdc.runtime.Memory');
var BIOS = xdc.useModule('ti.sysbios.BIOS');
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
var HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
var Log = xdc.useModule('xdc.runtime.Log');
var Task = xdc.useModule('ti.sysbios.knl.Task');
var Hwi = xdc.useModule('ti.sysbios.family.c64p.Hwi');

/* Load the CSL package */
var Csl = xdc.loadPackage('ti.csl');

/* Load the CPPI package */
var Cppi = xdc.loadPackage('ti.drv.cppi');

/* Load the QMSS package */
var Qmss = xdc.loadPackage('ti.drv.qmss');

/* Load the PA package */
var Pa = xdc.loadPackage('ti.drv.pa');

var System = xdc.useModule('xdc.runtime.System');
SysStd = xdc.useModule('xdc.runtime.SysStd');
System.SupportProxy = SysStd;
/* Create a default system heap using ti.bios.HeapMem. */
var heapMemParams1 = new HeapMem.Params;
heapMemParams1.size = 8192 * 30;
heapMemParams1.sectionName = "systemHeap";
Program.global.heap0 = HeapMem.create(heapMemParams1);

/* This is the default memory heap. */
Memory.defaultHeapInstance = Program.global.heap0;

Program.sectMap["systemHeap"] = Program.platform.stackMemory;

/* Enable BIOS Task Scheduler */
BIOS.taskEnabled = true;

/* Memory map */
Program.sectMap[".text"] = "L2SRAM";
Program.sectMap[".const"] = "L2SRAM";
Program.sectMap[".qmss"] = "MSMCSRAM";
Program.sectMap[".cppi"] = "MSMCSRAM";
Program.sectMap[".sharedDDR"] = "MSMCSRAM";
Program.sectMap[".cppiMemTX"] = "MSMCSRAM";
Program.sectMap[".cppiMemRX"] = "MSMCSRAM";

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

Please suggest some solution for this issue.

Regards

Anurag

  • Hi Anurag,

    there seem to still be a couple libraries that CCS needs to be directed to.  Have a look at this wiki, particularly the library part regarding adding library paths to the Linker File Search Path options:

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

    Please keep us informed.

    Best Regards,

    Lisa

  • Hello Lisa,

    Thanks for the reply.

    I have resolved this issue. All the global variables were defined in few *.c file, so I link those files by right clicking on my project and selecting files. 

    Same thing has been explained in the link you have provided although method is different but final result is same.

    After this code was compiled and linked successfully.

    Thanks

    Anurag

  • Hi Anurag,

    great, glad to hear you managed to get things figured out.

    Thanks for the update and all the best with develpment.

    Best Regards,

    Lisa