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.

Some Linking Warning of HeapMem Setting

Hi,

   I managed to get an xDM verified on C674x DSP in DM8168.  I could successfully connect to the Platform via CCS and run a testing program.  Since the non-volatile memory such as NAND is not available now, I decide to load my Test Vector to the RAM manually, by using the XDS100v2 Emulator.  After processing, I could also dump the data from RAM to file in my computer.  Thus, I modified the cfg file in my project, creating 2 Heaps @0x9000_0000 and 0x9800_0000 as below:

Program.sectMap[".InHeapMap"] = new Program.SectionSpec();
Program.sectMap[".InHeapMap"].loadAddress = 0x90000000;
Program.sectMap[".InHeapMap"].runAddress = 0x90000000;
Program.sectMap[".OutHeapMap"] = new Program.SectionSpec();
Program.sectMap[".OutHeapMap"].loadAddress = 0x98000000;
Program.sectMap[".OutHeapMap"].runAddress = 0x98000000;


Memory.defaultHeapSize = 4096;
var heapMem0Params = new HeapMem.Params();
heapMem0Params.instance.name = "InHeap";
heapMem0Params.size = 120800;
heapMem0Params.buf = null;
heapMem0Params.sectionName = ".InHeapMap";
Program.global.InHeap = HeapMem.create(heapMem0Params);
var heapMem1Params = new HeapMem.Params();
heapMem1Params.instance.name = "OutHeap";
heapMem1Params.size = 30200;
heapMem1Params.sectionName = ".OutHeapMap";
heapMem1Params.buf = null;
Program.global.OutHeap = HeapMem.create(heapMem1Params);

   Actually, it does run well, as I could load, dump and get my algorithm tested in the next procedure.  However, when I tried to rebuild the project, I find there are some warning issues cast on the console:

 

<Linking>
"./configPkg/linker.cmd", line 157: warning #10083-D: LOAD placement ignored for ".InHeapMap": object is uninitialized
"./configPkg/linker.cmd", line 158: warning #10083-D: LOAD placement ignored for ".OutHeapMap": object is uninitialized
"./configPkg/linker.cmd", line 157: warning #10096-D: specified address lies outside memory map
'Finished building target: TestG722Enc.out'

   I have no idea with them.  Since I don't know much about the cfg file and the C6x compiler, I could only post the issue in this forum.  Could you help me with these issues?

Naroah

Aug/17/2013

Ps.  I have raised the same problem in BIOS forum.  Here is the link:

http://e2e.ti.com/support/embedded/bios/f/355/p/284060/993722.aspx#993722


  • Haoran Li1 said:
    "./configPkg/linker.cmd", line 157: warning #10083-D: LOAD placement ignored for ".InHeapMap": object is uninitialized
    "./configPkg/linker.cmd", line 158: warning #10083-D: LOAD placement ignored for ".OutHeapMap": object is uninitialized

    Please take a look at section 7.5.5.2 of the C6000 Assembly Language Tools Users Guide, that explains that uninitialized sections (such as the one you have above) are not loaded to the target, so their only significant address is the run address. Since you have specified both load and run addresses, the warning coming from the linker is expected. You can use the suggestions in the Users Guide (which is similar to what was suggested in the BIOS forum) to get rid of the warning.

    Haoran Li1 said:
    "./configPkg/linker.cmd", line 157: warning #10096-D: specified address lies outside memory map

    I believe this warning is appearing because the address 0x90000000 lies outside the memory map as defined by the BIOS platform. You can double check this in the BIOS forum but in order to "add" this memory region you can add an additional custom linker command file to your project. This linker command file would contain a MEMORY directive defining the region starting at 0x90000000.