CH#2 - Embedded Systems - Tools & Peripherals
CH#2 - Embedded Systems - Tools & Peripherals
CHAPTER TWO
Embedded Systems - Tools & Peripherals
Compilers and Assemblers
Compiler: A compiler is a computer program (or a set of programs) that transforms the source
code written in a programming language (the source language) into another computer language
(normally binary format). The most common reason for conversion is to create an executable
program. The name "compiler" is primarily used for programs that translate the source code
from a high-level programming language to a low-level language (e.g., assembly language or
machine code).
Cross-Compiler
If the compiled program can run on a computer having different CPU or operating system than
the computer on which the compiler compiled the program, then that compiler is known as a
cross-compiler.
Decompiler
A program that can translate a program from a low-level language to a high-level language is
called a decompiler.
Language Converter
A program that translates programs written in different high-level languages is normally called
a language translator, source to source translator, or language converter.
A compiler is likely to perform the following operations −
Preprocessing
Parsing
Semantic Analysis (Syntax-directed translation)
Code generation
Code optimization
Assemblers
An assembler is a program that takes basic computer instructions (called as assembly language)
and converts them into a pattern of bits that the computer's processor can use to perform its
basic operations. An assembler creates object code by translating assembly instruction
mnemonics into opcodes, resolving symbolic names to memory locations. Assembly language
uses a mnemonic to represent each low-level machine operation (opcode).
Debugging Tools in an Embedded System
Debugging is a methodical process to find and reduce the number of bugs in a computer
program or a piece of electronic hardware, so that it works as expected. Debugging is difficult
when subsystems are tightly coupled, because a small change in one subsystem can create bugs
1
Real Time and Embedded System CH#2 – ES Tools and Peripherals By: Lecturer Abebe A. (MSC in Computer Science)
in another. The debugging tools used in embedded systems differ greatly in terms of their
development time and debugging features.
We will discuss here the following debugging tools −
Simulators
Microcontroller starter kits
Emulator
Simulators
Code is tested for the MCU / system by simulating it on the host computer used for code
development. Simulators try to model the behavior of the complete microcontroller in
software.
Functions of Simulators
A simulator performs the following functions −
Defines the processor or processing device family as well as its various versions for the
target system.
Monitors the detailed information of a source code part with labels and symbolic arguments
as the execution goes on for each single step.
Provides the status of RAM and simulated ports of the target system for each single step
execution.
Monitors system response and determines throughput.
Provides trace of the output of contents of program counter versus the processor registers.
Provides the detailed meaning of the present command.
Monitors the detailed information of the simulator commands as these are entered from the
keyboard or selected from the menu.
Supports the conditions (up to 8 or 16 or 32 conditions) and unconditional breakpoints.
Provides breakpoints and the trace which are together the important testing and debugging
tool.
Facilitates synchronizing the internal peripherals and delays.
Microcontroller Starter Kit
A microcontroller starter kit consists of −
Hardware board (Evaluation board)
In-system programmer
Some software tools like compiler, assembler, linker, etc.
Sometimes, an IDE and code size limited evaluation version of a compiler.
A big advantage of these kits over simulators is that they work in real-time and thus allow for
easy input/output functionality verification. Starter kits, however, are completely sufficient and
the cheapest option to develop simple microcontroller projects.
2
Real Time and Embedded System CH#2 – ES Tools and Peripherals By: Lecturer Abebe A. (MSC in Computer Science)
Emulators
An emulator is a hardware kit or a software program or can be both which emulates the
functions of one computer system (the guest) in another computer system (the host), different
from the first one, so that the emulated behavior closely resembles the behavior of the real
system (the guest).
Emulation refers to the ability of a computer program in an electronic device to emulate
(imitate) another program or device. Emulation focuses on recreating an original computer
environment. Emulators have the ability to maintain a closer connection to the authenticity of
the digital object. An emulator helps the user to work on any kind of application or operating
system on a platform in a similar way as the software runs as in its original environment.
Peripheral Devices in Embedded Systems
Embedded systems communicate with the outside world via their peripherals, such as
following: -
Serial Communication Interfaces (SCI) like RS-232, RS-422, RS-485, etc.
Synchronous Serial Communication Interface like I2C, SPI, SSC, and ESSI
Universal Serial Bus (USB)
Multi Media Cards (SD Cards, Compact Flash, etc.)
Networks like Ethernet, LonWorks, etc.
Fieldbuses like CAN-Bus, LIN-Bus, PROFIBUS, etc.
imers like PLL(s), Capture/Compare and Time Processing Units.
Discrete IO aka General Purpose Input/Output (GPIO)
Analog to Digital/Digital to Analog (ADC/DAC)
Debugging like JTAG, ISP, ICSP, BDM Port, BITP, and DP9 ports
Criteria for Choosing Microcontroller
While choosing a microcontroller, make sure it meets the task at hand and that it is cost
effective. We must see whether an 8-bit, 16-bit or 32-bit microcontroller can best handle the
computing needs of a task. In addition, the following points should be kept in mind while
choosing a microcontroller: -
Speed: What is the highest speed the microcontroller can support?
Packaging: Is it 40-pin DIP (Dual-inline-package) or QFP (Quad flat package) - This is
important in terms of space, assembling, and prototyping the end-product.
Power Consumption: This is an important criterion for battery-powered products.
Amount of RAM and ROM on the chip.
Count of I/O pins and Timers on the chip.
3
Real Time and Embedded System CH#2 – ES Tools and Peripherals By: Lecturer Abebe A. (MSC in Computer Science)
Cost per Unit − This is important in terms of final cost of the product in which the
microcontroller is to be used.
Further, make sure you have tools such as compilers, debuggers, and assemblers, available
with the microcontroller. The most important of all, you should purchase a microcontroller
from a reliable source.
Embedded Systems - 8051 Microcontroller
Brief History of 8051
The first microprocessor 4004 was invented by Intel Corporation.
8085 and 8086 microprocessors were also invented by Intel.
In 1981, Intel introduced an 8-bit microcontroller called the 8051.
o It was referred as system on a chip because it had 128 bytes of RAM, 4K byte of
on-chip ROM, two timers, one serial port, and 4 ports (8-bit wide), all on a single
chip.
o When it became widely popular, Intel allowed other manufacturers to make and
market different flavors of 8051 with its code compatible with 8051.
o It means that if you write your program for one flavor of 8051, it will run on other
flavors too, regardless of the manufacturer.
o This has led to several versions with different speeds and amounts of on-chip RAM.
8051 Flavors / Members
8052 microcontroller − 8052 has all the standard features of the 8051 microcontroller
as well as an extra 128 bytes of RAM and an extra timer. It also has 8K bytes of on-
chip program ROM instead of 4K bytes.
8031 microcontroller − It is another member of the 8051 family. This chip is often
referred to as a ROM-less 8051, since it has 0K byte of on-chip ROM. You must add
external ROM to it in order to use it, which contains the program to be fetched and
executed. This program can be as large as 64K bytes. But in the process of adding
external ROM to the 8031, it lost 2 ports out of 4 ports. To solve this problem, we can
add an external I/O to the 8031
Comparison between 8051 Family Members
The following table compares the features available in 8051, 8052, and 8031.
Feature 8051 8052 8031
ROM(bytes) 4K 8K 0K
Timers 2 3 2
4
Real Time and Embedded System CH#2 – ES Tools and Peripherals By: Lecturer Abebe A. (MSC in Computer Science)
I/O pins 32 32 32
Serial port 1 1 1
Interrupt sources 6 8 6
Features of 8051 Microcontroller
An 8051 microcontroller comes bundled with the following features −
4KB bytes on-chip program memory (ROM)
128 bytes on-chip data memory (RAM)
Four register banks
128 user defined software flags
8-bit bidirectional data bus
16-bit unidirectional address bus
32 general purpose registers each of 8-bit
16 bit Timers (usually 2, but may have more or less)
Three internal and two external Interrupts
Four 8-bit ports,(short model have two 8-bit ports)
16-bit program counter and data pointer
8051 may also have a number of special features such as UARTs, ADC, Op-amp, etc.
Block Diagram of 8051 Microcontroller
The following illustration shows the block diagram of an 8051 microcontroller −