GNU ARM, Eclipse IDE Development for ARM7

I have completed a set of instructions for getting the Gnu Arm, Cygwin, Eclipse, CDT tools installed. I did this partly because Jim Lynch’s tutorial while very good was a little out of date. The web sites have changed since he did the tutorial.

http://www.uchobby.com/Projects/Install … vTools.htm

David


uC Hobby Microcontrollers for Hobbyist

www.uCHobby.com info@uchobby.com


Very nice job, David.

This explanation will be greatly appreciated by the more experienced users who really don’t need the hand-holding and voluminous detail that I put into my tutorials. You did a great job boiling it all down to the bare essentials.

Keep up the good work!

Jim Lynch

One other point, David.

Using the built-in Eclipse update facility to load CDT will give you the normal CDT module, not the Zylin-modified version.

Correct me if I’m wrong, but I believe that the Zylin version of CDT is still best for debugging remote targets.

Cheers,

Jim Lynch

I do not know enough to answer that. I am new to this tool set.

Where would I find out about this version of CDT? I could revise the tutorial to use this version if it’s the best choice.

David


uC Hobby Microcontrollers for Hobbyist

www.uCHobby.com info@uchobby.com


http://zylin.com/embeddedcdt.html

It adds an “Embedded debug launch”, which is required for the typical embedded debug scenarios.

Regards,

Dominic

I’m sure this is a dumb question…

The zylin web site says to delete the existing CDT and Zylin directories. What if you have not yet installed CDT?

Do you only need to unzip the files to the features and plugins to install it, even on a fresh Eclipse install?

I guess I can try this on a virtual PC. I would hate to mess up my current Eclipse environment.

I tried the instructions on my existing Eclipse install, deleting all the CDT stuff from features and plugins directories. Then extracting the two zip files to the Eclipse directory. When I ran Eclipse I got java.lang.NullPointerException at org.eclipse.cdt.ui.PreferenceConstants.getPreferenceStore(PreferenceConstants.java:382)

I then did a fresh install of eclipse, extracted the two zips to the eclipse directory and got the same exception when I run Eclipse.

I have eclipse 3.1.2 and the latest zylin embedded CDT.

What am I doing wrong?

The latest zylin embedded CDT Requires >= Eclipse 3.2 M5a as stated in the release notes.

I’m not sure what my problem was. I started over and followed your tutorial (Jeff) and it seems to work. I did not compile a project yet, will do that tomorrow.

I revised the install instructions on my site accordingly. I also added the steps for the OCDRemote JTAG Wiggler debugging stuff.


uC Hobby Microcontrollers for Hobbyist

www.uCHobby.com info@uchobby.com


OK, it’s all working now. The information on how to get the Zylin Embedded CDT is there if you look hard enough.

The instructions at www.uCHobby.com have been updated. http://www.uchobby.com/Projects/Install … vTools.htm are now

There are some differneces in the instalation if you want to use the latest set of the tools. You have to read the release notes very carefully to get this done. Hopefully the step by step instructions will make it easy for others.


uC Hobby Microcontrollers for Hobbyist

www.uCHobby.com info@uchobby.com


I thought I would let you know my findings with both Jim Lynch’s tutorial and WinARM.

I have had some problems and most of my problems can be traced back to two issues.

The first is that the makefile/ linker scripts shown in Jim Lynch’s tutorial are NOT suitable for a real project.

I had the following problems :-

  1. One of the problems is that the Stack sizes set up do not work when you switch interrupts on.

  2. The code to switch on the Interrupts is not their either,

You need something like this :-

static inline unsigned asm_get_cpsr(void)
{
  unsigned long retval;
  asm volatile (" mrs  %0, cpsr" : "=r" (retval) : /* no inputs */  );
  return retval;
}

static inline void asm_set_cpsr(unsigned val)
{
  asm volatile (" msr  cpsr, %0" : /* no outputs */ : "r" (val)  );
}

unsigned enableIRQ(void)
{
  unsigned _cpsr;

  _cpsr = asm_get_cpsr();
  asm_set_cpsr(_cpsr & ~IRQ_MASK);
  return _cpsr;
}
  1. I could not get any newlib stuff to link with the make file from Jim’s tutorial. I had to link using $(CC) and not $(LD). I do not know why at this stage but I thought I would pass this on.

  2. A lot of code is available for other compilers but they use different header files for the LPC chips which makes for lots of rework. I decided to rework the header files rather than the code, so my header file can do more than the standard Gnuarm ones.

I have found that it is not usually necessary to write a new makefile, processor header or linker scripts for each project. You can pretty much use the same ones for all projects.

It would be good in future to provide users with the above files is a state suitable for a real world project and this in my opinion would be the biggest improvement we could make to the “Eclipse/ WinARM” tool chain.

All the best.

Fordp, you are absolutely right.

However, the purpose of my tutorial was to show how to set up a software development system only. As such, I elected to eliminate interrupts and keep the sample project as simple as possible.

Obviously, I need to build on this and make a tutorial that goes into interrupt handling.

Cheers,

Jim Lynch

C’mon Ford, sometimes it helps to suck the other end …

In my real world projects it’s always been a huge effort to get a useable and consistent tool chain working so I can concentrate on my paid part of the job, which often involve’s

header files, interrupt routines, stack allocations.

Following Jim’s tutorial I was immediately aware just how much time his effort has

saved me and perhaps many others in getting the tools chain up and running.

The rest is just a matter of perspective.

Share and enjoy

P

polly:

Following Jim’s tutorial I was immediately aware just how much time his effort has

saved me and perhaps many others in getting the tools chain up and running.

The rest is just a matter of perspective.

Share and enjoy

P

I agree Jim’s Tutorial is great. I do not think I would have been able to get where I am without it.

I was simply making suggestions for modest changes to the tutotrial that would have saved me days and I am pretty sure help others.

My favorite motto is “Improve or die”, which is a paraphrase of somebody else’s wisdom.

I can feedback my improvements to Jim for his next version.

I will try and get it ready for when Eclipse 3.2 is released!