This Wiki talks about microprocessors, in the field of digital control systems. We will discuss embedded systems, real-time operating systems, and other topics of interest. It is important to realize that embedded systems rarely have display capabilities, and if they do have displays, they are usually limited to small text-only LCD displays. The challenge of programming an embedded system then is that it is difficult to get real-time feedback from the system without a display. It is common to use a simple serial interface for diagnostic purposes, for example by connecting to a PC running terminal software via a RS-232 to USB adapter. Also, embedded systems usually have very strict memory limitations, processor limitations, and speed limitations that must play a factor in designing an embedded system, and programming an embedded computer. This Wiki talks about some of the specific issues involved in programming an embedded computer. It also covers some basic topics such as microprocessor architectures, FPGAs, and some general low-level computing topics. While many of the issues discussed in this Wiki may apply to PCs, and non-embedded computers, this Wiki remains focused on topics that apply to embedded systems only.

Microprocessor Basics

Effectively programming an embedded system, and implementing it reliably requires the engineer to know many of the details of the system architecture. Section 1 of the Embedded Systems book will cover some of the basics of microprocessor architecture. This information might not apply to all embedded computers, and much of it may apply to computers in general. This book can only cover some basic concepts, because the actual embedded computers available on the market are changing every day, and it is the engineers responsibility to find out what capabilities and limitations their particular systems have. Read more about 8051 Micro-Controller»

Programming Embedded Systems

Most C programmers are spoiled because they program in environments where not only is there a standard library implementation, but there are frequently a number of other libraries available for use. The cold fact is, that in embedded systems, there rarely are many of the libraries that programmers have grown used to, but occasionally an embedded system might not have a complete standard library, if there is a standard library at all. Few embedded systems have capability for dynamic linking, so if standard library functions are to be available at all, they often need to be directly linked into the executable. Often times, because of space concerns, it is not possible to link in an entire library file, and programmers are often forced to "brew their own" standard c library implementations if they want to use them at all. While some libraries are bulky and not well suited for use on microcontrollers, many development systems still include the standard libraries which are the most common for C programmers.

C remains a very popular language for microcontroller developers due to the code efficiency and reduced overhead and development time. C offers low-level control and is considered more readable than assembly. Many free C compilers are available for a wide variety of development platforms. The compiliers are part of an IDEs with ICD support, breakpoints, single-stepping and an assembly window. The performance of C compiliers has improved considerably in recent years, and they are claimed to be more or less as good as assembly, depending on who you ask. Most tools now offer options for customizing the compiler optimization. Additionally, using C increases portability, since C code can be compiled for different types of processors. more»

Real Time Operating Systems

A Real-Time Operating System (RTOS) is a computing environment that reacts to input within a specific time period. A real-time deadline can be so small that system reaction appears instantaneous. The term real-time computing has also been used, however, to describe "slow real-time" output that has a longer, but fixed, time limit. more»


Having our embedded system, with a fancy operating system is all well and good. However, embedded computers are worthless if they can't interface with the outside world. The chapters in this section will talk about some of the considerations involved with interfacing embedded systems. more»

Particular Microprocessor Families

This module of Embedded Systems is a very brief review of the most popular microprocessor families used in embedded systems. We will go into more detail in the next few modules. Each one of these microprocessor families has an entire module dedicated to that family of processors. more»

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License