New Tutorial: ARM Development with Eclipse

After several hours of downloading. I supposed got the file but it said it was corrupt :frowning:

I will try again over the weekend.

To be honest, I “uploaded” the 198 mb file at midnight last night and didn’t test the reverse direction. I’ll check it also on Saturday morning and fix if necessary. Sorry if there is a problem.

I did contact Zylin and Oyvind Harboe is agreeable to archiving certain older versions, but he is going to be unavailable until Easter.

I tried it again and this time it worked !

So I guess you do not need to test it.

I think I found a bug in your LPC2106 demo !

In the linker script your line

ram_isp_low(A)		: ORIGIN = 0x40000120, LENGTH = 223

		/* variables used by Philips ISP bootloader	*/

The 223 length by my reading of the data sheet should be 224.

The 223 number seemed odd to me so I checked it.

It will not stop the demo working but it is natural to keep the linker script when you start a project proper.

The other thing Jim if you are out there have you tried the “WinARM” tool chain. It looks like if you WinARM for your tutorial it would save many pages and make it easier to get started with ARM development on Windows.

See http://www.siwawi.arubi.uni-kl.de/avr_p … _projects/

This looks good too :wink: :-

Planned extensions:

  • Installer

  • openocd (included in the test-version)

  • H-JTAG (included in the test-version)

Jim: Is this the best place to contact you, or would you prefer me to post somewhere else ?

All the best.

O.K., Fordp - you got me.

I was one-off on the memory region calculation (mea culpa). I’ll fix the next revision accordingly. Seriously, I’m gob-smacked!

I have really enjoyed your posts and I pay close attention to them.

At your suggestion, I erased my cygwin and gnuarm directories and downloaded the WinArm package that you suggested.

It not only worked very well, it looks like it executes faster on my Dell desktop computer. I also suspect that some of the Cygwin funny-business will be long gone (such as that occasional heap allocation problem I mentioned in my last tutorial revision). I was able to build a sample executable, burn it into flash and execute it.

It’s getting near bedtime so I have not had the chance to try the OpenOCD debugger stuff. Dominic Rath needs a utility called IOPerm.exe and it didn’t turn up in a search of the Winarm directory.

I have a google mail address: lynch007@gmail.com

I’m going to Florida for a week on Friday, but I’ll check the e-mails periodically.

I really appreciate your advice and suggestions - keep them coming!

Cheers,

Jim Lynch

THis question might not be appropriate to stick here, but I have had no help from Eclipse on this question.

Does anyone know how to allow the cursor to go past end of line ?

or allow the cursor to be scrolled into areas that have no text ?

You’ve detected a shortcoming of the Eclipse built-in editors. CodeWrite does allow this while Visual C++ Express does not. I have not spotted any preference setting that alters this behavior. You can, of course, hit the space-bar to move past the end-of-line but that’s lengthening the line.

My biggest disappointment with the Eclipse editors is the absence of a Block Copy (where you can select a rectangular section of text and paste it elsewhere).

Maybe we should enter these two complaints into Eclipse’s Bugzilla?

Cheers,

Jim Lynch

I was hoping not to hear that.

Are you serious no block copy !!!

that’s just plain outright STUPID!!!

Any one wanting to download Jim’s tutorial can also get it from

http://gnuarm.alexthegeek.com/

http://gnuarm.alexthegeek.com/ARM_Cross … 7_2006.zip

Hopefully should be reasonably fast (hosted on dreamhost.com in Cali)

downloaded here in Australia in 11 minutes at work

i’m a student and i will devellope some application for autotic distibution, i baught the LPCe2129 but i dont know the difference bettween eclipse and winarm !! ( how to install them?)

i work with windows XP

tahnks for help :oops:

JIM,

Iam very much impressed with your “ARM cross development with eclipse…”. Thanks for helping the beginners…especially for the people like me to learn the processor like ARM. I have been using the eclise and gnuram tools for my LPC2214 olimex board. and I have simply modifed the Linker script which you supplied “DEMO code for the lpc2106”. Its working fine for me. able to work on LCD display and buttons. I have a question here on interrupts… I tried to work on interrupts.able to work in polling mode…when I enable the ISR… am failing to trigger the interrupts… Do inned to do any thing extra in startup or linker scripts in regard to ISR…I have psoted the source code in this forum under the subject of “Help on Timer0 interrupt”…but no help…

Please help on this… Ihave been trying in different forums but no success.

Thanks for your help…

Yes there is more code needed to enable the ARM interrupts.

I think Jim should include a Timer ISR version of his LED flash commented out in the file.

It only takes about 30 lines of code.

In the meantine look at the WinARM examples.

or look here :-

=================================================

#include "VIClowlevel.h"

 

#define IRQ_MASK 0x00000080



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;

}



unsigned disableIRQ(void)

{

  unsigned _cpsr;



  _cpsr = asm_get_cpsr();

  asm_set_cpsr(_cpsr | IRQ_MASK);

  return _cpsr;

}



unsigned restoreIRQ(unsigned oldCPSR)

{

  unsigned _cpsr;



  _cpsr = asm_get_cpsr();

  asm_set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK));

  return _cpsr;

}

/* end of R O code */

thanks for the quick response…I tried this one also with the help of your reply to “HELP on Timer0 interrupt post”. Thanks… when I tried to call enableIRQ(), the LPC2214 is continuously resetting…I just included this in my project and did not updated any of the .s or linker files. :?:

I think , abviously i will be missing some thing.

Thanks agian.

hello

i have download the tutorial. and installed

java jre 5.0

eclipse 3.1 , eclipse works but whithout compiler C

when i install the zylin files it is also ok, but after installing cygwin eclipse dont run , something wrong with java

??

thanks for help

The latest version od embeddedCDT is designed for eclipse >= 3.2. I think it is the problem. Unfortunately zylin doesn’t provide older versions.

sprint >> You must change the stacksize for interrupt-mode. It’s just 4 bytes in the example. You find this in the startup file crt.s.

.set IRQ_STACK_SIZE, 0X00000004 /* stack for "IRQ" normal interrupts is 4 bytes */

Hope this helps.

/David

Hello…

I read jim’s tutorial and found it very helpful.(thanks jim great work :smiley: ).

I ordered olimex’s E2294 for our project development. When I started working on Eclipse I came across follwing doubts, so need some help for the same.

  1. I got an error when installing the zylin CDT which jim suggested. So I continued with the eclipse CDT.

I want to know that will it make any difference to my project development if I dont use zylin’s CDT?(if yes what?).

2)Due to short time in hand we want to go for a readymade ethernet driver. The one which is available with olimex’s board is Adam Dunkel’s uIP. But it is for msp430x14x.h processor, where as I am having LPC 2294 on my board. how can I make it run for my processor :?:

Hello Su

I has been the case for a long time that Eclipse/CDT had problems debugging remote targets (microprocessor boards via JTAG). The Zylin CDT creates a new “embedded launch configuration” that properly starts the debugger in idle mode and runs a GDB startup script, if any, at debugger initiation. Without the Zylin version of CDT, you will have trouble debugging your board.

The big problem is that CDT is a work-in-progress as is Eclipse and some versions of Zylin CDT don’t work with certain versions of Eclipse. You have to go to the Zylin web site and study their mailing list to see what versions of Zylin CDT mate with what versions of Eclipse.

To alleviate this potential problem, I have created a zip file of software components that I know are compatible. You can download them, plus the latest tutorial revision, from this Austrailian web site.

http://gnuarm.alexthegeek.com/ARM_Cross … 7_2006.zip

Using this set (you still have to download the cygwin bit) will give you the current Eclipse official release and a compatible Zylin CDT release. Give this a try and I suspect that your application will build properly.

Sorry, I have no experience in Ethernet stacks, so I hope somebody else will speak to it.

Cheers,

Jim Lynch

Thanks Jim for your quick reply.

I’ll surely download the required zip file and create a new environment once again.

regards.

Suyash.

Hello Jim

I got my OLIMEX E-2294 board.

According to Jim’s revised tutorial I had set-up the whole new environment and successfully bulid a program for uart1. But somehow it didn’t work on the kit/board. So next thing I wanted to start a debugger and find the problem.

I used the arguments :-

-c ARMTDMI-S -p 8888 -d WIGGLER -a 1 -s4

But when I started OCDremote application from external tools (before launching the debugger), I got following error messages in the console :-

/cygdrive/c/Program Files/GNUARM/bin/arm-elf-gdb: unrecognized option `-a1’

Then I tried removing ‘-a1’ from the arguments set to OCDremote and I got debugger application runnig but with following errors and couldn’t start the debugging.

Warning: /cygdrive/c/Eclipse/WIGGLER: No such file or directory.

4: No such file or directory.

Don’t know how to attach. Try “help target”.

GDB can’t read core files on this machine.

How to solve this problem, so that I can debug my program. :?:

regards.

Suyash.