Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

Absolute listing generated by abs2000 & cl2000

i program TMS320F280xx code with assembly language, and try to get the absolute listing using abs200 & cl2000 -v28 --absolute listing.

i use .label directive to create some load addresses in order to move partial code to SARAM. But, these load addresses seems to be wrong in the absolute listing, and they are always 0. EX:

.label load_addr1

<code>

MOVL XAR0, #load_addr1

in the above example, the load address of (load_addr1) is 0x3f6062, its resultant op code must be 8D3F 6062, but i always get 8D00 0000.

i don't know why!

  • Another approach to consider ... Use the load_start() operator in the linker command file to assign the load address of a section to a symbol.  Search on "load_start" in the C2000 Assembly tools manual.

    Thanks and regards,

    -George

  • Dear George,

    Thanks for your comment very much, it works well now. But i have another new problem with using load_size().

    I've change .label method to linker command load_start(), it works well. Then, I also used load_size() to determine the section size that is needed to be moved. The corresponding symbol's address in map file shows the correct section size number, but it always assemble 0 to resultant list file, ex:

    MOV  AL,#SECT_SIZE

    it always assembles wrong op code. In this example, SECT_SIZE is 1B, I think that it must assemble op code 9A1B, but it shows me 28A9 0000. This result correspond to MOV AL,#0.

    I've tried many different ways to use load_size(), and always get the same wrong.

  • Maybe you should use MOVL instead of MOV?  I'm not sure on that.  

    -George

  • I've tried this, but got the same error...

  • I've tried TI XDS100v1 to emulate, and then observed the result in memory location, the result is right!! ( use load_size() ) 

    It also seems some problem in abs2000 or cl2000 -v28 --absolute_listing.

    Another way to do the right result, i use load_start() and load_end(), then make sym = load_end() - load_start() in .cmd file, this makes both emulation and the absolute listing be right!

    maybe wrong setting or other...?