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.

AWR1642: mmWave Radar on AWR164: linker error: "program will not fit into available memory."

Part Number: AWR1642

Dear Officer,

We are developing the mmWave radar based on AWR642. Currently we try to development some new algorithm and build as part of mmWave alg lib, but face the memory size issue.

Basically we put all the alg source code into:

C:\ti\mmwave_sdk_01_02_00_05\packages\ti\alg\mmwavelib\src

When calling our alg API from application, we got this error:

<Linking>

"../cmd/dss_mmw_linker.cmd", line 40: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".fastCode" size 0x13fa0 . Available memory ranges:
L1PSRAM size: 0x4000 unused: 0x4000 max hole: 0x4000

I got questions:

1. When the agl API is not called from application, we don't have the above issue,  So this agl code/lib is only loaded when staring to be called by the API? (where is it loaded to when calling?)

2. what is the exact meaning of "program will not fit into available memory.'? i.e. what is the "available memory" size I can use? and how to verify if my code is over this "available memory" size already?

2. Do we have way to increase the .fastCode size setting in linker file to avoid the above issue? What is maximum memory size can be supported in .fastCode?

3. Any other suggestion to avoid this issue?

Thanks and best regards

He Wei

  • Hello He Wei,

    A1: When you call the Alg API then the alg lib will get included in your image(DSP app image) and that adds to the L1 memory and it exceeds the memory you have set for L1 in the .cmd file. If you do not call the API then most likely you are not including that lib . Have you tried adjusting the memory allocations in your .cmd file.

    A2: It means that the code size increases beyond the allocated memory. In your case here L1 memory allocations.
    Please check your "dss_mmw_linker.cmd" file. You can modify the L1 allocations .

    A3: You should be able to increase the .fastcode size. But will check and confirm again.


    Thanks,
    Raghu
  • Dear Raghu,

    Thanks for the reply:

    1. To increase L1 code size, you means L1PSRAM shall be increased? i.e. L1P_CACHE_SIZE shall be decreased? (L1PSRAM+L1P_CACHE_SIZE =32K)

    2. Do we have way to know how much memory is exceeded? (or how much memory my new alg. lib required?) so we have the target to reduce/optimization our alg. lib size.

    3. We only generated one alg. lib: libmmwavealg_xwr16xx.ae674, I notice as long as my alg. API is not being called, there is no memory issue.  So it means even it is one lib file, system will treat it as few independent "lib" and loaded to L1 one by one during compiling time based on the API calling but not the entire libmmwavealg_xwr16xx.ae674?

    4. the grammar for .fastCode is "load=L3SRAM PAGE 0, run=L1PSRAM PAGE 0, table(_MmwDemo_fastCode_L1PSRAM_copy_table, compression=off)", Can you explain a bit about its meaning? ie. what is load=L2SRAM, and run=L1PSRAM..?

    5. Let me know later if can find a way to increase .fastCode.

    Thanks and best regards

    He Wei

     

  • Hello He Wei,

    I am not sure you have been able to resolve this issue.
    I would suggest you to use C6000 compiler userguide for your refernce.
    www.ti.com/.../sprui04a.pdf

    Thanks,
    Raghu