ADVANCED INDUSTRIAL LEVEL TRAINING IN LINUX BASED EMBEDDED SYSTEMS

ADVANCED INDUSTRIAL LEVEL TRAINING IN LINUX BASED EMBEDDED SYSTEMS
ADMISSIONS OPEN

Search This Blog

Showing posts with label EMBEDDED C. Show all posts
Showing posts with label EMBEDDED C. Show all posts

Thursday, 4 July 2013

WHAT IS DIFFERENT ABOUT EMBEDDED PROGRAMMING ??


Embedded programs must work closely with the specialized components and custom circuitry that makes up the hardware.  Unlike programming on top of a full-function operating system, where the hardware details are removed as much as possible from the programmer’s notice and control, most embedded programming acts directly with and on the hardware.  This includes not only the hardware of the CPU, but also the hardware which makes up all the peripherals (both on-chip and off-chip) of the system.  Thus an embedded programmer must have a good knowledge of hardware, at least as it pertains to writing software that correctly interfaces with and manipulates that hardware.  This knowledge will often extend to specifying key components of the hardware (microcontroller, memory devices, I/O devices, etc), and in smaller organizations will often go as far as designing and laying out (as a printed circuit board) the hardware.  An embedded programmer will also need to have a good understanding of debugging equipment such as multimeters, oscilloscopes, logic analysers and the like.
Another difference from more general purpose computers is that most (but not all) embedded systems are quite limited as compared to the former.  The microcomputers used in embedded systems may have program memory sizes of a few thousand to a few hundred thousand bytes rather than the gigabytes in the desktop machine, and will typically have even less data (RAM) memory than program memory.  Further, the processors used will often be smaller 8 and 16 bit devices as opposed to the 32 bit and larger devices found in a desktop (although small 32-bit microcontrollers are now under a dollar in moderate quantities, which is amazingly amazing).

INTRODUCTION TO EMBEDDED PROGRAMMING


Embedded programming is the term for the computer programming that lives in and operates the great many computer-controlled devices that surround us in our homes, cars, workplaces and communities.  For every desktop or notebook computer you have, you may have a dozen or more (perhaps a great deal more) microcontrollers quietly doing their embedded duty, and in these devices most people don’t even realize there’s a computer running a program.  But there is, and it is, and those programs had to be written, and that’s why the world needs embedded programming.  Embedded computers (microcontrollers) add intelligence to countless devices and systems, enabling those devices and systems to operate better, faster, more safely, more efficiently, more conveniently, more usefully, and in many cases allowing the very existence of devices and systems that could not be built otherwise.  Spend some time looking around you and trying to perceive where microcontrollers are working, and you will begin to get a sense of how ubiquitous they have become since their invention some 40 years ago.
On top of all that, many people, myself included, find embedded programming a particularly fascinating and rewarding branch of the programming tree, and we just like to program embedded systems.  In ways very different from desktop or mainframe programming, embedded programs make stuff do stuff, and to an embedded programmer, stuff doing stuff is endlessly cool.  If you’re a relative newcomer to embedded programming and want to learn more about the subject, then please read along.  I hope you’ll find some of the information you seek here.