Re: PIC vs AVR vs ARM
- From: "Isaac Bosompem" <x86asm@xxxxxxxxx>
- Date: 3 Oct 2006 18:01:36 -0700
John wrote:
Hi Issac,
In article <1159892751.506769.114790@xxxxxxxxxxxxxxxxxxxxxxxxxxx>,
x86asm@xxxxxxxxx says...
I guess I should add my $0.02 as well. I did not find the transition
from PIC/8051 MCUs I was working with before to ARM chips to be very
difficult at all. Yes I had to write my initialization code and the
linker scripts but they are quite easy to learn. At first I was scared
by linker scrips because everytime I opened one up I'd be like "what
the hell is this?" but after learning the syntax its not so bad.
You're right, learning all that isn't too horrible, but when you're
getting up to speed on an entirely new part, that's one less thing you
want to worry about.
I am working with the AT91SAM7S256, which is a pretty pleasant chip to
work with.
Do you execute your code from RAM or Flash? The '256 has ample of both,
so I suspect the tradeoffs in going from a uC to a uP weren't as great
for you. Do you plan on using a '256 in production / final product, or
is that your development platform?
Yes the chip has ample flash and RAM, I am running out of Flash though
in ARM mode. I do not yet want to mess with the Thumb stuff. I am using
the '256 as a simple dev platform to get a feel for the chip (and ARM
chips in general). The tradeoffs werent too great I guess. I really did
like working with the 8051, it was quite simple to use and its hardware
and architecture were very well documented. But I figured I would learn
about the ARM since many of you are enthusiastic about it. I'm not a
professional, so I am not involved in any professional work. But let's
just say I am an apprentice ;).
Since I am working on a VERY limited budget, I use Crimson Editor to
edit and compile my code and then use Insight to debug it. For me, its
simple, simply press Ctrl+2 to do a make clean and Ctrl+1 to build the
source to both an ELF and binary. I'd say to learn it because there
might be a time in which you will need a 32-bit MCU and you don't want
the additional burden of learning at that time.
When you re-compile your code, do you have to quit Insight? Are you
using OpenOCD as well?
Yup, I must or else the linker stage of my make file will complain. I
am using the OCDRemote from Macriagor (sp?) and a "Wiggler" compatible
JTAG cable. It is horrendously slow sometimes. I have to close the
local variable view to speed it up. Sometimes that doesnt even work :(.
I find for some reason, arm-elf-gdb opens the main.out (.bin, or
whatever) in a locked read-only mode, so I can't re-compile until I kill
Insight (or whatever is the front-end for gdb). I find that a real
PITA. AVR studio was nice and would pop-up a message saying it noticed
the executable changed and if I wanted to reload the AVR.
I'll admit I havent played with AVR. But it seems like the people doing
their design projects at my school are in love with it (and the PIC,
not surprisingly though since one of our alumni grads works at
Microchip...). They also love the Freescale 56000 series DSPs, they
seem to have simulators for that DSP on the computers.
I did do a brief foray with the AVR Studio some time ago and really
liked the IDE. The simulator was very powerful too. I guess that's why
my peers like it so much.
Yes it is a more "heavy" RISC chip. Its instruction set somewhat leansAlso if you are now working with the 8-bit AVR, why not try the MSP430
as well? I have a cheap board on it that is powered with a watch
battery and it keeps going (of course the CPU is running off the
internal DCO, which is only around 800kHz).
Well, I tried the MSP430 on a project once and I wasn't blown away by
it. I think the MSP430 niche is "low-power" and all the various
clocking modes it offers. But from a performance perspective, many
instructions are not single-cycle, so the AVR typically runs neck and
neck with it or faster.
more towards traditional CISC processors. But a plus side I found with
the MSP430 is that the MSPGCC is very simple to use. No startup
initialization is necessary (compiler has startup object files for each
variation of the 430) and all you need to do is plus a special
attribute flag on a function and it will be declared as an ISR and the
vector table will automatically be patched for you. No mess, no
worries.
I like the idea of working with a 16-bit uC, I think that's the perfectMy first 8-bit MCU was the PIC, so the MSP430 is a refreshing change. I
compromise. Since a lot of data one uses in the real world (with A/Ds,
D/As, etc) is more than 8-bits wide it typically fits nicely in 16-bits.
But, I just didn't find the MSP430 to offer too much more than the AVRs.
I will add, I don't think TI has an equivalent to AVR Studio, which
means if you want to do debugging, etc that means something like Rowley
CrossWorks.
found the PIC's to be pretty good for power consumption. The MSP430 has
a better architecture and a free GNU compiler that I can readily use,
it was a no brainer to switch over and use it in my low power projects.
John.
-Isaac
.
- Follow-Ups:
- Re: PIC vs AVR vs ARM
- From: Ulf Samuelsson
- Re: PIC vs AVR vs ARM
- References:
- PIC vs AVR vs ARM
- From: Miem
- Re: PIC vs AVR vs ARM
- From: John
- Re: PIC vs AVR vs ARM
- From: Isaac Bosompem
- Re: PIC vs AVR vs ARM
- From: John
- PIC vs AVR vs ARM
- Prev by Date: how to generate vxworks bsp
- Next by Date: how to generate vxworks bsp?
- Previous by thread: Re: PIC vs AVR vs ARM
- Next by thread: Re: PIC vs AVR vs ARM
- Index(es):
Relevant Pages
|