CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 7 of 7
  1. #1
    Join Date
    Aug 2001
    Posts
    51

    Question Learning Embedded?

    I am seeing all these jobs for people with embedded C/C++ experience, and I am wondering if there's a way to learn embedded on your own. Are there tools available to teach-yourself embedded?

    Thanks.

  2. #2
    Join Date
    Jul 2002
    Location
    Portsmouth. United Kingdom
    Posts
    2,727

    Re: Learning Embedded?

    Embedded programming may include...

    1. Hardware interfaces - Talking directly to hardware registers & handling interrupts. Some very low level coding may be required.

    2. Limited hardware platform - Achieving the required result with limited processor & memory resources.

    3. Strict timing requirements - Embedded devices may have strict timing, where a late response is deemed to be a failure of the system.

    4. No O.S. - It may be that the device has no operating system. The application is also the operating system. You will have little in the way of nice libraries to draw on.

    5. You may be coding on a completely different platform to what the application is running on.

    Embedded programming is not too much different from the more mainstream applications (if there is such an animal), but your options may be more limited.
    Last edited by JohnW@Wessex; February 23rd, 2009 at 08:48 AM.
    "It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong."
    Richard P. Feynman

  3. #3
    Lindley is offline Elite Member Power Poster
    Join Date
    Oct 2007
    Location
    Seattle, WA
    Posts
    10,895

    Re: Learning Embedded?

    It's more or less the same language (perhaps with some special types and functions for the given platform), just a different way of using it. Unless you have a hardware simulator it's much harder to use a debugger, so you have to rely more on printfs or other output schemes. Plus there's a greater emphasis on keeping your memory usage under control in most cases.

  4. #4
    Join Date
    Aug 2005
    Location
    San Diego, CA
    Posts
    1,054

    Re: Learning Embedded?

    Now adays, a lot of companies use commercial RTOSs and compilers for embedded targets that allow debugging through remote connections. In that case, the process of debugging is not too different from debugging any other application. Either way, you have to have a strong knowledge of the language in question. Some embedded positions have very tight constraints as John pointed out. Therefore you really have to pay attention to the details of the job posting. Many times they will say what special requirements they have for an applicant. I've gone back and forth between windows programming and embedded programming without too much trouble. It is nice to say that you have the experience but if you don't, you have to sell the other aspects of your abilities in order to get the job. Throughout the course of your life it is a good idea to get experience doing both. You can get the experience with windows programming much easier (on your home computer, while it is harder to get embedded programming experience).

    One thing you could do is research some kits on the internet. There are science project kits you can buy where you can write programs for devices and then burn the programs to the chip. There are these neat leggo toys that allow you to build robots and then burn a program into its memory so that you can alter its behavior. The neat thing about these is that they are probably fun for kids and adults alike. If you have a nephew or niece you might buy them one of these things and then help them build it. There are quite a few arrangements that you can build and program.
    http://shop.lego.com/ByTheme/Product...527&cn=17&d=70

  5. #5
    Join Date
    Jun 2002
    Location
    Germany
    Posts
    1,557

    Re: Learning Embedded?

    Quote Originally Posted by kberson View Post
    I am wondering if there's a way to learn embedded on your own. Are there tools available to teach-yourself embedded?
    Absolutely!

    Embedded system programming has experienced a bit of a boom in the last 10 years or so. The quality and availability of tools has drastically improved.

    One of the best ways to learn about embedded system programming is to engage in simple embedded system programming and accompany these investigations with some literature.

    You need to consider what kind of embedded system programming is of interest to you. Will you want to focus on smaller firmware applications such as commercial household, or large applications such as multimedia. To experience smaller applications you need to acquire a so-called micro-controller starter kit. There are really nice starter kits available for tiny controllers such as PIC, Zilog, 8051, etc. Larger systems such as ARM are also readily available but more expensive. A good starter kit from Zilog might be less than 100 dollars or so. It will include everything you need to develop in C and/or assembler and program a chip, as well as a rudimentary debug interface.

    Look for literature from authors Jean Labrosse, Stuart Ball, Michael Barr. You can always ask detailed questions here and if I happen to be around, I can probably answer them. There are also other board members with experience in embedded.

    Chris.
    You're gonna go blind staring into that box all day.

  6. #6
    Join Date
    Apr 2007
    Location
    Mars NASA Station
    Posts
    1,436

    Re: Learning Embedded?


    One thing you could do is research some kits on the internet. There are science project kits you can buy where you can write programs for devices and then burn the programs to the chip. There are these neat leggo toys that allow you to build robots and then burn a program into its memory so that you can alter its behavior. The neat thing about these is that they are probably fun for kids and adults alike. If you have a nephew or niece you might buy them one of these things and then help them build it. There are quite a few arrangements that you can build and program.
    Which starter kit you all recommended ?
    Thanks for your help.

  7. #7
    Join Date
    Jun 2002
    Location
    Germany
    Posts
    1,557

    Re: Learning Embedded?

    Quote Originally Posted by Peter_APIIT View Post
    Which starter kit... ?
    It depends on what you want to do and whom you ask.

    I have had the opportunity to use very many starter kits and I also design my own boards.

    You have to identify your target price and performance class. Usually price and performance scales with the CPU architecture: low-cost/low-performance 8-bit-->16-bit-->high-cost/high-performance 32-bit-->64-bit.

    I have had good experiences with Freescale, Zilog, Infineon, Renesas, Fujitsu, NEC, ARM, ST-Microeoectronics, etc.

    A very good introduction to the 32-bit world might be a starter kit featuring the STM32 Arm core from ST-Microelectronics. These starter kits come with demo compilers and the Ride-7 debug interface. I was impressed with the stability and performance/cost ratio of the Ride-7 debugger.

    If you are interested in embedded Linux, then you might check out Arm11 starter kits. These are a bit more expensive costing a few hundreds of dollars.

    A good choice for 8-bit low-cost would be a Z80 (Zilog), a PIC or any derivative of (8051). There is a wealth of information available to the student of embedded. To be specific, there is a very popular starter kit called the "Zilog Z8 Encore". This kit should run about 50 dollars. It is reasonably priced and has good tools.

    Sincerely, Chris.
    You're gonna go blind staring into that box all day.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured