SYLLABUS
overview
• UNIT I: INTRODUCTION (4 Hrs.)
• Introduction to Embedded Systems
• Classification of Embedded System
• processor selection in Embedded System
• Components of Embedded systems
• Hardware and Software Systems Development tools:
• Assembler
• cross compiler
• Simulator
• ICE(in circuit emulator)
• IDE (integrated development environment)
Embedded System:
Embedded System definition
• System definition
• A way of working, organizing or performing one or many tasks according to
a fixed set of rules, program or plan.
• Examples of Systems Time display system – A watch , Automatic cloth
washing system – A washing machine.
• Embedded system definition-
• 1.Embedded system is a system that has software embedded into
computer-hardware, which makes a system dedicated for an application (s)
or specific part of an application or product or part of a larger system.
• 2.An embedded system is one that has a dedicated purpose software
embedded in a computer hardware.
• 3.It is a dedicated computer based system for an application(s) or product.
It may be an independent system or a part of large system. Its software
usually embeds into a ROM (Read Only Memory) or flash.
• 3 Main embedded components
• 1.Embeds hardware to give computer like
functionalities
• 2. Embeds main application software generally
into flash or ROM.
• 3. Embeds a real time operating system ( RTOS),
which supervises the application software tasks
running on the hardware.
• Constraints of an Embedded System Design are-
• Available system-memory
• Available processor speed
• Limited power dissipation
Types of embedded systems
• Based on different criteria-
• 1. based on generation
• 2. based on complexity
• 3. based on functionality
• Classification based on generation:-
• 1 First generation (makes use of 8 bit microprocessor
or microcontroller)
• 2. Second generation (makes use of 16 bit
microprocessor or microcontroller)
• 3. Third generation(makes use of 32 bit
microprocessor or 16 bit microcontroller)
• 4. Fourth generation( makes use of SoC,
reconfigurable processors, multicore processors)
• Classification based on complexity &
performance
• 1.Small scale embedded system Designed
with a single (8 or 16) bit microcontroller.
• Have a little hardware & software complexity
• Involves board level design.
• Tools used:-editor,assembler,cross assembler.
2. Medium scale embedded system
• Usually designed with a single or few 16 or 32
bit microcontrollers or DSP or RISC computers.
• They have both hardware & software
complexities .
• Tools used--- RTOS, source code engineering
tool, simulator, debugger & IDE.
3. Large scale/complex embedded system
• They have enormous hardware & software
complexities. Hence they need scalable processors
or configurable processors & PLAs.
• Development tools for these systems may not be
readily available at a reasonable cost or may not
be available at all.
• Hence sometimes a compiler or retargetable
compiler have to be developed.
• Retargetable compiler:- It is a compiler that
configures according to the given target
configuration.
Categories of Embedded Systems
• Embedded systems may be classified according to
functionality and complexity
• Based on the functionality, we will broadly divide the
embedded systems into the four categories.
• 1. Stand-alone Embedded Systems
• These systems work in a stand-alone mode, taking some
inputs and producing some outputs.
• The inputs can be electrical signals from some sensors or
commands from a user such as pressing a button. The output
can be electrical signals to drive another system or an LED or
LCD display for displaying some parameters.
• Examples--- Process control in manufacturing units, in
automobiles, toys, air conditioners, CD players , measuring
instruments etc.
2. Real-Time Embedded Systems
• Some embedded systems have to carry out
specific tasks in a specified time. Such systems
are called real-time embedded systems.
• For instance, consider the example of a
system which has to open a valve within 30
milliseconds when the humidity crosses a
particular threshold.
• If this job is not carried out within that 30
milliseconds period, there may be a disaster.
• 3. Networked Appliances
• Some embedded systems are connected to a
network, typically based on TCP/IP
(Transmission Control Protocol/Internet
Protocol) protocol suite such as the Internet
or an Intranet of an organization.
• These systems are a brand of systems
emerged in recent years.
4. Mobile Devices
• With the arrival of wireless networks that can
support very high speeds, the mobile devices are
now capable of supporting high data rate
services in addition to the voice services.
• Accessing the Internet services such as email,
web etc. can be done while a person is on the
move.
• Such devices need to run a powerful mobile
operating system.
Processor selection in embedded system
Processor Selection In Embedded System
• Small scale embedded system uses 8/16 bit microcontroller-
8015,pic16f8xx,68hc11
• Medium scale embedded system uses- 16 bit microcontroller.
• Large scale embedded system uses 32 bit microcontroller.-ARM
LPC2000 SERIES,CORTEX.
• Application Specific Instruction-Set Processor (ASIP) (b) DSP or (c)
Media processor or (d) IO processor or (e) Network processor or (f)
A domain specific processor
• During the design of embedded system, the Care to be taken so
that, the processor should be underloaded nor overloaded.
• Underloaded processor-
• Overloaded processor-
MAJOR APPLICATION AREAS OF EMBEDDED SYSTEM
ORGNISATION OF EMBEDDED SYSTEM
COMPONENTS OF EMBEDDED SYSTEM
HARDWARE & SOFTWARE DEVELOPMENT TOOLS
• ASSEMBLER-Assembler is SOFTWARE Program tool designed
to simplify the task of writing controller program. It accepts the
source codes in Assembly format and produces the 1s and 0s i.e.
binary codes. It instruct controller or processor, what operation
to perform.
• Therefore, User should be familiar with Processor/Controller
architecture and assembly language for writing assembly
programs.
• TYPES OF ASSEMBLERS
• Cross Assembler -Running on the computer other than one
for which it assembles the program.
• Native Assembler -Runs on the target processor can also be
known as ROM base Assembler.
• Macro Assembler -Defines sequence of Instruction as a
macro. Useful when code is too short to be written as a
subroutine.
Steps in program development
COMPILER
• Compiler- Translate programs written in some human
readable language into an equivalent set of opcode for
a particular processor.
• Compiler is specific to a processor. It almost always
runs on the host computer.
• A compiler that runs on one computer platform and
produces code for another is called cross compiler.
• Regardless of the input language ,the output of the the
cross compiler will be an object file.
• Compiler uses the complete sets of the codes. It may
also include the codes, functions and expressions from
the library routines.
• It creates a file called object file.
COMPILER OUTPUT FILES
DEVEOPMENT TOOLS CONTD…
• LINKER:- It is used to join many object files
into one file since large programs are
divided into smaller files.
• Link files contains binary code of all
combined modules. It produces .exe file.
• COMPILER AND CROSS COMPILER
• CROSS COMPILER:- Running on the
computer other than one for which it
compiles the program.
•DEBUGGER:-It is used to find the bugs in the
program. It allows detection of bugs by executing in
various modes such as –
single stepping execution
breakpoint execution
• SIMULATOR-It is a program that simulates a
hardware unit like emulator,peripherals, network
and I/O devices on a PC.
•A simulator remains independent of a particular
targeted system.
•A simulator is essentially software to simulate all
functions of an Embedded system circuit that
includes any additional memory, peripheral devices
and buses .
SIMULATOR CONTD…
• It defines the processor or processing device family as
well as it’s
• Various versions for the target system.
• It monitors the detailed information of a source code
part with labels and symbolic arguments as the
execution goes on for each single step.
• It provides the detailed information of the status of
RAM and ports
• Of the defined target system.
• It provides the detailed information of the status of
peripheral devices
• (simulated, assumed to be attached )with the defined
system.
SIMULATOR CONTD…
• It provides the detailed information of the
registers as the execution goes on for each
single step or for each single module.
• *The window on the screen provide the
following---
• The detailed information of the status of the
stack, ports of the defined microcontroller.
• *Program flow trace as the execution
continues.
• *It helps the window on the screen to provide
the detailed meaning of the present command.
• It monitors the detailed information of the
simulator commands as these are entered from
the keyboard or selected from the menu.
• It supports the conditional and unconditional
breakpoints.
• It facilitates synchronizing the internal peripherals
and delays.
• It simulates the inputs from interrupts, timers,
ports and peripherals. So it tests the codes for
these.
DETAILED DESIGN DEVELOPMENT PROCESS USING
SIMULATOR
HARDWARE TOOLS
• IN CIRCUIT EMULATOR
• LOGIC ANALYSER
• PROGRAMMER -
• a. MICROCONTROLLER PROGRAMMER
• b. PC BASED UNIVERSAL PROGRAMMER*
IDE(INTEGRATED DEVELOPMENT ENVIRONMENT)-
• Keil software development tools
IN- CIRCUIT EMULATOR(ICE)
• One of the oldest embedded debugging tools, that
substitutes it’s own internal processor for the one in your
target system.
• An in circuit emulator, often called an ICE, is an invaluable
software developers tool in embedded design. The processor
or microcontroller of the target hardware will be replaced by
the ICE.
• An ICE can emulate the replaced processor or uC in real time.
The developer loads the program into the emulator and can
then run, step and trace into it, much like it is done on PC:s.
• Many emulators have more advanced features like
performance analysis, coverage analysis, a trace buffer and
advanced trigger and breakpoint possibilities.
Characteristics of embedded system
• Requires real time performance.
• It should have a high reliability.
• Flexibility
• Developed around a real time operating
system(RTOS)
• Usually have a diskless, ROM boot.
• Designed for one specific task.
Characteristics & Requirements of Embedded Systems
Whatever be the category of the embedded system, they all have some common
requirements.
1. Reliability
Embedded systems have to work without being reset and (un)fortunately
they will not have the Ctrl-Alt-Del keys. This calls for a very reliable
hardware and software.
2. Cost
If an embedded system is designed for a very special purpose such as for
use in a nuclear plant, cost may not be the main issue.
However if the embedded system is designed for the mass market,then
cost will be a major consideration.
Total cost = NRE cost+ unit cost* no of units
Reducing the cost is of prime importance.
3. Power Consumption
Most of the embedded systems are portable (operate through
batteries) and not mains supply. In such a case, the power
consumption has to be minimized.
4. Processing Power
A wide variety of processors with varying processing powers are
available.
The right processor needs to be chosen keeping in view the required
processing power, memory and cost.
“Processor” a term used to refer to a micro-controller or a microprocessor
or a Digital Signal Processor (DSP) used in embedded systems.
Care to be taken that the processor not to be overloaded or under loaded.
5. Memory
•No secondary storage devices such as HDD on most Embedded systems.
• The memory chips available are only ROM to hold the program and
RAM to hold the data.
•Depending on the functionality, the program size and data size are
obtained and based on which memory requirements are derived.
6. Performance Constraints (involvement of RTOS)
•In real-time embedded systems, certain tasks have to be performed
within a specified time.
•The timing analysis is of importance for hard real time systems.
•In soft real-time systems, occasionally the task may not be performed in
time.
•The software developer needs to ascertain whether the embedded system
is a hard real-time system or a soft real-time system
Design Issues in Embedded system & Software Development
The designers of embedded systems have to deal with special issues which are
unique. These issues pose interesting challenges to the designers.
1. Co-design
•An embedded system consists of hardware and software.
•Which portion of the system should be implemented in
hardware and which portion in software is a major issue.
•A particular algorithm may be implemented either in
hardware or Software.
•Both approaches have their own advantage and
disadvantages.
2. Operating System
• Embedded system software without any OS.
Needs services such as memory management, input/output
management, process management to be implemented by
the developers.
• Embedded system software with RTOS
SERVICES PROVIDED BY RTOS are
1. BASIC OS FUNCTIONS(RESOURCE MANAGEMENT ETC.)
2. RTOS MAIN FUNCTIONS (task scheduling and interrupt
latency control, use of timers etc.)
3. Time management
4. Priority management
Necessity of RTOS (RTOS becomes essential to)----
• Handle multiple tasks efficiently & more effectively.
• Achieve perfection, correctness, security.
• Provide Effective scheduling.
• Achieve inter-task communication.
3. Code Optimization
•No worry for desktop application software developers on the
code optimization.
•In Embedded Systems,Since memory is constrained and
timing constraints are imposed, one has to optimize the
code to the maximum possible extent.
• Compilers does code optimization,
• Still the programmer has to optimize the code for faster
execution and less memory occupation.
4. Input /Output
In most embedded systems, the input devices have limited
functionality. For instance, a small keypad (with 8 or 12
function keys) only may be available for inputting data.
• Similarly, the output devices may be a small number of
LEDs, or a small LCD display with 2 lines and 8 to 12
characters per line.
• So with limited availability of I/O, the embedded system
designer has to manage the hardware & software
functionality.
5. Testing and Debugging
The embedded software cannot be tested on the target
hardware during the development phase.
•Need of a host system with the development tools for the
development and initial testing.
• Finally the software will be transferred to the target hardware
for final testing.