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: C ".resetVecs"

Other Parts Discussed in Thread: LM3S6965, SYSBIOS

Hello Support:

I have a Stellaris LM3S6965 Eval Board.

I created a new project and essentially copied & pasted the "Timers" project into it.  Simple stuff.

I receive this error message.

<Linking>

"./configPkg/linker.cmd", line 203: error: placement fails for object ".resetVecs", size 0x3c (page 0).  Available ranges:

   FLASH        size: 0x40000      unused: 0x3ff10      max hole: 0x3ff10  

error: errors encountered during linking; "STMain.out" not built

 

The following is the memory map.  I tried to get everything updated with regards to patches; but, there is a failure on one of the updates.

******************************************************************************

                  TMS470 Linker PC v4.9.0                     

******************************************************************************

>> Linked Thu Dec 27 16:03:30 2012

OUTPUT FILE NAME:   <STMain.out>

ENTRY POINT SYMBOL: "_c_int00"  address: 00004b31

MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill

---------------------- -------- --------- -------- -------- ---- --------

  FLASH                 00000000   00040000  00007b9f  00038461  R  X

  SRAM                  20000000   00010000  00004550  0000bab0  RW X

 

SEGMENT ALLOCATION MAP

run origin  load origin   length   init length attrs members

----------  ----------- ---------- ----------- ----- -------

00000000    00000000    0000003c   0000003c    r--

  00000000    00000000    0000003c   0000003c    r-- .resetVecs

00000000    00000000    00007ba8   00007ba8    r-x

  00000000    00000000    000000f0   000000f0    r-- .intvecs

  000000f0    000000f0    00005cce   00005cce    r-x .text

  00005dc0    00005dc0    00001ba1   00001ba1    r-- .const

  00007968    00007968    00000240   00000240    r-- .cinit

20000000    20000000    00003f44   00000140    rw-

  20000000    20000000    00000140   00000140    rw- .vecs

  20000140    20000140    00002000   00000000    rw- .stack

  20002140    20002140    00001e04   00000000    rw- .bss

20003f44    20003f44    0000060c   0000060c    rw-

  20003f44    20003f44    0000060c   0000060c    rw- .data

I've tried to follow the other folks that had similar issues and could not translater their "fixes" into something that was menaingful for me.

What else do you need in order to help diagnose the issue?

Thanks

Rick

 

 

 

 

 

  • My guess is that .resetVecs must go at a certain location, but .intvecs is already there.  You probably need to remove one or the other from your project; I don't know which.

  • Hi Archaeologist:

    Thank you for your reply.  Sorry for the delay.  Here is what I found.

    In linker.cmd, I find the following:

    /* Content from ti.sysbios.family.arm.m3 (ti/sysbios/family/arm/m3/linkcmd.xdt): */

    --retain

    "*(.resetVecs)"

    ...AND....

    SECTIONS

    {    

    .bootVecs:  type = DSECT    

    .vecs: load > 0x20000000    

    .resetVecs: load > 0x0

     xdc.meta: type = COPY

    }

    .............

    In lm3s6965.cmd file I find the following:

    SECTIONS

    {

    .intvecs:   > 0x00000000

    .text   :   > FLASH

    .const :   > FLASH

    .cinit :   > FLASH

    .pinit :   > FLASH

      .vtable : > 0x20000000

      .data   :   > SRAM

      .bss    :   > SRAM

      .sysmem :   > SRAM

      .stack :   > SRAM

    }

     

    I have some thoughts.

    I was expecting to see these file defined in the SAME FILE.  They are not.  At least, not that I can see.

    At the top of the linker.cmd, it states something about NOT modifying the file. 

    Is this file dynamic and get rebuilt as the project is modified?

    If true, then the linker.cmd file can not be modified keeping the .resetVecs in place.  Correct?

    Based on this, it would appear that I would simply remove .intVecs from lm2s6965.cmd file.  Correct?

    Does this seem reasonable?

    Also, can you shed some light on these Variables?

    Thanks

    Rick

     

     

     

  • Note: you'll have the very same problem with .vecs vs. .vtable.  I presume one of these linker command files  is included because you created a new project, and the other came from the project that you copied in.  Clearly both want to be in charge of allocating memory; most likely, you should only be using one in your project.  I can't say for sure which one, because I don't know much about these particular linker command files.  Most likely, you'd be better off asking this in the Stellaris or BIOS forums.

  • Hi Archaeologist:

    Thank you for your reply! 

    I've got a "better" handle on what is going on; but, I do not know how to fix it ... yet.

    I'll take this over to the BIOS forum.

    Rick