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.

TMS320F280049: Text start address and hex memory allocation

Part Number: TMS320F280049
Other Parts Discussed in Thread: UNIFLASH

Hi, I have 2 questions about F280049 project ,is07_speed_control_coff.

1. I find that the text address start with 0X00080004,not 0x00080002 as cmd file shows.

  Flash CMD file:    FLASHB0_SA        : origin = 0x080002, length = 0x00FFFE        /* on-chip Flash */

below is the map file.

page  address   name                             
----  -------   ----                             
0     00080004  .text   

The data in 0x80002 and 0x80003 are filled with 0xFFFF.

2. I created the hex file.But there a new line while the address is continuous.

For example:

:020000040008F2
:040000000048351669
:20000400B2BDAABDA2BDE20304BDE20305BDE20306BDE20307BDFE12761F03248D40C9C0E7

....

:20356400D4000006520A6302D4000006E20300C400062920FF6900062BF42BFC0006762585
:0E3574006F0076256F001EC400069A01000647
:20357C00761BFFF00005ABBDAABDA2BDA8BDA0BDC2BDC3BDE20000BDE20300BDE20301BDD7

The two red lines shows the address is just continuous, why for the up line not goes like :203574................

Is the hex file has the byte limit of every address section?

Regards

Arrow

  • Hi Arrow,


    1. Since ECC is generated for every 64-bits aligned on 64-bit boundary, we suggest aligning sections on 64-bit boundary. Hence, you see that the text is aligned to 0x80004.  However, it would be good to align on 128-bit boundary since many 3rd party flash tools ( and C2000 flash kernels) are designed to program 128-bits at-a-time for performance advantage.  Hence, it is better to align the sections on 128-bit boundary using ALIGN(8) as shown below.

    .text  : >>FLASH_BANK0_SEC2 | FLASH_BANK0_SEC3,   PAGE = 0, ALIGN(8)
    Note: CCS flash plugin and Uniflash can program sections mapped at any alignment.
    2. Regarding this query, I will loop in the compiler experts.
    Regards,
    Veena
  • But there a new line while the address is continuous.

    The hex utility works one section at a time.  Whenever one section ends and the next begins, a new output line begins.  That occurs without regard for whether the address of this new line is continuous with the previous line.  This is not a violation of the specification for any of the output formats supported by the hex utility.

    Thanks and regards,

    -George

  • Thanks. 

    I got it.

  • Thanks,George.

    That's clear for me now, but where can i see the size definition of one section?

    Regards

    Arrow

  • One place to look is in the linker map file.  Here are a few lines from a C28x linker map file ...

    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .text      0    00000040    00000abc

    The length of this .text section is 0xabc words.

    Thanks and regards,

    -George