Olimex AT91SAM7S64 & JTAG-USB-OCD-TINY

Hey, I’ve been searching the forums and the internet for some advice but ended with nothing…There goes 2 days…Anyways, I thought I would register and post this thread, in case someone is also in the same situation.

Essentially, in a nutshell…

I bought:

Development Board Atmel SAM7-64 : http://www.sparkfun.com/products/475

JTAG USB OCD Tiny - Programmer/Debugger for ARM processors : http://www.sparkfun.com/products/8278

I installed OpenOCD 0.4.0 and confirmed installation with checking the version via cmd (openocd --version).

Plugged in the JTAG USB OCD Tiny, installed the drivers that were in the folder location of the OpenOCD installation.

Installed yagarto-tools-20100703-setup.exe to provide ‘make’. Tested with cmd (make --version) and received the result:

GNU Make 3.81

…Program built for i686-pc-mingw32

Downloaded and extracted Eclipse for C/C++ Developers (Indigo Service Release 2). Downloaded the CDT package and Zylin Embedded CDT.

I have downloaded a zip file containing a few example programs and try running them but were unable to even build them.

Firstly, ‘make’ was giving me errors and noticed that ‘arm-elf-ld’ was being called, when it should be ‘arm-none-eabi-ld’; along with a few other similar changes.

Once the changes were made, I was able to build the project until a certain point. The follow error was received…the error existed for multiple files.

arm-none-eabi-ld: error: Source object libc.a(strlen.o) has EABI version 0, but target main.out has EABI version 5
arm-none-eabi-ld: failed to merge target specific data of file libc.a(strlen.o)

arm-none-eabi-ld: error: Source object xxxx.a(yyyyy.o) has EABI version 0, but target zzzzz.out has EABI version 5

arm-none-eabi-ld: failed to merge target specific data of file xxxx.a(yyyyy.o)

Can please someone help me out? Point me into the correct direction…just to get something programmed on the board - a simple led blinking would be great!

Cheers,

Joe

Well, speaking as someone who set Eclipse aside “just until I understand the basic tools enough to make it work” 3 years ago…

a) You have to figure out where the linker is finding the object files such as strlen.o. I know that when I ran an installer from Olimex a few years ago, it installed a complete(?) yagarto toolchain in one directory, and a complete(?) codeSourcery toolchain in another, as well as Eclipse. It is possible that you do have object files on your system somewhere that were created by the version of arm-none-eabi-cc and ld that you’re using, but that somehow in your struggles you have configured eclipse to look at one tool-chain for the tools, another for the include files.

It is conceivable that you don’t even have object files compatible with your version of arm-none-eabi-xxx. In that unlikely scenario, you’d have to either build your standard C library files from source, or just ditch the entire compiler suite and look for an easier way.

When I work in windows, I’ve been using the sourcery command line tools from Mentor (formerly CodeSourcery). It includes standard libraries that are compatible with the object files created from your source code. I’m sure Eclipse could be configured to work with it…

It is remotely possible that someone on the board can recommend a commercial tool available as a demo, or at a modest cost. It’s generally agreed that those are easier to get up and running than a free tool chain.

Good luck!

-Hugh (command line) Sutherland

Rowley CrossWorks supports that JTAG adapter, download the demo and try it. A personal license isn’t expensive.

You might be having gcc -mabi=apcs-gnu flag in your makefile. Remove it and linker shouldn’t complain about EABI versions.

apcs-gnu should be EABI version 0, is my guess, and version 4 is aapcs-linux flag. Or something.

Anyways, look for -mabi flag in makefile, remove it, try again.

Good luck.