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.

sprintf on ccs4

I have used sprintf on ccs 4 to print float variable to ascii string.

It is returning folllowing error

"Placement failed for object ".text", size 0x1c8f..

please help

  • Which device are you using?

    The error sounds like the linker reporting that the code is too large to fit into the available memory. 

  • I am using tms32f28335 delfino processor on experimenter kit.

    I have gone through the tips given on "using printf" on e2e site

    I have a float data which i want to send to LCD display. so need to convert to string and then write to LCD

    what could be any alternative

  • satyajit apte said:
    what could be any alternative



    Depending on how your linker command file is allocating your sections, you could try modifying it such that your memory regions are in larger chunks (if that is possible).
    For example, the default 28335_RAM_lnk.cmd has the following:

    MEMORY
    {
    PAGE 0 :
       
       RAML0      : origin = 0x008000, length = 0x001000
       RAML1      : origin = 0x009000, length = 0x001000
       RAML2      : origin = 0x00A000, length = 0x001000
       RAML3      : origin = 0x00B000, length = 0x001000

    and then the allocation for .text (code) is done as:

    SECTIONS
    {

       .text            : > RAML1,     PAGE = 0

    You could modify this such that the RAML0 through RAML3 memory ranges are combined, so:

    MEMORY
    {
    PAGE 0 :
       
        RAML0      : origin = 0x008000, length = 0x004000
     

    and then allocate .text and other sections that were previously allocated to those RAMLx regions all to RAML0:

    SECTIONS
    {

       .text            : > RAML0,     PAGE = 0

    This is highly dependent on whether you are using a RAM or Flash version of the linker command file and how it is allocating all the different sections but depending on your application and size of sections you may be able to fit it by making modifications to the linker command file.

    More details on the MEMORY and SECTIONS directives and their usage can be found in the C28x Assembly Language Tools Users Guide.