I’m trying to get started using Atmel’s ARM7 offering, (specifically, the at91sam7s256). Having had a bit of experience programming/using avrs, I thought it would be relatively straightforward, but I can’t for the life of me figure out where to begin. What development tools do I need? I see mention of about a million different tools, both proprietary and open-source out there (IAR, Eclipse/GNU-ARM, OpenOCD, Philipps Flash Utility, keil, WinARM, to name a few), and a handful of programmers (with an average cost of about $150!!!), as well as lots of promises about LPC uCs, but nothing about at91sam7s.
I guess I’m just looking for a beginner’s reference (something like AVRBeginners.net?), or something to ease the pain of moving from reg’lar AVR-based systems to ARM-based, as well as some reassurance that I won’t spend a couple hundred on a programmer, only to discover I could have done the thing in SPI with my $5 home-made serial dongle.
The GNU tools (WinARM, GNUARM, …) are probably a bit harder to getting used to, compared to one of the commercial offerings, but once you know what you’re doing I’m sure you don’t want to miss them.
The OpenOCD allows you to use cheap wiggler-style interfaces to debug and program your uC. An alternative would be Macraigor’s OCDremote, which is free as in gratis (new FSF speak), but of course I believe the OpenOCD is supererior (though my view may be biased ;)).
A wiggler is a parallel port interface that just toggles a few lines to bitbang the JTAG protocol. If you don’t have a parallel port, you could use one of the USB interfaces supported by the OpenOCD: Amontec’s JTAGkey, Olimex’ soon-to-come ARM-USB-OCD, or a homebrew device built around the FTDI DLP2232M evaluation module. USB interfaces for commercial debuggers like IAR, KEIL often only work with that vendor’s software, which is often rather expensive. Of course, if you’re short on time, spending the money might be worth.
SPI wont work, and I haven’t seen a serial ARM-JTAG interface so far.
There’s a good forum about Atmel’s ARM chips at www.at91.com, but I don’t know if they have tutorials or beginner’s guides.
roach:
I guess I’m just looking for a beginner’s reference (something like AVRBeginners.net?), or something to ease the pain of moving from reg’lar AVR-based systems to ARM-based, as well as some reassurance that I won’t spend a couple hundred on a programmer, only to discover I could have done the thing in SPI with my $5 home-made serial dongle.
A good way to get started for free (well, after you buy a development board) is to just program the chip over a serial or USB connection. The AT91SAM7S chips come with an on-chip bootloader (think MegaLoad for AVR’s) that is always available on the chip in the first 8k of FLASH. You can then use Atmel’s SAM-BA GUI interface program on Windows (or see my [Sam_I_Am program for Linux) to upload your code into either RAM or FLASH.
No need to buy a programmer unless you want to do on-chip debugging. You can make that investment once you’ve kicked the tires and decided to commit.
The combination of SAM-ICE + IAR Embedded Workbench will get you up and running very quickly, but the SAM-ICE costs about $140.
Otherwise, you can use IAR to generate BIN files that can then be loaded into the chip through SAM-BA. This is certainly a slower method than the SAM-ICE, but it works.
Alternatively, you can use GNU-ARM to make these bin files, but I personally found GNU-ARM to be a serious headache compared to IAR.
I have not used the JTAG programmer that SFE sells so I am unable to comment on it.
seulater:
give Rowley a try, it will kick the pants off IAR, which in my opinion is an over priced, bloated peice of crap. No offense NleahciM.
No offense taken. I don't work for IAR or nothing.
You sure you don’t work for Rowley? You sound more like an advertisement. Do you have some comparisons to back up what you’re saying? I would be very interested to see those, as I don’t have any particular loyalty to any compiler, and I’m always interested in improving my setup. I just found IAR to be 100x easier than GNU, but I’ve never used crossworks. One positive for Crossworks: last I heard Atmel was migrating towards supporting two compilers, and I believe they were Crossworks and just plain ol free GNU ARM. IAR was not among the two.
Last I heard GNU was still producing slower code, but that may have changed. Does Rowley support the SAM-ICE? It might be fun to try it out someday. More importantly, does it have a free non trial version? I’m still using the free version of IAR as it’s only limitation (that I know of at least) is that it will only produce 32KB of compiled code or less. I’m at about half of that right now, and so I’m just not worried at all.
LOL, no. i recently got into the ARM and was looking for a compiler for it. I refused to even try the demo for IAR. then i stumbled onto Rowley, I tried it and fell in love with it. In fact i would even say out of all the compilers i have tried and owned in the some 18 years i have been doing this, Rowley blows them all away in its easy to use and well thought out enviroment. it make IAR look like a caveman on drugs.
I too, like yourself thought GNU was a pain in the butt, However Rowley has done wonders. Please give it a try you your own sake. It will make your life much easier. If i sound like a sales person, its only becasue i love this CrossWorks so much i want them to do well in life, and get the word out.
LOL, no. i recently got into the ARM and was looking for a compiler for it. I refused to even try the demo for IAR. then i stumbled onto Rowley, I tried it and fell in love with it. In fact i would even say out of all the compilers i have tried and owned in the some 18 years i have been doing this, Rowley blows them all away in its easy to use and well thought out enviroment. it make IAR look like a caveman on drugs.
I too, like yourself thought GNU was a pain in the butt, However Rowley has done wonders. Please give it a try you your own sake. It will make your life much easier. If i sound like a sales person, its only becasue i love this CrossWorks so much i want them to do well in life, and get the word out.
So you have never used the competition, and yet you state repeatedly as a fact that Rowley’s product is better. Right.
not sure how you came to that conclusion. i never said anything of the sort, or even hinted to that. i think you need to walk before you leap to conclusions and make statements that are unjustified.
If you must know the facts then here you go. I have used IAR over the years on and off, In my opinion it is the biggest piece of crap out there bar none. If those IAR folks would try Rowley once i know they would be hooked when they see what a real environment works like.
Pardon me for sticking my big nose in here, but I want to add something. If you are making money using the tools, then by all means go with Rowley’s product. They have no support, however, for the ‘intense hobbyist.’ Yes, they offer a 30 day trial, then you must buy it for about $1000. The other option is if you can PROVE you are in school, they will give you a student version. I emailed Paul, many months ago, asking if there was any other way. He promised that ‘something was in the works,’ but so far there has been no change on his site. When I first looked at their site, I would have purchased the Rowley tool for $500, then I noticed it was pounds, so about two times as much in dollars. Way too much for what I do, and I’m sure for some others.
IAR may not be as good of tool, however they do provide for those of us who are not making money with the tool. At that time I was working on the Phillips Arm, and found the Keil (now owned by ARM) free arm tools easy, and they had a high (32k?) code limit. I see they support the SAM, as well.
I think the best solution is still, to climb the gcc chain myself. As in the rest of life, you get what you pay for, more or less, and there are no free lunches.
seulater:
not sure how you came to that conclusion. i never said anything of the sort, or even hinted to that. i think you need to walk before you leap to conclusions and make statements that are unjustified.
If you must know the facts then here you go. I have used IAR over the years on and off, In my opinion it is the biggest piece of crap out there bar none. If those IAR folks would try Rowley once i know they would be hooked when they see what a real environment works like.
seulater:
i recently got into the ARM and was looking for a compiler for it. I refused to even try the demo for IAR.
Huh?
So you have used IAR embedded workbench for ARM over the years on and off, but you just recently got into ARM and refused to even try the demo for IAR. Please try to make sense.
The best guess I can make from your posts is that you used a different IAR product, and have used that as a measurement of all of their products. But that’s only a guess, and that would be an illogical and even silly way to evaluate all of their products. Please try to be more clear in your posts.
Look, its this simple. I made a few comments that Crossworks is great and IAR sucks. its quite clear that in order for me to make that statement i would have had to use both of them in order for me to say that. Why would anyone make a comment like that never having used IAR? that would be just plain stupid. However, it seems that you need a bit more info for whatever reason to keep you from jumping to conclusions again.
Every year i try the competitions demos to see how well they have matured. every year i try IAR and a few others. I have a bank of demo programs that i wrote to perform math, speed, and I/O tests on the micro using the different compilers. I use a scope to test the speed of the functions and then i look at the assembler output and see how well the compiler works things out and how fast it performs these tests.
I have been an AVR micro fan for many years now. i have done some serious bench testing with a few compilers when i got into AVR. IAR was the worst out of all of them for speed and the ability to produce the smallest output of code. CodeVision was the best in both categories. the rest fell in the middle. Needless to say i bought CodeVision and have used it ever since, which is about 8 years now. i have been Very happy with it. I also bought Imagecraft compiler because Codevision was not the perfect ANSI C compiler and i need a ANSI C compiler for a project i was working on. Imagecraft is not as fast as Codevision but it got the job done. I used it once and only once. Imagecraft is however faster and more efficient than IAR. In my ~20 years of having compilers, IAR has always tested out as the rock bottom.
Recently i have moved into ARM, and i did the compiler comparison test all over again. This time there was one thing different, i found out about Crossworks which i did not know about in my AVR testing. so i tried IAR, Imagecraft, KIEL, Crossworks and one other i forgot. Codevision does not make an ARM compiler (yet). when i was done comparing all of them Crossworks blew them all away in every event! Even the environment was the best to work in. On top of that Crossworks never once, burped, farted or locked up like the test did several times! to me that holds allot of weight!!!
so i bought it and have VERY happy ever since.
SO, are things clear for you now?
F.Y.I. I don’t appreciate someone accusing me of B.S. 'ing the public. When they read into things and don’t even know all the facts. Do yourself a favor, in the future if you are unsure about something ask first then accuse if you feel the need.
seulater:
Recently i have moved into ARM, and i did the compiler comparison test all over again. This time there was one thing different, i found out about Crossworks which i did not know about in my AVR testing.so i tried IAR, Imagecraft, KIEL, Crossworks and one other i forgot. Codevision does not make an ARM compiler (yet). when i was done comparing all of them Crossworks blew them all away in every event! Even the environment was the best to work in. On top of that Crossworks never once, burped, farted or locked up like the test did several times! to me that holds allot of weight!!!
Uhhhhhhh… Please explain to me how you are not contradicting yourself here.
now i see where why you said what you said. My apologies :oops:
I did refuse to try IAR, however the boss “suggested” that i try it none the less. he is a fair guy so i don’t blame him for not knowing what he’s talking about. what i did this time around was sit him down and show him how they all compare. it was so shocked at how bad IAR scored and how poorly it worked and locked up that i am off the hook for ever testing it again
Again, these are our experiences IAR and mileage mar vary.
I know people who LOVE IAR and could not see using anything else.
ok I followed this discussion and I’m interested to learn, how do you compate these two IDEs: CrossWorks and IAR and where one have advantage to the other?
code size?
code speed?
debugger features?
speed of compilation?
can you speak in detail, and with examples, not just say this is good this is bad i.e. to define what’s good and what’s bad?
johnnoergaard:
Why use Atmel ARM, Philips ARM LPC21xx is much better supported.
Hmm… Good question, and one I think I should be asking myself. I think it’s because I’m in my comfort zone with AVR, though I’ve only really worked with AtMegas. As long as I’m trying to move to a completely different architecture, though, I might as well think about shifting over to LPC.
Anyone have any comments? The basic peripherals 'm looking for on this particular project are full-speed USB, SPI (in hardware, if possible), lots of I/O pins, and decent amount of Flash (256K or more). Does this sound like something an LPC would have? Sorry to sound like a n00b, but I don’t really know where to begin here…
roach:
I think it’s because I’m in my comfort zone with AVR, though I’ve only really worked with AtMegas.
a lot of peoples think the same way like you
I work with AVRs now and I know Atmel’s FAEs so I’ll go with SAM7
my 2 cents: LPCs now are easier to learn as have less capable peripherials and less complexity to use them, SAM7 have more sophisticated peripherials which are more difficult to learn but once you learn them you can do more with SAM7 than with LPC equivalent, but this advantage is only temporary, Philips is learning very fast and they will cover the gap very soon.