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.

Error while linking the code in Code composer studio

Hi all

I am generating a C-code for a simulink model and i am running it on a eZdsp 28335 board. The code is getting generated fine (in ccsv3.3) till a sample time of 200micro sec. But if i keep

a sampling time of 100micro secs, the following error pops up during linking.

"run placement fails for object ".ebss", size 0x50d8 (page 1).  Available    ranges:    RAML0L3      size: 0x4000       unused: 0x3af4       max hole: 0x3af4 "

Can someone help me understanding what the problem is? and how i need to debug it!

 

  • That means you have run out of memory in the specified section

     

    Your program was trying to allocate a section of 0x50d8, but there was only 0x3af4 remaining (and apparently the size wasn't big enough in the first place as 0x4000).

     

    You will need to relocate the section to a different part of memory or reduce the memory usage of that section (unfortunately I personally don't know what the .ebss section holds)

  • Tim Wentz said:
    unfortunately I personally don't know what the .ebss section holds

    It is described in the C2000 Compiler Manual.  This section holds the far global and static data variables.  From a correctness point of view, it can be placed anywhere in data memory.

    Thanks and regards,

    -George

  • Tim and Georgem,

     

    Thanks for helping me in understanding the error. Can you please tell me how can i relocate the section to a different part of memory ? Any manual explaining the same will

    also help.

    Thanks and regards,

    Vijay

  • Hi

    I have tried relocating the section where "ebss" to the flash (previously it was on RAM)

    Now the CCS is "building" the code without any errors. But while flashing it, a new error is popping up. It says "data verification failed at...... address"!

    Can someone help me how to debug this ? I suppose, since i am writing the "ebss" part to the flash, this error s popping up.

  • Of course, data has to be in read/write RAM memory, not in Flash.

    Calculate the total size of sections that are supposed to be in RW RAM, compare with the amount of RW RAM you have. If the size exceeds RAM size then you have no option but to change your code. Perhaps Simulink creates some table that gets bigger as the sampling time decreases? Otherwise you have to shuffle the sections. For this assembly tools guide, linker chapter is your friend.

  • I apologize.  I said .ebss can be placed anywhere in memory, but that is imprecise.  The .ebss section can be placed anywhere in data memory with regards to the address range.  The .bss section, by contrast, must be placed within the first 64K.  But there is more to consider.  Both .ebss and .bss must be placed in memory that can be written at runtime, i.e. not flash.  Sorry for the confusion.

    Thanks and regards,

    -George

  • Thank you all.

    I found out that DATA cannot be written into flash and so i am using another location "ZONE7D" , which has a data length "0x00010000". Previosuly the same portion (.ebss) was

    written into "RAMLOL3" (data length:0x00004000). But i still face the same problem : The code is getting "built" without any errors in CCS, but the same memory error is popping up when flashing it.

    I have tried un cheking the "enable memory mapping" box in Options --> Memory of the CCS ( this was mentioned the CCS FAQ document).

    But the problem still persists.

    And regarding my code, yes i have two global variables (signals actually), whose size increases as the sample time decreases. My final application will have lot more signals of this kind. This is just a test program. If i am facing memory issue with only two variables, i doubt i can extend this.

    Is there a possibility of expanding the RAM of the eZdsp externally?

    Any inputs would be of great help.

    Regards

    Vijay Chand Ganti

  • The ZONE7 address space is for external memory, so unless it is there, you'll have those errors. Those errors mean that reading back data for verification failed. You can expand memory of this processors by attaching SRAM memories to pins XINTF.

    However the zone must be configured before using it. Mind to place only uninitialized sections in ZONE7. If you need to place initialized sections there you'll have to do some tricks to enable this zone before C environment gets initialized.