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.

assembler error

hi

i m working with tms320c6713 dsk and ccsv2 emulator (available with dsk).

during building process error has been generated 

error: 

"D:\temp\TI1392_4", ERROR!   at line 1267: [E0800] Offset too large
|| LDBU .D2T2 *+B14(_rake_test_DWork+8),B0 ; |142|

error in source : assembler aborted

so, how to solve this?
plz help me
  • Nikhil,

    CCS 2.x is very old. With the on-board emulator of the DSK 6713, you can use CCSv5 for free, no license fee. Just wanted you to know, in case you would like to upgrade to something that is supported and that has more than a handful of people who have used it.

    Break down the error message. It says an offset is too large. Look up the LDBU instruction in the CPU & Instruction Reference Guide and find out what the limitations are on offsets for that instruction. Then look at your code and see how the symbol rake_test_DWork could be related to a large offset, and even whether adding 8 would make it worse.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

  • thnks for reply

    i have studied LDBU from Reference Guide. it has 15-bit offset.

    one of line of my code is like follow

    #pragma DATA_ALIGN (rake_test_DWork , 8)

    with align 8 bytes.

    i changed to minimum 

    #pragma DATA_ALIGN (rake_test_DWork , 1)  

    1 bytes instead of 8.

    problem is:  error: offset too large

                                      LDBU .D2T2*+B14(_rake_test_DWork+8),B0;   I142I

    here 1byte(8 bit)+ 8 =16 bit happen and offset is 15- bit only 

    so, how to solve this problem

  • Nikhil,

    Why did you change the alignment to 1?

    Which value in the LDBU instruction line do you think is the offset value that is being reported as too large? What is that value in hexidecimal?

    Regards,
    RandyP

  • i refer this "ucst15" which has 15 bits

    thnks

  • Nikhil,

    That was not my question. My question was in reference to the LDBU instruction line that you referenced with the error message:

    nikhil patel said:
    LDBU .D2T2*+B14(_rake_test_DWork+8),B0;   I142I

    What is the hexadecimal value of rake_test_DWork? This is what I was asking, but I wanted you to understand first what part of the instruction above was the offset part.

    What is the size of the .bss section of memory?

    What is the difference between rake_test_DWork and the start of the .bss section?

    nikhil patel said:
    #pragma DATA_ALIGN (rake_test_DWork , 8)

    Put this back to 8-byte alignment, if that is what your application requires. This has no relationship to the assembler error message.

    nikhil patel said:
    here 1byte(8 bit)+ 8 =16 bit happen

    This equation has no meaning. The three different numbers are in different units. You are adding an addressing alignment value to a physical constant and equating that to the width of an addressing offset.

    If you can answer my questions above, then you may find your solution. Please post your answers to my three questions and any new thoughts you may have on a solution.

    Regards,
    RandyP