• Resolved

Compiler/TMS320C6747: declaring big matrix/array problem

Part Number: TMS320C6747

Tool/software: TI C/C++ Compiler

Hello,

I have several big matrices or arrays but i can not declare them. For example, when i only define unsigned short array[2048], debug will be broken as "cant find a source file a /tmp/TI_MKLOB429RQi/SRC/exit.c". I am using ccs 5.5.

What is the problem ?

  • Hi,

    Which SDK is this?

    Best Regards,
    Yordan

     


     Please make sure you read the forum guidelines first.

  • In reply to Yordan Kovachev:

    CCS version:5.5.0.00077
    I m debugging dsp card with 256 MBit SDRAM
  • In reply to seda Tankiz:

    Ok, so this is a bare metal code.
    Have a look at these threads:
    e2e.ti.com/.../340008
    e2e.ti.com/.../247877
    Hope this helps.

    Best Regards,
    Yordan

     


     Please make sure you read the forum guidelines first.

  • In reply to Yordan Kovachev:

    It is not the case i think. I have memory problem. When i create unsingned short array[1024], the debugging will be kept going. Debug process will not terminate.
  • In reply to seda Tankiz:

    In such a case you'd better provide some info on your memory configuration.

  • In reply to rrlagic:

    in auto generated linker.cmd, memory configuration is as follows:
    -args 0x0
    -heap 0x1000000
    -stack 0x1000000

    MEMORY
    {
    IROM (RX) : org = 0x11700000, len = 0x100000
    IRAM (RWX) : org = 0x11800000, len = 0x40000
    L3_CBA_RAM (RWX) : org = 0x80000000, len = 0x20000
    SDRAM : org = 0xc0000000, len = 0x10000000
    }

    ---
    as i mentioned before the dsp card has 256 MBit SDRAM. Even that specification, when i set stack size as 0x5000000 debug will not work. After i decrease as 1000000 then it will work.
  • In reply to seda Tankiz:

    Hi!
    At the first glance, all memories look big enough to handle 2048 shorts. Although I believe your issue is memory related, I can't see it with info provided. Perhaps, you have some minimal testcase to share, so forum folks could look through.
  • In reply to seda Tankiz:

    Assuming your SDRAM is 256Mbit (as in bits), that is 32MiB or 0x02000000 bytes. The linker command would then be:
    SDRAM : org = 0xc0000000, len = 0x02000000
    Defining a stack of 0x05000000 is bigger than available memory. A stack of 0x01000000 is half of available memory. I assume you need a huge stack to a declare your array as a local variable. The linker will not be able catch allocaton problems. I would suggest declaring your array as a global variable to allow the linker to check your memory allocation.
  • Please note that if you add a compiler option -m. When the binary compiles, it will create a map file that indicates, exactly how much portion of each memory section is used and unused. You can modify the placement of code, data sections and stack size based on what is available in each section.

    If you want recommendation, please generate a map file and post it here so we can proivde guidance.

    --------------------------------------------------------------------------------------------------------------------------------------
    Please click the
    This resolved my issue button on this post if the responses on this E2E thread answers your question.
    --------------------------------------------------------------------------------------------------------------------------------------

     

  • In reply to Rahul Prabhu:

    DSP.txtI think, you mentioned file is .map file as follows: