Learning embedded systems

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I am a recent graduate with a BS in Computer engineering.  I am
interested in working with embedded systems, but I have no experience
with them.  I've done basic C/C++ programming and very little ASM.

What steps should I take to learn?

I have some books and have been looking at the book recommendation in
this group, but I feel hands on learning is the best way to go.

So, I guess I am looking for a cheap development system I can use at
home to learn embedded systems and something that is popular enough
that I can use the knowledge gained to help get a job working with
embedded systems.

Any and all help is much appreciated.

thanks,
Rob


Re: Learning embedded systems

Quoted text here. Click to load it

Think of something simple and cool to do with a small processor then buy
yourself a cheap Evaluation Board to play with and try and implement your
simple cool project.

You may need to learn to solder, design electronic interfaces and things
like that but you should have some fun doing it. There is plenty of
material on-line that will help you out with various factors and the rest
of the guys here are always willing to answer well formed specific
questions.

Some links to go on with:-

   http://www.mpeltd.demon.co.uk /
   http://www.triangledigital.co.uk /
   http://www.dontronics.com/
   http://www.gumstix.com /

The capabilities of the boards on those sites varies a great deal so you
will need to sit down and consider what you want to do and what may fit
best to your purposes.

--
********************************************************************
We've slightly trimmed the long signature. Click to see the full one.
Re: Learning embedded systems

Quoted text here. Click to load it
<snipped>

Try out the free Webcasts and VirtuaLabs at TechOnLine:
http://www.techonline.com/community/home

E.g., for the Freescale VirtuaLabs, try this:
http://www.techonline.com/community/member_company/non_member/virtualab/330

Freescale also has tutorials in its Embedded Learning Center for much of its
product lines:
http://www.freescale.com/

Register at those sites and do the tutorials and labs. There's also free
access to hundreds of Freescale manuals on its site (under Documentation)
and such if you need any documentation. You can purchase evaluation boards
for $50 to $300 from Freescale or other manufacturers.

Also, you can apply at Metrowerks.com (Freescale's software division) for
limited versions of their development IDEs or for 30-day full evaluation
versions of them.

There's a lot of resources out there...

Gary Schnabl
Detroit



Re: Learning embedded systems
Get the new S12NE64 development kit from freescale (< $100) with the
BDM programmer (~ $99). You can then use the Metrowerks compiler (free
upto 4K of code) or you can get the 30 day trial from them.

The NE64 is their first Ethernet enabled micro. It does have come with
an ethernet stack. I could not get that to compile in 4k.

If you wish to spend more on the board, try the HCS08 boards. THe
metrowerks compiler is free for up to 16k of compiled code. I have
developed embedded products with less code space.

Have a ball.


Re: Learning embedded systems

Quoted text here. Click to load it

Metrowerks upped the Special Edition version's code limit from 4K to 16K
several months ago for both the HC08 and the HC12:
http://www.metrowerks.com/MW/Develop/Embedded/HC08/HC08_fmatrix.htm
http://www.metrowerks.com/MW/Develop/Embedded/HC12/HC12_fmatrix.htm

If you got a couple free GB on your hard-drive, you can install all three
free Special Editions. You can get the 16KB Special Edition for the Hybrid 7
(Freescale DSP56F8xx, DSP568xx, and DSP56F8xxx) also, but it's listed as 8K
(16-bit) words.

Description of the Hybrid 7 Special Edition (typical for all special
editions):
TARGET: Special Edition is targeted at assembly code projects or small
projects with a limited amount of C
code. Debugging is mostly done with Evaluation Boards or directly on the
target application.

Features: there are some limitations to the special edition:
. Unlimited assembler
. C compiler limited to 8KWords of object code
      (There is no code size limitation when developing in assembly.)
. Linker limited to 8KWords of C code
. IDE unlimited.

Upgrade options available for the Special Edition (requires a few $):
For customers developing C based applications and using more than 8KWords of
code, three upgrade
options are available, a 32KWords option, a full 64KWords option, and an
unlimited Standard Edition

The upgrade to the 32KWords offers:
. C compiler object code increased to up to 32KWords

The upgrade to the full 64KWords offers:
. C compiler object code for up to 64KWords

Quoted text here. Click to load it


The complete list of evaluation boards from FSL:
http://www.freescale.com/webapp/sps/library/toolslist.jsp?categoryRadio=null0.01&rootNodeId01%&nodeId01%&Device=All&DocTypeKey_0=nullA0&DocTypeKey_1=nullA0.A2.10Kx3lx0&DocTypeKey_2=nullA0.A2.10Kx452x&DocTypeKey_3=nullA0.A2.10Kx5FNL&DocTypeKey_4=nullA0.A2.10KmL0Fp&DocTypeKey10%KmLF9J&DocTypeKey_5=nullA0.A2.10KmLF9J&DocTypeKey_6=nullA0.A2.10KxW5qw&DocTypeKey_7=nullA0.A2.10KxYNNw&DocTypeKey_8=nullA0.A2.115dgmF0&DocTypeKey_9=nullA0.A2.10VkWR4s&DocTypeKey_10=nullA0.A2.10KxYWkj&DocTypeKey_11=nullA0.1168WFfn&DocTypeKey_12=nullA0.A3.10KmVlSp&DocTypeKey_13=nullA0.A3.10KmVNXG&DocTypeKey_14=nullA0.A3.10Sg6Gbf&DocTypeKey_15=nullA0.A3.10KlVV2X&DocTypeKey_16=nullA0.A3.10KmVBfK&DocTypeKey_17=nullA0.A3.10KmV2c8&DocTypeKey_18=nullA0.A1.A8&DocTypeKey_19=nullA0.A1.10KmSqTb&DocTypeKey_20=nullA0.A1.10KmRhZ5&DocTypeKey_21=nullA0.A1.10KmBHTs&DocTypeKey_22=nullA0.A1.10KmBS9F&DocTypeKey_23=nullA0.A1.10Sgm5jZ&DocTypeKey_24=nullA0.A1.10KmJhqT&DocTypeKey_25=nullA0.A1.10MTDnJZ&DocTypeKey_26=nullA0.A1.10KmKHkZ&DocTypeKey_27=nullA0.A1.10MTRN5K&DocTypeKey_28=nullA0.A1.10MTRcsn&Results99%999999


There are two boards for the MC9S12NE64 - a demo board for $75 and the
standard EVM for $249. The demo DSP56F8223 board is also available for
around $75.

The RAD tool - Processor Expert - is on all of the IDEs that I cited above.


Gary Schnabl



Re: Learning embedded systems
That is good to know. Thanks for the info.


Re: Learning embedded systems

Quoted text here. Click to load it

On further review...

The HC(S)12 special edition has a 12 KB limit, I think. I don't use it since
I have the professional unlimited versions of the HC(S)08, HC(S)12, and
Hybrid 6.1.2 & 7.0 IDEs, plus the Processor Expert Bean Wizard tool.

Since your present installation has no way of knowing its code limit was
increased threefold, you should either install a newer license.dat file, OR
better yet, do another download of the entire installation which will take
care of some of the updates. Also check into the Unis Processor Expert site
and get those updates also. If you have any problems concerning how to find
them and/or install them, email me.

Gary Schnabl



Re: Learning embedded systems
Hello Rob,

Here is what I did and it's low cost:

A couple Olimex MSP430F1232 header boards (about $15 each).
Two rows of female headers for easier mounting ($1 each).
You might buy their parallel port programmer (about $15).
Download the free version of IAR Kickstart from the TI web site.

I didn't buy the parallel port tool but the USB programmer from TI which
is more expensive (about $100), mainly because newer laptops do not have
a parallel port anymore.

If you are in the US then Olimex parts can be bought at:

http://www.sparkfun.com/shop/index.php?shop=1&cart18%9389&cat=9&

They also carry robot kits if you are into building something that
moves. Just browse via the menu bar at the lefthand side of the screen.

The F1232 is almost an embedded system on a chip. Except that it doesn't
have a DAC but for slow stuff that can be accomplished via pulse width
modulation using its timer. You can buy more capable versions though.
The header board contains everything, even the crystal to run the micro
controller, but you have to create a clean power supply of around 3V.
That is easy.

The reason why to buy at least two header boards is that there is always
that remote chance of frying one during experiments.

Of course now you'll have to build power drivers, sensing circuits and
all that around such a header board. But this is certainly part of the
learning curve. Only when you acquire a thorough and hands-on
understanding of hardware can you become a skilled embedded specialist.

Then, as Paul said, pick something as a project that you kind of always
wanted to have. Ideally something you cannot buy because that increases
the level of joy you'll experience when it finally runs.

Regards, Joerg

http://www.analogconsultants.com

Re: Learning embedded systems



Quoted text here. Click to load it

I like it when people are "interested in working with embedded systems"
What does that mean?
Anything from the 8bit cpus with no OS in a mouse to 64 bit powerhouses
with RTOS's.  So you need to focus a little  small search for 8052 , AVR
or PIC. There are free and lost cost C compilers available.  Not C++ so
be sure you know C ( C++ is not the same thing).  There are books and
forum dedicated to them.  I little bigger try the ARM very popular It
will run C or C++.  Maybe look in to Micro OS II it is a book with RTOS
code.  Remember you will need some electronics knowledge you need to know
the hard ware to talk to it.  Good Luck.



Re: Learning embedded systems

Quoted text here. Click to load it

GNU gcc is free, exellent, and C++.  You're definately not limited to
C.  There are binaries available for the Hitachi processors and for
many others as well.  (I'm only mentioning the Hitachi because that's
what I'm using).

Dan


Re: Learning embedded systems

Quoted text here. Click to load it

Speaking of Hitachi, the Lego Mindstorms might be a possibility for
learning embedded systems.  It uses the Hitachi H8/300.  The
disadvantages are that the ROM documentation is lacking, but there are
lots of web sites out there that could help.  There's no debugger
interface either.  There are definately better systems to learn on.
However, it's relatively inexpensive and can be a lot of fun.

--
Darin Johnson
    Support your right to own gnus.

Re: Learning embedded systems

Quoted text here. Click to load it

If you search around for RCX Forth you probably will find a nicer
environment for the little Lego block. I think it may give you some debug
capability (although I haven't tried it myself). Best to read the
comp.lang.forth newsgroup archive on Google first as there have been a few
threads on that topic.

--
********************************************************************
We've slightly trimmed the long signature. Click to see the full one.
Re: Learning embedded systems

Quoted text here. Click to load it

It's pretty good.  I've been writing my own Forth cross compiler for
it.  While pbForth is a good way to learn Forth, it won't necessarily
teach much about embedded systems on its own.

There's also legOS lets you program directly with a GCC cross
compiler, has multiple tasks, semaphores, lets you add your own
interrupt handlers, and so forth.  So it gives more direct exposure
to embedded systems concepts.

--
Darin Johnson
    Gravity is a harsh mistress -- The Tick

Re: Learning embedded systems
ammecauseidontlikit.com> writes
Quoted text here. Click to load it

You are for 8 bit processors

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England    /\/\/\/\/\
/\/\/ snipped-for-privacy@phaedsys.org       www.phaedsys.org \/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Re: Learning embedded systems

Quoted text here. Click to load it

Depends on your 8-bit processor.  GCC supports C++ for AVR.  I don't
use it myself, but others do, and it is supported and available.

Ciebo used to have a C++ for 8051.  Never heard anything good about
it.

Leaving C++, there is a Modula-2 for 8051.

Hmmm.  Is PLM still around?

Regards,

                               -=Dave
--
Change is inevitable, progress is not.

Re: Learning embedded systems
Quoted text here. Click to load it

Which I think proves my point. GCC for one processor and Ceibo for
another. The code density of the GCC makes it not very useful compared
to the commercial C compilers for the AVR.

Quoted text here. Click to load it

!!!!!! ?Where did this come from? Mod2 is a procedural language like C
but a lot less well supported. It is effectively as dead as Pascal.
There is more Forth about than Mod2 and Pascal.

Quoted text here. Click to load it
Yes but not supported at all AFAIK. Though I do have one of the last
versions of the Intel PLM compiler for 51 and x86. It is used for
maintenance of some VERY old MoD projects.


/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England    /\/\/\/\/\
/\/\/ snipped-for-privacy@phaedsys.org       www.phaedsys.org \/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Re: Learning embedded systems
Quoted text here. Click to load it

And one of the more popular AVR compilers is the IAR, which has C++
support...


Quoted text here. Click to load it

--
Best Regards,
Ulf Samuelsson
We've slightly trimmed the long signature. Click to see the full one.
Re: Learning embedded systems

[...languages other than C for 8-bit processors...]
Quoted text here. Click to load it

FWIW, avr-gcc code generation compares favorably with the commercial
compiler I have for that platform (avr-gcc code varies between
slightly larger to much smaller).  IAR probably beats it, but the
version of IAR I have is old enough that it doesn't support the
processors I'm using.

Quoted text here. Click to load it

New Zealand.  ;-)  http://www.designtools.co.nz/mod51.htm

It was generating much better code (at least for a pathological
checksum I posted a few years back) than Keil C51 v5.5.  

Quoted text here. Click to load it

A few years back, GM required the use of Modula-GM for safety-critical
software, such as that in antilock braking systems.  They may still,
I'm not sure.  Modula's advantages over C are widely (if not
universally) recognized.

Quoted text here. Click to load it

Which means "no."  I last used PLM-80 on an avionics project back in
1983/84.  I recently read that Boeing built the last of that aircraft
the end of last year.

Regards,

                               -=Dave
--
Change is inevitable, progress is not.

Re: Learning embedded systems
Quoted text here. Click to load it

I think most automotive things have moved to C now.

Quoted text here. Click to load it

Actually "yes."  Boeing is not the only user. There are several
aerospace systems in service that still use it. There was recently some
modifications done to one of the systems.  Also some security systems in
current use.  The last Intel PLM compiler I have is dated 1986.

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England    /\/\/\/\/\
/\/\/ snipped-for-privacy@phaedsys.org       www.phaedsys.org \/\/
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Re: Learning embedded systems
Quoted text here. Click to load it

I certainly hope not.  That in itself would show gross disregard
for safety, and could be the grounds for all sorts of lawsuits and
punitive awards.  Ada would be more reasonable.

--
"If you want to post a followup via groups.google.com, don't use
 the broken "Reply" link at the bottom of the article.  Click on
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline