tags:

views:

142

answers:

4

Hello, i would like to learn something about embedded development; i think the best thing would be to buy hardware stuff and play with it but i don't' know where to start and, if possible, i would like not to pay to much ....

If you have experience in this field, which would be the best road to follow?

Thank you very much ! Greetings, c.

+1  A: 

Well, depending how much money you want to spend, and how much development expertise you have, you could either get an Arduino (arduino.cc) or a FEZ Domino (C# .NET) (tinyclr.com). Both are premade MCUs, with all the tools you need to start developing out of the box.

The Arduino is going to be very simplistic, but probably better for a beginner. The FEZ is a little harder to work with, but FAR more capable. Both have the same physical pinout, so you can use "shields" between them

chris12892
If you are a hobbyist, Arduino might be a good choice. However, when you think about embedded programming as a profession, you need to learn to program in C. Understanding some assembly wouldn't hurt either.
Miro
On a hardware level Arduino is just Atmel AVR, so you can program it in C, too.
starblue
+2  A: 

If you want to get your feet wet, get a cheap evaluation board like Stellaris LM3S811 Evaluation Kit (EK-LM3S811) which is $50 at Digi-Key then download CodeSourcery G++ which provides free command line tools or the IAR Kickstart Edition which allows you up to 32KB of code.

florin
Choosing ARM Cortex is a smart move. I would definitely stay away from outdated architectures such as PICmicro or 8051.
Miro
A: 

I would recommend a kickstart kit from iar systems. They're fairly complete and work out of the box.

http://www.iar.com/website1/1.0.1.0/16/1/

Amardeep
+2  A: 

I assume you mean real embedded and not embedded linux or some other operating system thing.

All above are good, sparkfun.com is a GREAT resource for sub $50 cards. Dont buy the embed. The armmite pro is nice, trivial to bypass the high level canned package and load your own binaries (I have a web page on how to do it if interested).

Stellaris is good, the 811 is easy to brick so be careful, the 1968 eval board is not a bad one. The problem with the stellaris boards is almost all of their I/O is consuemed by on board peripherals. The good thing about the stellaris eval boards, based on what you are wanting to do is that all the I/O is consumed by on board peripherals. Lots of peripherals for you to learn how to write embedded code for.

You are going to eventually want a jtag wiggler, I recommend the amontec jtag-tiny, it will open the door to a number of the olimex boards from sparkfun. the sam7 and stm32 header boards are good ones as well.

the lillypad is a good starting place for arduino (sparkfun), same price as the arduino pro mini, but you dont have to do any soldering. get a lillypad and the little usb to serial thing that powers it and gives you serial access to program it. Just like the armmite pro I have a web page on how to erase the as-shipped flash and have a linux programmer that lets you load any binary you want not just ones limited to their sandbox.

avoid PIC and 8051 unless you are interested in a history lesson. the PIC32X, not sure my first one is in the mail, it is a MIPS 32 not a PIC core.

the ez430 msp430 board is a very good one, the msp430 has a very nice architecture, better than the avr.

You can get your feet wet in simulation as well. I have a thumb instruction set emulator, thumbulator.blogspot.com. Thumb is a subset of the arm instruction set and if you learn thumb then you can jump right into a stellaris board or stm32. My sim does not support thumb2, the thumb2 processors also support thumb, the transition to thumb2 from thumb is trivial.

avoid the stm32 primer boards, avoid the stm32 primer boards, avoid the mbed2 boards, avoid the mbed2 boards, avoid the lpcxpresso boards, avoid the lpcxpresso boards!!

I recently found a behavioral model of an arm in verilog that you can simulate your programs, have not played with it much. qemu-arm is probably easier, not a bad place to get your feet wet although it can be frustrating. Which is why I wrote my own.

ARMS own armulator is out there, in the gdb source release for example, easier than qemu-arm to use, but can be frustrating as well.

go to codesourcery for arm gcc tools. use mspgcc4.sf.net for msp430 tools. llvm is rapidly catching and passing gcc, if nothing else I expect it to replace gcc for the universal cross compiler tool. at the moment it is much more stable and portable than gcc when it comes to building for cross compiling (because it is always/only a cross compiler wherever you find or use it). the msp backend for llvm was an afternoon experiment for someone, sadly, I would really like to have that supported. If you use llvm, use clang not llvm-gcc.

dwelch
oh yeah, duh, the GBA, GameBoy Advance. Nice platform for learning embedded.
dwelch
Out of curiosity, why avoid the mbed, stm32 and lpcxpresso boards?
Ben Gartner
mbed and lpcxpresso are like the stm32 primer. They lock you into a specific development platform. These boards are not there for you to learn the processor they are there for you to use the IDE/toolchain. I am not interested in the toolchain and definitely not interested in windows nor a web based thing. I want to learn the chip and will vote with my dollars to buy from some other vendor.
dwelch