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.

Compiler/TDA2PXEVM: TDA2PXEVM

Part Number: TDA2PXEVM

Tool/software: TI C/C++ Compiler

Hi All,

I have 15-20 VCOP kernel functions.

while building an executable i encountered a linker error saying 

program will not fit into available memory. run placement with alignment
fails for section ".vcop_parameter_block" size 0x5e4 page 1. Available
memory ranges:
WMEM size: 0x7fe4 unused: 0x3e4 max hole: 0x3e
 
WMEM_SIZE was 0x7C00
After reducing a WMEM_SIZE to 0x7A00 (30.5KB ) in linker command file , the linker error is not present.
But I have an image processing based application that will use almost 31KB of WMEM memory.
i am really confused in proceeding with this.
after generating map file , I saw that vcop_parameter_block was allocated in WMEM memory.
My question is can this vcop_parameter_block can be relocated to some other region and whole 32KB of WMEM can be used??
if so will it cause any performance degradation ?? 
if it is not relocatable , then how to proceed with these kind of situation ??
Please let me know.
Thanks in advance,
Likhith
  • Hi,

    Please provide SDK version used, example application and any changes you made on top of SDK software.

    Regards

    Vineet

  • Hi Vineet,

    I have not made any changes to SDK. 

    I am using arp32 compiler 1.0.7, and I'm using a CMake to manage build process.

    Regards,

    Likhith.

  • HI Likhith,

         VCOP cannot access any of the external memories also it doesnt have access to DMEM memory. It can only access WBUF and IBUFA/B. So we have to keep the parameter block memory in one of these memories.  Now given that IBUF will be typically used in ping pong fashion its not very advisable to keep the parameter blocks in these buffers ( although it can be done and you will have to maintain two copies in IBUF A and B). So the most suitable place to store the parameter block is WBUF. Can you try reducing the WBUF requirement, parameter block memories are typically not very big?


    Regards,

    Anshu

  • Hi Anshu,

    Thanks for answering.

    I will reduce VCOP WMEM usage and proceed.