Jump to content
Forum sending old emails Read more... ×
doragasu

Toolchain setup under GNU/Linux (including Eclipse)

Recommended Posts

Okay, I guess I'm close to the solution. 

 

make all 
Building target: proba.elf
Invoking: Cross GCC Linker
arm-none-eabi-gcc -L/home/erbal/DEV/driverlib/gcc-cm4f -Wl,--static,--gc-sections,-T../LM4F.ld -mthumb -mcpu=cortex-m4 -o "proba.elf"  ./interrupts.o ./startup_gcc.o   -ldriver-cm4f
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../../arm-none-eabi/bin/ld: cannot open linker script file ../LM4F.ld: No such file or directory
makefile:29: recipe for target 'proba.elf' failed
collect2: error: ld returned 1 exit status
make: *** [proba.elf] Error 1

Somehow the eclipse doesn't find the LM4F.ld file. 

Edit.: I had to rename the file, from the sample project "interrupt.ld" to LM4F.ld. :)

Share this post


Link to post
Share on other sites

Hey Guys!

Finally, I had a short time to set everything up, and use eclipse to code. I still have a tiny problem, I can flash in terminal, but if I try to flash from eclipse I get this error: 

fopen: No such file or directory
Found ICDI device with serial: 0E1001ED

 

 

edit: SOLVED: the .bin was generated to the wrong folder

Share this post


Link to post
Share on other sites
I have successfully configured a Linux/Ubuntu/Eclipse/openocd development environment for the TIVA. I pretty much followed Kernel Hacks and made necessary changes to incorporate the advances in tools.
 
Question: Can I develop C++ software based on the above configuration? If so what are the necessary required changes.
 
Base on the above I created a Eclipse C++ project, uploaded the blinky files and tried to compile and I got the following linker error for g++ linker. 
 
Invoking: Cross GCC Compiler
arm-none-eabi-gcc -DPART_TM4C1233H6PM -D ARM_MATH_CM4 -DTARGET_IS_BLIZZARD_RA1 -I/home/userid/SW-TM4C-2.1.0.12573 -O0 -g3 -Wall -c -fmessage-length=0 -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -MMD -MP -MF"startup_gcc.d" -MT"startup_gcc.d" -o "startup_gcc.o" "../startup_gcc.c"
../startup_gcc.c: In function 'ResetISR':
../startup_gcc.c:245:26: warning: unused variable 'pui32Dest' [-Wunused-variable]
     uint32_t *pui32Src, *pui32Dest;
                          ^
../startup_gcc.c:245:15: warning: variable 'pui32Src' set but not used [-Wunused-but-set-variable]
     uint32_t *pui32Src, *pui32Dest;
               ^
Finished building: ../startup_gcc.c
 
Building target: Tiva_Project01.elf
Invoking: Cross G++ Linker
arm-none-eabi-g++ -L/home/userid/SW-TM4C-2.1.0.12573/driverlib/gcc -o "Tiva_Project01.elf"  ./main.o ./startup_gcc.o   -ldriver
/home/userid/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 00008018
./startup_gcc.o: In function `zero_loop':
startup_gcc.c:(.text.ResetISR+0x44): undefined reference to `_bss'
startup_gcc.c:(.text.ResetISR+0x48): undefined reference to `_ebss'
collect2: error: ld returned 1 exit status
make: *** [Tiva_Project01.elf] Error 1

Is this possible? If not what are the required changes? Can someone point to blog, tutorial or any other source that might help me in this endeavor. I have done a few google searches, but have been able to find anything worthwhile yet. 

 

Thank you in advance.

 

Share this post


Link to post
Share on other sites

bss/ebss errors "smells of" missing linker file definitions

 

 

 

Maybe try one of the energia linkerfiles (they seem to have bss/ebss)

 

https://github.com/energia/Energia/tree/master/hardware/lm4f/cores/lm4f

 

https://github.com/energia/Energia/blob/master/hardware/lm4f/cores/lm4f/lm4fcpp_blizzard.ld

https://github.com/energia/Energia/blob/master/hardware/lm4f/cores/lm4f/lm4fcpp_snowflake.ld

 

 

Ohh and i'd recommend to drop the Codesourcery compiler , and get the arm-gcc compiler from launchpad.

 

https://launchpad.net/gcc-arm-embedded

 

 

/Bingo

Share this post


Link to post
Share on other sites

Second on using Energia's linker scripts. Energia relies on C++. Also don't miss Energia's startup_gcc.c file, it shows the code for running the ctors (C++ constructors) on RESET (along with setting the stack based on the ldscript).

Share this post


Link to post
Share on other sites

Btw ... have never tried Energia , but have just build it from github (Linux Mint 17 / Ubuntu 14.04).

A 1.2GB "clone"   :o  , but very fast build of whatever has to been build , certainly not the compilers (only took a few minutes)

 

It took me a few minutes to find the "executables" , that's placed in : Energia/build/linux/work

 

I didn't want to use "ant run" every time i wanted to start energia.

Share this post


Link to post
Share on other sites

Hi guys, my first post in this forum.

I just finished an installation guide for gcc-arm-embedded toolchain (arm-none-eabi) + lm4flash + openocd with tivaware libs in Ubuntu 14.04 amd64; and the eclipse setup needed to program/compile/debug the tiva Launchpad EK-TM4C123GXL.

There are some parts in spanish, but all the commands and eclipse instructions are in english.

Hope you find it useful, and if doesn't work please let me know (here or in my blog) to make the corrections needed ;) .

Cheers,

Share this post


Link to post
Share on other sites

Hi,

Just read your blog and noticed you used gnuarmeclise site only for info, not installing, not taking any benefit of this package: templates for micros,   newlib use, managed make, detailed settings, bin file generation for Tiva, so on.

Also, useful for users is the EmbeddedRegisterView package, allow to see content of peripheral registers by names, not searching in memory vies by addresses.

Share this post


Link to post
Share on other sites

Hello. After coming back to the Tiva after a few months, I'm not able to get the toolchain running again. I keep getting the error

make: arm-none-eabi-gcc: Command not found
make: arm-none-eabi-gcc: Command not found
make: arm-none-eabi-gcc: Command not found
  CC    blinky.c
make: arm-none-eabi-gcc: Command not found
make: *** [gcc/blinky.o] Error 127
 

This is after trying to install several versions of the cross-complier and following the instructions here. I know its probably something stupid, but I don't see what I'm doing differently from after reinstalling my os. I'm running PinguyOS now.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×