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.

rtsv7M3_T_le_eabi.lib using command line



Hi All,

 

     I am using LM3S9B96 development kit. I want to generate code using the command line using the following options

Compiler options:

--gcc --define=PART_LM3S9B96 --define=TARGET_IS_TEMPEST_RB1 -mv=7M3 --abi=eabi --code_state=16

 

Linker Options:

--run_linker  -c  -o <TARGET>  <OBJECTS>  --library=rtsv7M3_T_le_eabi.lib

My question is regarding  --library=rtsv7M3_T_le_eabi.lib

1) How do I tell the linker to use rtsv7M3_T_le_eabi.lib because it is asking for rtsv7M3_T_be_eabi.lib and I am gettting the following output

 

<Linking>
error: cannot find file "rtsv7M3_T_be_eabi.lib"
warning: automatic RTS selection:  resolving index library "libc.a" to
   "F:\ASL0629\trunk\ip_amp\source\lib\rtsv7M3_T_be_eabi.lib", but
   "F:\ASL0629\trunk\ip_amp\source\lib\rtsv7M3_T_be_eabi.lib" was not found
warning: automatic RTS selection:  attempt to automatically link in index
   library "libc.a" failed; file not found
error: no input section is linked in
warning: entry-point symbol "_c_int00" undefined
warning: no suitable entry-point found; setting to 0

 

2) Also which eabi files (rtsv4_A_be_tiarm9.lib, rtsv7M3_T_be_eabi.lib, rtsv7M3_T_be_eabi.lib...) should we use for lm3s9B96?

3) Can anyone please provide me some link which explains which one should we use?

               Thanks

              Mohsin

 

  • I've moved this thread to this forum.  They should be able to answer your questions about the compiler tools.

    --Bobby

  • Mohsin,

    In recent versions of the codegen tools, the linker automatically picks the appropriate runtime library based on the options it sees used for the build.

    If the code is compiled for -mv7M3, --code_state=16, -me (for little endian), and --abi=eabi, the RTS lib rtsv7M3_T_le_eabi.lib will be picked up. The library naming convention is described in the ARM Compiler Users Guide, Section 7.4.3

    In your case, the automatic RST selection is trying to pick up rtsv7M3_T_be_eabi.lib because your compile options do not have -me (little endian), so it is taking the big endian version. For Stellaris devices, you should compile for little endian, and use rtsv7M3_T_le_eabi.lib. The Stellarisware example projects for CCS are a good place to start for identifying the appropriate build options.