|
-
February 23rd, 2009, 08:02 AM
#1
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.
-
February 23rd, 2009, 08:28 AM
#2
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
-
February 23rd, 2009, 08:30 AM
#3
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.
-
February 23rd, 2009, 02:21 PM
#4
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
-
February 23rd, 2009, 02:23 PM
#5
Re: Learning Embedded?
 Originally Posted by kberson
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.
-
February 24th, 2009, 03:04 AM
#6
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.
-
February 24th, 2009, 06:56 AM
#7
Re: Learning Embedded?
 Originally Posted by Peter_APIIT
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|