How to Learn an Embedded System
Learning an embedded system includes learning both software and hardware aspects. Embedded systems each have different features and operational characteristics, and will require some initial learning to get a basic setup working. You'll need to learn how to write and compile code, load the compiled code into the memory of the embedded system and then cause the embedded microcontroller (or processor) to execute the code. A simple test program can be used to tell if your embedded system is working. Once the test program is working, you can move on to learn more advanced features of the embedded system.
Things You'll Need
- C programming book
- Embedded C programming book, preferably tailored to the embedded system you want to learn
- PC (desktop or laptop)
- Development board
- Embedded C compiler compatible with the microcontroller on the development board
- Microcontroller documentation
Instructions
-
-
1
Learn the basics of the C programming language. C is a good language to learn because many (if not all) embedded systems will have a C compiler available. A C programming book, such as "C Programming: A Modern Approach, 2nd Edition" by K.N. King, can help you learn C.
-
2
Learn the basics of C for embedded systems. Once you understand C, you can move on to understand how the C language can be used for embedded systems. An embedded C programming book, such as "Programming Embedded Systems in C and C ++," can help. If you know the microcontroller you want to learn, for instance the Atmel AVR, you can get a book such as "Embedded C programming and the Atmel AVR."
-
-
3
Buy or borrow an embedded system development board. For example, Atmel offers the ATAVR Xplain evaluation and demonstration kit for the ATxmega128A1 microcontroller. The Xplain kit, at around $30, is an inexpensive embedded system to learn with. The PIC microcontrollers from Microchip are also popular embedded systems to learn.
-
4
Buy or download a compiler/development environment for the microcontroller on the development board. For instance, if you are learning the Atmel AVR ATxmega128A1, then you can download the AVR IDE from Atmel and use the GNU C compiler or a commercially available C compiler for the AVR, such as the one sold by IAR.
-
5
Become familiar with the features and operation of your embedded system. You'll want to understand the memory organization, peripheral operations (e.g., timers, data ports, etc.) and interrupt operation.
-
6
Test your setup by compiling and running a basic program. Your test program should do something simple and easily observed, such as flashing an LED on the development board.
-
7
Learn more advanced features of your embedded system by compiling and running programs that exercise different features and peripherals. Write code using timers, data communication ports, analog-to-digital and digital-to-analog converters, and any other embedded system peripherals you are interested in.
-
1
Tips & Warnings
Look for sample code and application notes on manufacturers' websites.
Hobbyist websites devoted to specific processor or families of processors, for example AVRFreaks.com, have example projects, code and forums where you can ask questions of more experienced users.
Learning a new embedded system can be difficult and frustrating at first. So, be patient and remember to pay attention to each detail. If after several attempts you are still unable to get your embedded system working, seek help from the manufacturer's website or a hobbyist website.
Use caution when handling tools or other metal objects near an embedded development board because a dropped tool can short out components and damage the board.
Embedded system evaluation boards often have open, exposed circuit boards, so exercise caution to avoid getting shocked.
References
Resources
- Photo Credit integrated circuit image by dip from Fotolia.com