0% found this document useful (0 votes)
25 views71 pages

Embedded Systems Notes

Uploaded by

avpoojitha26
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views71 pages

Embedded Systems Notes

Uploaded by

avpoojitha26
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 71

1

1
EMBEDDED SYSTEM :
AN INTRODUCTION

Unit Structure
1.0 Objectives
1.1 Introduction
1.2 Definition of Embedded System
1.3 History of Embedded System
1.4 Embedded System & General purpose computer
1.5 Classification of Embedded System
1.6 Application of Embedded System
1.7 Purpose of Embedded System
1.8 Review Questions
1.9 References & Further Reading

1.0 OBJECTIVES

 To understand what is an Embedded System and then define it


 Look at embedded systems from a historical point of view
 Classify embedded systems
 Look at certain applications & purposes of embedded systems

1.1 INTRODUCTION

This chapter introduces the reader to the world of


embedded systems. Everything that we look around us
today is electronic. The days are gone where almost
everything was manual. Now even the food that we eat is
cooked with the assistance of a microchip (oven) and the
ease at which we wash our clothes is due to the washing
machine. This world of electronic items is made up of
embedded system. In this chapter we will understand the
basics of embedded system right from its definition.

1.2 DEFINITION OF AN EMBEDDED SYSTEM

 An embedded system is a combination of 3 things:


a. Hardware
b. Software
c. Mechanical Components
And it is supposed to do one specific task only.
3

 Example 1: Washing Machine


A washing machine from an embedded systems point
of view has:
a. Hardware: Buttons, Display & buzzer, electronic circuitry.
b. Software: It has a chip on the circuit that holds the
software which drives controls & monitors the
various operations possible.
c. Mechanical Components: the internals of a
washing machine which actually wash the clothes
control the input and output of water, the chassis
itself.

 Example 2: Air Conditioner


An Air Conditioner from an embedded systems point
of view has:
a. Hardware: Remote, Display & buzzer, Infrared
Sensors, electronic circuitry.
b. Software: It has a chip on the circuit that holds the
software which drives controls & monitors the
various operations possible. The software
monitors the external temperature through the
sensors and then releases the coolant or
suppresses it.
c. Mechanical Components: the internals of an air
conditioner the motor, the chassis, the outlet, etc

 An embedded system is designed to do a specific job


only. Example: a washing machine can only wash
clothes, an air conditioner can control the temperature
in the room in which it is placed.

 The hardware & mechanical components will consist all


the physically visible things that are used for input,
output, etc.

 An embedded system will always have a chip (either


microprocessor or microcontroller) that has the code or
software which drives the system.

1.3 HISTORY OF EMBEDDED SYSTEM

 The first recognised embedded system is the


Apollo Guidance Computer(AGC) developed by MIT
lab.
 AGC was designed on 4K words of ROM & 256
words of RAM.
 The clock frequency of first microchip used in AGC was
1.024 MHz.
 The computing unit of AGC consists of 11
4
instructions and 16 bit word logic.
5

 It used 5000 ICs.


 The UI of AGC is known DSKY(display/keyboard)
which resembles a calculator type keypad with array
of numerals.
 The first mass-produced embedded system was
guidance computer for the Minuteman-I missile in
1961.
 In the year 1971 Intel introduced the world’s first
microprocessor chip called the 4004, was designed
for use in business calculators. It was produced by
the Japanese company Busicom.

1.4 EMBEDDED SYSTEM & GENERAL PURPOSE


COMPUTER

The Embedded System and the General purpose


computer are at two extremes. The embedded system is
designed to perform a specific task whereas as per
definition the general purpose computer is meant for
general use. It can be used for playing games, watching
movies, creating software, work on documents or
spreadsheets etc.

Following are certain specific points of difference


between embedded systems and general
purpose computers:

Criteria General Purpose Embedded system


Computer
Contents It is combination of It is combination of
generic hardware and special purpose hardware
a general purpose OS and embedded OS for
for executing a variety executing specific set of
of applications. applications
Operatin It contains It may or may not contain
g general purpose operating system.
System operating system
Alteration Applications are Applications are non-
s alterable by the user. alterable by the user.
Key factor Performanc is key Application
e” factor.
specific requirements are
key factors.
Power More Less
Consump
ti on
Respons Not Critical Critical for some
e Time applicatio
6

ns
7

1.5 CLASSIFICATION OF EMBEDDED SYSTEM

The classification of embedded system is based on


following criteria’s:
 On generation
 On complexity & performance
 On deterministic behaviour
 On triggering

1.5.1 On generation
1. First generation(1G):
⦿ Built around 8bit microprocessor & microcontroller.
⦿ Simple in hardware circuit & firmware developed.
⦿ Examples: Digital telephone keypads.

2. Second generation(2G):
⦿ Built around 16-bit µp & 8-bit µc.
⦿ They are more complex & powerful than 1G µp & µc.
⦿ Examples: SCADA systems

3. Third generation(3G):
⦿ Built around 32-bit µp & 16-bit µc.
⦿ Concepts like Digital Signal
Processors(DSPs), Application Specific
Integrated Circuits(ASICs) evolved.
⦿ Examples: Robotics, Media, etc.

4. Fourth generation:
⦿ Built around 64-bit µp & 32-bit µc.
⦿ The concept of System on Chips (SoC), Multicore
Processors evolved.
⦿ Highly complex & very powerful.
⦿ Examples: Smart Phones.

1.5.2 On complexity & performance


1. Small-scale:
⦿ Simple in application need
⦿ Performance not time-critical.
⦿ Built around low performance & low cost 8 or
16 bit µp/µc.
⦿ Example: an electronic toy

2. Medium-scale:
⦿ Slightly complex in hardware & firmware requirement.
⦿ Built around medium performance & low cost 16 or
32 bit µp/µc.
⦿ Usually contain operating system.
⦿ Examples: Industrial machines.
8

3. Large-scale:
⦿ Highly complex hardware & firmware.
⦿ Built around 32 or 64 bit RISC µp/µc or PLDs or Multicore
Processors.
⦿ Response is time-critical.
⦿ Examples: Mission critical applications.

1.5.3 On deterministic behaviour

⦿ This classification is applicable for “Real Time” systems.


⦿ The task execution behaviour for an embedded
system may be deterministic or non-deterministic.
⦿ Based on execution behaviour Real Time
embedded systems are divided into Hard and
Soft.

1.5.4 On triggering
⦿ Embedded systems which are “Reactive” in
nature can be based on triggering.
⦿ Reactive systems can be:
 Event triggered
 Time triggered

1.6 APPLICATION OF EMBEDDED SYSTEM

The application areas and the products in the embedded


domain are countless.
1. Consumer Electronics: Camcorders, Cameras.
2. Household appliances: Washing machine, Refrigerator.
3. Automotive industry: Anti-lock breaking system(ABS),
engine control.
4. Home automation & security systems: Air
conditioners, sprinklers, fire alarms.
5. Telecom: Cellular phones, telephone switches.
6. Computer peripherals: Printers, scanners.
7. Computer networking systems: Network routers
and switches.
8. Healthcare: EEG, ECG machines.
9. Banking & Retail: Automatic teller machines, point of sales.
10. Card Readers: Barcode, smart card readers.

1.7 PURPOSE OF EMBEDDED SYSTEM

1. Data Collection/Storage/Representation
 Embedded system designed for the purpose of data
collection performs acquisition of data from the
external world.
 Data collection is usually done for
storage,analysis, manipulation and transmission.
 Data can be analog or digital.
9

 Embedded systems with analog data capturing


techniques collect data directly in the form of analog
signal whereas embedded systems with digital data
collection mechanism converts the analog signal to
the digital signal using analog to digital converters.
 If the data is digital it can be directly captured by
digital embedded system.
 A digital camera is a typical example of an embedded
 System with data collection/storage/representation of data.
 Images are captured and the captured image may be
stored within the memory of the camera. The captured
image can also be presented to the user through a
graphic LCD unit.

2. Data communication
 Embedded data communication systems are deployed
in applications from complex satellite communication
to simple home networking systems.
 The transmission of data is achieved either by a wire-
line medium or by a wire-less medium.
 Data can either be transmitted by analog means or by
digital means.
 Wireless modules-Bluetooth, Wi-Fi.
 Wire-line modules-USB, TCP/IP.
 Network hubs, routers, switches are examples of
dedicated data transmission embedded systems.

3. Data signal processing


 Embedded systems with signal processing
functionalities are employed in applications
demanding signal processing like speech coding, audio
video codec, transmission applications etc.
 A digital hearing aid is a typical example of an
embedded system employing data processing.
 Digital hearing aid improves the hearing capacity of
hearing impaired person

4. Monitoring
 All embedded products coming under the medical
domain are with monitoring functions.
 Electro cardiogram machine is intended to do the
monitoring of the heartbeat of a patient but it cannot
impose control over the heartbeat.
 Other examples with monitoring function are digital
CRO, digital multi-meters, and logic analyzers.

5. Control
 A system with control functionality contains both
sensors and actuators.
10

 Sensors are connected to the input port for


capturing the changes in environmental variable and
the actuators connected to the output port are
controlled according to the changes in the input
variable.
 Air conditioner system used to control the room
temperature to a specified limit is a typical example
for CONTROL purpose.

6. Application specific user interface


 Buttons, switches, keypad, lights, bells, display units
etc are application specific user interfaces.
 Mobile phone is an example of application specific
user interface.
 In mobile phone the user interface is provided
through the keypad, system speaker, vibration alert
etc.

1.8 REVIEW QUESTIONS

1. Define Embedded System with the help of


Microwave Owen as an example
2. Differentiate between general purpose computers
& embedded systems
3. Give a classification of embedded systems
4. List some applications of embedded systems
5. Explain the various possible purposes of using
and embedded system.

1.9 REFERENCES & FURTHER READING

1. Programming Embedded systems in C++ by Michael Barr


2. Introduction to Embedded systems – Shibu K. V


11


12

3
CORE THE OF EMBEDDED SYSTEM

Unit Structure
6.0 Objectives
6.1 Introduction
6.2 Core of embedded systems
6.2.1 General purpose and domain specific processor.
6.2.1.1 Microprocessors
6.2.1.2 Microcontrollers.
6.2.1.3 Digital signal processors
6.2.2 Application Specific Integrated Circuits. (ASIC)
6.2.3 Programmable logic devices(PLD’s)
6.2.4 Commercial off-the-shelf components(COTs)
6.3 Sensors & Actuators
6.4 Communication Interface
6.5 Review Questions
6.6 References & Further Reading

3.0 OBJECTIVES

After reading this chapter you will be able to:


 Understand the different types of core i.e processor
 Understand difference between microprocessor
& microcontroller
 Understand the classification of processors based
on Bus Architecture, Instruction set Architecture and
Endianness.
 Have an overview of processors from most simple
and cheap to most expensive and complex, powerful
 Understand what are sensors and actuators,
communication interfaces

3.1 INTRODUCTION

The first two chapters attempted on explain what


an embedded system is about and what the working parts
are. This chapter attempts to go deeper and explain the
core of embedded system along with other related topics.
13

3.2 CORE OF EMBEDDED SYSTEMS

Embedded systems are domain and application


specific and are built around a central core. The core of the
embedded system falls into any of the following categories:

1. General purpose and Domain Specific Processors


1.1.Microprocessors
1.2.Microcontrollers
1.3.Digital Signal Processors
2. Application Specific Integrated Circuits. (ASIC)
3. Programmable logic devices(PLD’s)
4. Commercial off-the-shelf components (COTs)

3.2.1 GENERAL PURPOSE AND DOMAIN SPECIFIC


PROCESSOR.

• Almost 80% of the embedded systems are processor/


controller based.

• The processor may be microprocessor or a


microcontroller or digital signal processor, depending
on the domain and application.

3.2.1.1 MICROPROCESSORS
 A microprocessor is a silicon chip representing a central
processing unit.

 A microprocessor is a dependent unit and it requires the


combination of other hardware like memory, timer unit,
and interrupt controller, etc. for proper functioning.

 Developers of microprocessors.
o Intel – Intel 4004 – November 1971(4-bit).
o Intel – Intel 4040.
o Intel – Intel 8008 – April 1972.
o Intel – Intel 8080 – April 1974(8-bit).
o Motorola – Motorola 6800.
o Intel – Intel 8085 – 1976.
o Zilog - Z80 – July 1976.

 Architectures used for processor design are Harvard or


Von- Neumann.
14

Harvard architecture Von-Neumann architecture


▣ It has separate buses for ▣ It shares single common
instruction as well as bus for instruction and
data fetching. data fetching.

▣ Easier to pipeline, so high ▣ Low performance as


performance can be compared to Harvard
achieve. architecture.
▣ It is cheaper.
▣ Comparatively high cost. ▣ Accidental corruption of
▣ Since data memory and program memory may
program memory are occur if data memory and
stored physically in program memory are
different locations, no stored physically in the
chances exist for accidental same chip,
corruption of program
memory.

 RISC and CISC are the two common Instruction


Set Architectures (ISA) available for processor design.

RISC CISC
▣ Reduced Instruction Set ▣ Complex Instruction Set
Computing Computing
▣ It contains lesser number of ▣ It contains greater number
instructions. of instructions.
▣ Instruction pipelining ▣ Instruction pipelining
and increased feature does not exist.
execution speed. ▣ Non-orthogonal set(all
▣ Orthogonal instructions are not
allowed to operate on any
instruction register and use any
set(allows each instruction addressing mode.
to operate on any register ▣ Operations are performed
and use any addressing either on registers or
mode. memory depending on
▣ Operations are performed instruction.
on registers only, only ▣ The number of
memory operations are general
load and store. purpose registers are very
▣ A larger number of limited.
registers ▣ Instructions are like
are available. macros in C language. A
programmer can achieve
▣ Programmer needs to write the desired functionality
more code to execute a with a single instruction
task since instructions are which in turn provides the
simpler ones. effect of using more
simpler single instruction
in RISC.
15

▣ It is single, fixed ▣ It is variable


length instruction. length instruction.
16

▣ Less silicon usage and pin ▣ More silicon usage


count. since more additional
decoder logic is required
to implement the complex
instruction decoding.
▣ With Harvard ▣ Can be Harvard or Von-
Architecture. Neumann Architecture.

 Endiannes
o Endianness specifies the order which the data is
stored in the memory by processor operations in a
multi byte system.

o Based on Endiannes processors can be of two types:


1. Little Endian Processors
2. Big Endian Processors

1. Little-endian means lower order data byte is stored in


memory at the lowest address and the higher order
data byte at the highest address. For e.g, 4 byte long
integer Byte3, Byte2, Byte1, Byte0 will be store in the
memory as follows:

Base Byte 0 (Base address)


address+0
Base Byte 1 (Base
address+1 address+1)
Base Byte 2 (Base
address+2 address+2)
Base Byte 3 (Base
address+3 address+3)

2. Big-endian means the higher order data byte is stored


in memory at the lowest and the lower order data byte
at the highest address. For e.g. a 4 byte integer Byte3,
Byte2, Byte1, Byte0 will be stored in the memory as
follows:
17

Base Byte 3 (Base address)


address+0
Base Byte 2 (Base
address+1 address+1)
Base Byte 1 (Base
address+2 address+2)
Base Byte 0 (Base
address+3 address+3)

3.2.1.2 MICROCONTROLLERS.

 A microcontroller is a highly integrated chip that


contains a CPU, scratch pad RAM, special and
general purpose register arrays,on chip ROM/FLASH
memory for program storage , timer and interrupt
control units and dedicated I/O ports.

 Texas Instrument’s TMS 1000 Is considered as the


world’s first microcontroller.

 Some embedded system application require only 8


bit controllers whereas some requiring superior
performance and computational needs demand
16/32 bit controllers.

 The instruction set of a microcontroller can be RISC


or CISC.

 Microcontrollers are designed for either general


purpose application requirement or domain specific
application requirement.

3.2.1.3 Digital Signal Processors

 DSP are powerful special purpose 8/16/32 bit


microprocessor designed to meet the
computational demands and power constraints of
today’s embedded audio, video and communication
applications.

 DSP are 2 to 3 times faster than general purpose


microprocessors in signal processing applications.
This is because of the architectural difference
between DSP and general purpose microprocessors.
18

 DSPs implement algorithms in hardware which


speeds up the execution whereas general purpose
processor implement the algorithm in software and
the speed of execution depends primarily on the
clock for the processors.

 DSP includes following key units:


i. Program memory: It is a memory for storing the
program required by DSP to process the data.

ii. Data memory: It is a working memory for storing


temporary variables and data/signal to be
processed.

iii. Computational engine: It performs the signal


processing in accordance with the stored program
memory computational engine incorporated many
specialized arithmetic units and each of them
operates simultaneously to increase the execution
speed. It also includes multiple hardware shifters
for shifting operands and saves execution time.

iv. I/O unit: It acts as an interface between the outside


world and DSP. It is responsible for capturing
signals to be processed and delivering the
processed signals.

 Examples: Audio video signal processing,


telecommunication and multimedia applications.

 SOP(Sum of Products) calculation, convolution,


FFT(Fast Fourier Transform), DFT(Discrete
Fourier Transform), etc are some of the
operation performed by DSP.

3.2.2 Application Specific Integrated Circuits. (ASIC)


 ASICs is a microchip design to perform a specific
and unique applications.

 Because of using single chip for integrates several


functions there by reduces the system
development cost.

 Most of the ASICs are proprietary (which having


some trade name) products, it is referred as
Application Specific Standard Products(ASSP).

 As a single chip ASIC consumes a very small area


in the total system. Thereby helps in the design of
smaller system with high capabilities or
functionalities.
19

 The developers of such chips may not be


interested in revealing the internal detail of it .

3.2.3 Programmable logic devices(PLD’s)


 A PLD is an electronic component. It used to build
digital circuits which are reconfigurable.

 A logic gate has a fixed function but a PLD does not


have a defined function at the time of manufacture.

 PLDs offer customers a wide range of logic capacity,


features, speed, voltage characteristics.

 PLDs can be reconfigured to perform any number of


functions at any time.

 A variety of tools are available for the designers of


PLDs which are inexpensive and help to develop,
simulate and test the designs.

 PLDs having following two major types.

1) CPLD(Complex Programmable Logic Device):


CPLDs offer much smaller amount of logic up to
1000 gates.

2) FPGAs(Field Programmable Gate Arrays):


It offers highest amount of performance as
well as highest logic density, the most features.

 Advantages of PLDs :-
1) PLDs offer customer much more flexibility
during the design cycle.

2) PLDs do not require long lead times for


prototypes or production parts because PLDs
are already on a distributors shelf and ready
for shipment.

3) PLDs can be reprogrammed even after a piece


of equipment is shipped to a customer

3.2.4 Commercial off-the-shelf components(COTs)


1) A Commercial off the Shelf product is one which is
used ’as- is’.

2) The COTS components itself may be develop around


a general purpose or domain specific processor or
an ASICs or a PLDs.
20

3) The major advantage of using COTS is that they are


readily available in the market, are chip and a
developer can cut down his/her development time to
a great extent

4) The major drawback of using COTS components in


embedded design is that the manufacturer of the
COTS component may withdraw the product or
discontinue the production of the COTS at any time if
rapid change in technology occurs.

5) Advantages of COTS:
1) Ready to use
2) Easy to integrate
3) Reduces development time

6) Disadvantages of COTS:
1) No operational or manufacturingstandard
(all proprietary)

2) Vendor or manufacturer may discontinue


production of a particular COTS product

3.3 SENSORS & ACTUATORS

 Sensor
 A Sensor is used for taking Input
 It is a transducer that converts energy from one
form to another for any measurement or control
purpose
 Ex. A Temperature sensor

 Actuator
 Actuator is used for output.
 It is a transducer that may be either mechanical or
electrical which converts signals to corresponding
physical actions.
 Ex. LED (Light Emitting Diode)
 LED is a p-n junction diode and contains a CATHODE and
ANODE
 For functioning the anode is connected to +ve end of
power supply and cathode is connected to –ve end of
power supply.
 The maximum current flowing through the LED is
limited by connecting a RESISTOR in series between
the power supply and LED as shown in the figure
below
21

 There are two ways to interface an LED to a


microprocessor/microcontroller:

1. The Anode of LED is connected to the port pin and


cathode to Ground : In this approach the port pin
sources the current to the LED when it is at logic
high(ie. 1).

2. The Cathode of LED is connected to the port pin and


Anode to Vcc : In this approach the port pin
sources the current to the LED when it is at logic
high (ie. 1). Here
the port pin sinks the current and the LED is
turned ON when the port pin is at Logic low (ie. 0)

3.4 COMMUNICATION INTERFACES

For any embedded system, the communication interfaces


can broadly classified into:

1. Onboard Communication Interfaces


 These are used for internal communication of the
embedded system i.e: communication between
different components present on the system.

 Common examples of onboard interfaces are:


 Inter Integrated Circuit (I2C)
 Serial Peripheral Interface (SPI)
 Universal Asynchronous Receiver Transmitter (UART)
 1-Wire Interface
 Parallel Interface

 Example :Inter Integrated Circuit (I2C)


• It is synchronous
• Bi-directional, half duplex , two wire serial interface bus
• Developed by Phillips semiconductors in 1980
22

• It comprises of two buses :


1. Serial clock –SCL
2. Serial Data – SDA
• SCL generates synchronization clock pulses
• SDA transmits data serially across devices
• I2C is a shared bus system to which many
devices can be connected
• Devices connected by I2C can act as either
master or slave
• The master device is responsible for
controlling communication by initiating/
terminating data transfer.
• Devices acting as slave wait for commands from
the master and respond to those commands.

Figure: I2C Bus Interfacing

2. External or Peripheral Communication Interfaces


 These are used for external communication of the
embedded system i.e: communication of different
components present on the system with external or
peripheral components/devices.

 Common examples of external interfaces are:


 RS-232 C & RS-485
 Universal Serial Bus (USB)
 IEEE 1394 (Firewire)
 Infrared (IrDA)
 Bluetooth
 Wi-Fi
 Zig Bee
 General Packet Radio Service (GPRS)
 Example: RS-232 C & RS-485
23

 It is wired, asynchronous, serial, full


duplex communication
 RS 232 interface was developed by EIA
(Electronic Industries Associates) In early 1960s
 RS 232 is the extension to UART for
external communications
 RS-232 logic levels use:
 +3 to +25 volts to signify a "Space" (Logic 0) and
 -3 to -25 volts to signify a "Mark" (logic 1).
 RS 232 supports two different types of connectors :
 DB 9 and DB 25 as shown in figure below

 RS 232 interface is a point to point communication


interface and the devices involved are called as
Data Terminating Equipment (DTE) And Data
Communications Terminating Equipment (DCE)
 Embedded devices contain UART for serial
transmission and generate signal levels as per
TTL/CMOS logic.
 A level translator IC (like Max 232) is used for
converting the signal lines from UART to RS 232
signal lines for communication.
 The vice versa is performed on the receiving side.
 Converter chips contain converters for both
transmitters and receivers
 RS 232 is used only for point to point connections
 It is susceptible to noise and hence is limited to
short distances only
 RS 422 is another serial interface from EIA.
 It supports multipoint connections with 1
transmitter and 10 receivers.
 It supports data rates up to 100Kbps and
distance up to 400 ft
 RS 485 is enhanced version of RS 422 and
supports up to 32 transmitters and 32 receivers

3.5 REVIEW QUESTIONS

1. What do you mean by core of the embedded system?


What is its significance? What are the possible options
that can be used as a core?
2. Distinguish between Microprocessor & Microcontroller
24

3. Explain the different types of processors according to


their system bus architecture
4. Explain the different types of processors according to
Instruction set Architecture
5. Explain the different types of processors according
to Endianness
6. Write short note on :
i. DSP
ii. PLD
iii. ASIC
iv. COTS
7. Explain Communication Interfaces with respect to
embedded system
8. Explain the following with example:
1. Onboard communication interface
2. Peripheral communication interface
9. Find out information and write case studies on the
following communication interfaces:
i. Infrared
ii. WiFi
iii. Zigbee
iv. UART

3.6 REFERENCES & FURTHER READING

2. Programming Embedded systems in C++ by Michael Barr


2. Introduction to Embedded systems – Shibu K. V


25

4
CHARACTERISTICS & QUALITY
ATTRIBUTES OF EMBEDDED SYSTEMS

Unit Structure
10.0 Objectives
10.1 Introduction
10.2 Characteristics of Embedded System
10.3 Quality Attributes of Embedded System
10.3.1 Operational Attributes
10.3.2 Non Operational Attributes
10.4 Review Questions
10.5 References & Further Reading

4.0 OBJECTIVES

After reading this chapter you will:


1. Understand the characteristics of Embedded system
2. Understand the attributes related to quality of
embedded system.

4.1 INTRODUCTION

The characteristics of embedded system are different


from those of a general purpose computer and so are its
Quality metrics. This chapter gives a brief introduction on
the characteristics of an embedded system and the
attributes that are associated with its quality.

4.2 CHARACTERISTICS OF EMBEDDED SYSTEM

Following are some of the characteristics of an


embedded system that make it different from a general
purpose computer:

1. Application and Domain specific


 An embedded system is designed for a specific
purpose only. It will not do any other task.
 Ex. A washing machine can only wash, it cannot cook
 Certain embedded systems are specific to a domain:
ex. A hearing aid is an application that belongs to the
domain of signal processing.
26

2. Reactive and Real time


 Certain Embedded systems are designed to react to
the events that occur in the nearby environment.
These events also occur real-time.

 Ex. An air conditioner adjusts its mechanical parts as


soon as it gets a signal from its sensors to increase
or decrease the temperature when the user operates
it using a remote control.

 An embedded system uses Sensors to take inputs


and has actuators to bring out the required
functionality.

3. Operation in harsh environment


 Certain embedded systems are designed to operate
in harsh environments like very high temperature of
the deserts or very low temperature of the
mountains or extreme rains.

 These embedded systems have to be capable of


sustaining the environmental conditions it is
designed to operate in.

4. Distributed
 Certain embedded systems are part of a larger
system and thus form components of a distributed
system.

 These components are independent of each other


but have to work together for the larger system to
function properly.

 Ex. A car has many embedded systems controlled to


its dash board. Each one is an independent
embedded system yet the entire car can be said to
function properly only if all the systems work
together.

5. Small size and weight


 An embedded system that is compact in size and has
light weight will be desirable or more popular than
one that is bulky and heavy.

 Ex. Currently available cell phones. The cell phones


that have the maximum features are popular but
also their size and weight is an important
characteristic.

 For convenience users prefer mobile phones than


phablets. (phone + tablet pc)
27

6. Power concerns
 It is desirable that the power utilization and heat
dissipation of any embedded system be low.
28

 If more heat is dissipated then additional units like


heat sinks or cooling fans need to be added to the
circuit.

 If more power is required then a battery of higher


power or more batteries need to be accommodated
in the embedded system.

4.3 QUALITY ATTRIBUTES OF EMBEDDED


SYSTEM

These are the attributes that together form the


deciding factor about the quality of an embedded system.

There are two types of quality attributes are:-

1. Operational Quality Attributes.


 These are attributes related to operation or
functioning of an embedded system. The way an
embedded system operates affects its overall
quality.

2. Non-Operational Quality Attributes.


 These are attributes not related to operation or
functioning of an embedded system. The way an
embedded system operates affects its overall quality.

 These are the attributes that are associated with the


embedded system before it can be put in operation.

4.3.1 Operational Attributes


a) Response
 Response is a measure of quickness of the system.
 It gives you an idea about how fast your system
is tracking the input variables.
 Most of the embedded system demand fast
response which should be real-time.

b) Throughput
 Throughput deals with the efficiency of system.
 It can be defined as rate of production or process
of a defined process over a stated period of time.
 In case of card reader like the ones used in buses,
throughput means how much transaction the
reader can perform in a minute or hour or day.

c) Reliability
 Reliability is a measure of how much percentage
you rely upon the proper functioning of the
system .
29

 Mean Time between failures and Mean Time To


Repair are terms used in defining system
reliability.
 Mean Time between failures can be defined as the
average time the system is functioning before a
failure occurs.
 Mean time to repair can be defined as the average
time the system has spent in repairs.

d) Maintainability
 Maintainability deals with support and
maintenance to the end user or a client in case of
technical issues and product failures or on the
basis of a routine system checkup
 It can be classified into two types :-

1. Scheduled or Periodic Maintenance


o This is the maintenancethat is
required regularly after a periodic
time interval.
o Example :
 Periodic Cleaning of Air Conditioners
 Refilling of printer cartridges.
2. Maintenance to unexpected failure
 This involves the maintenance due to a
sudden breakdown in the functioning of
the system.
 Example:
1. Air conditioner not powering on
2. Printer not taking paper in spite of
a full paper stack

e) Security
 Confidentiality, Integrity and Availability are three
corner stones of information security.
 Confidentiality deals with protection data from
unauthorized disclosure.
 Integrity gives protection from unauthorized modification.
 Availability gives protection from unauthorized user
 Certain Embedded systems have to make sure they
conform to the security measures. Ex. An Electronic
Safety Deposit Locker can be used only with a pin
number like a password.

f) Safety
 Safety deals with the possible damage that can
happen to the operating person and environment
due to the breakdown of an embedded system or
due to the emission of hazardous materials from the
embedded products.
 A safety analysis is a must in product engineering to
30
evaluate the anticipated damage and determine the
best
31

course of action to bring down the consequence of


damages to an acceptable level.

4.3.2 Non Operational Attributes

a) Testability and Debug-ability


 It deals with how easily one can test his/her
design, application and by which mean he/she can
test it.
 In hardware testing the peripherals and total
hardware function in designed manner
 Firmware testing is functioning in expected way
 Debug-ability is means of debugging the product as
such for figuring out the probable sources that create
unexpected behavior in the total system

b) Evolvability
 For embedded system, the qualitative attribute
“Evolvability” refer to ease with which the embedded
product can be modified to take advantage of new
firmware or hardware technology.

c) Portability
 Portability is measured of “system Independence”.
 An embedded product can be called portable if it is
capable of performing its operation as it is intended
to do in various environments irrespective of
different processor and or controller and embedded
operating systems.

d) Time to prototype and market


 Time to Market is the time elapsed between the
conceptualization of a product and time at which the
product is ready for selling or use
 Product prototyping help in reducing time to market.
 Prototyping is an informal kind of rapid product
development in which important feature of the under
consider are develop.
 In order to shorten the time to prototype, make use
of all possible option like use of reuse, off the self
component etc.

e) Per unit and total cost


 Cost is an important factor which needs to be
carefully monitored. Proper market study and cost
benefit analysis should be carried out before taking
decision on the per unit cost of the embedded
product.
 When the product is introduced in the market, for the
initial period the sales and revenue will be low
 There won’t be much competition when the
32
product sales and revenue increase.
33

 During the maturing phase, the growth will be steady


and revenue reaches highest point and at retirement
time there will be a drop in sales volume.

4.4 REVIEW QUESTIONS

1. Explain the characteristics of an embedded system


2. Explain the Operational Quality Attributes of
an embedded system
3. Explain the non quality attributes of an
embedded system

4.5 REFERENCES & FURTHER READING

1. Programming Embedded systems in C++ by Michael Barr


2. Introduction to Embedded systems – Shibu K. V


34
35
36
37

8
EMBEDDED SYSTEMS: MEMORY

Unit Structure

36.0 Objectives
36.1 Introduction
36.2 Types of Memory
36.3 Types of RAM
36.3.1 SRAM
36.3.2 DRAM
36.4 Types of ROM
36.4.1 MASKED
36.4.2 PROM
36.4.3 EPROM
36.5 Types of Hybrid Memory
36.5.1 NVRAM
36.5.2 FLASH
36.5.3 EEPROM
36.6 DIRECT MEMORY ACCESS (DMA)
36.7 Review Questions
36.8 References & Further Reading

37.0 OBJECTIVES

After reading this chapter you will understand:


 Different types of memory available
 Types of RAM
 Types of ROM
 Types of Hybrid Memory

8.1 INTRODUCTION

There are different types of memories available to be used in


computers as well as embedded system.

This chapter guides the reader through the different


types of memories that are available and can be used and
tries to explain their differences in simple words.
38

8.2 TYPES OF MEMORY

 There are three main types of memories, they are

a) RAM (Random Access Memory)


 It is read write memory.
 Data at any memory location can be read or written.
 It is volatile memory, i.e. retains the contents as
long as electricity is supplied.
 Data access to RAM is very fast

b) ROM (Read Only Memory)


 It is read only memory.
 Data at any memory location can be only read.
 It is non-volatile memory, i.e. the contents are
retained even after electricity is switched off and
available after it is switched on.
 Data access to ROM is slow compared to RAM

c) HYBRID
 It is combination of RAM as well as ROM
 It has certain features of RAM and some of ROM
 Like RAM the contents to hybrid memory can
be read and written
 Like ROM the contents of hybrid memory are non volatile

 The following figure gives a classification of different


types of memory
39

8.3 TYPES OF RAM

 There are 2 important memory device in the RAM family.


a) SRAM (Static RAM)
b) DRAM (Dynamic RAM)

8.3.1 SRAM (Static RAM)


c) It retains the content as long as the power is applied
to the chip.
d) If the power is turned off then its contents will be lost forever.

8.3.2 DRAM (Dynamic RAM)


a) DRAM has extremely short Data lifetime(usually less
than a quarter of second). This is true even when
power is applied constantly.
b) A DRAM controller is used to make DRAM behave
more like SRAM.
c) The DRAM controller periodically refreshes the data
stored in the DRAM. By refreshing the data several
times a second, the DRAM controller keeps the
contents of memory alive for a long time.

8.4 TYPES OF ROM

There are three types of ROM described as follows:

8.4.1 Masked ROM


a. These are hardwired memory devices found on system.
b. It contains pre-programmed set of instruction and
data and it cannot be modified or appended in any
way. (it is just like an Audio CD that contains
songs pre-written on it and does not allow to write
any other data)
c. The main advantage of masked ROM is low cost of
production.

8.4.2 PROM (PROGRAMMABLE ROM )


a) This memory device comes in an un-programmed state
i.e. at the time of purchased it is in an un-
programmed state and it allows the user to write
his/her own program or code into this ROM.
b) In the un-programmed state the data is entirely
made up of 1’s.
c) PROMs are also known as one-time-
programmable (OTP) device because any data can
be written on it only once. If the data on the chip
has some error and needs to be modified this
memory chip has to be discarded and the
modified data has to be written to another new
PROM.
40

8.4.3 EPROM (ERASABLE-AND-PROGRAMABLE ROM)


a) It is same as PROM and is programmed in same
manner as a PROM.
b) It can be erased and reprogrammed repeatedly as
the name suggests.
c) The erase operation in case of an EPROM is
performed by exposing the chip to a source of
ultraviolet light.
d) The reprogramming ability makes EPROM as
essential part of software development and
testing process.

8.5.1 EEPROMs
a. EEPROMs stand for Electrically Erasable
and Programmable ROM.
b. It is same as EPROM, but the erase operation is
performed electrically.
c. Any byte in EEPROM can be erased and rewritten
as desired

8.5.2 Flash
a. Flash memory is the most recent advancement in
memory technology.
b. Flash memory devices are high density, low cost,
nonvolatile, fast (to read, but not to write), and
electrically reprogrammable.
c. Flash is much more popular than EEPROM and is
rapidly displacing many of the ROM devices.
d. Flash devices can be erased only one sector at a
time, not byte by byte.

8.5.3 NVRAM
a. NVRAM is usually just a SRAM with battery backup.
b. When power is turned on, the NVRAM operates
just like any other SRAM but when power is off,
the NVRAM draws enough electrical power from
the battery to retain its content.
c. NVRAM is fairly common in embedded systems.
d. It is more expensive than SRAM.
41

8.5 REVIEW QUESTIONS

1. What are the different types of Memory?


2. What are the different types of RAM?
3. What are the different types of ROM?
4. What are the different types of Hybrid Memory?

8.6 REFERENCES & FURTHER READING

1. Programming Embedded systems in C++ by Michael Barr


2. Introduction to Embedded systems – Shibu K. V


42

10
EMBEDDED SYSTEMS: PERIPHERALS

Chapter Structure
56.0 Objectives
56.1 Introduction
56.2 Testing Non Volatile Memory Devices
56.3 Control and Status Registers
56.4 Device Driver
56.5 Watchdog timer
56.6 Review Questions
56.7 References & Further Reading

10.0 OBJECTIVES

After reading this chapter you will learn:


 Concept of testing non –volatile memory devices
using Checksum and CRC
 Control and Status Registers
 Device Driver
 Watch Dog Timer

10.1 INTRODUCTION

This chapter initially continues the part of memory


testing from last chapter. Here testing of Non Volatile
memory devices is studied.

Then we study how peripheral devices are


incorporated in Embedded System. Control and Status
Registers, Device Drivers and Watch Dog Timers are
explained in the subsequent sections.

10.2 TESTING NON VOLATILE (ROM AND HYBRID)


MEMORY DEVICES

 The testing techniques described previously cannot


help to test ROM and hybrid devices since ROM
devices cannot be written at all, and hybrid
devices usually contain data or programs that
cannot be overwritten.
43

 However ROM or hybrid memory device face the


same problems as missing memory chip, improperly
inserted memory chip, damaged memory chip or
wiring problem with the memory chip.

 Two Techniques Checksums and CRC can be used to


test non volatile memory devices.

 Checksum
 Checksums basically deals with the question
whether the data stored in a memory device is
valid or not?
 To do this the checksum of the data in the
memory device is computed and stored along with
the data. The moment when we have to confirm
the validity of the data, we just have to
recalculate the checksum and compare it with
previous checksum. If the two checksums match,
the data is assumed to be valid.
 The simplest checksum algorithm is to add up all
the data bytes discarding carries.
 A Checksum is usually stored at some fixed
location in memory. This makes it easy to
compute and store the check sum for the very
first time and later on to compare the recomputed
checksum with the original one.
 Disadvantage: A simple sum-of-data checksum
cannot detect many of the most common data
errors.

 CRC – Cyclic Redundancy Check

 A Cyclic Redundancy Check is a specific checksum


algorithm designed to detect the most common
data errors.
 CRC’s are frequently used in Embedded
Applications that requires the storage or
transmission of large blocks of data.
 The CRC works as follows:
 The message is composed of a long string of
0’s and 1’s
 A division operation occurs between the
message at numerator and the generator
polynomial at denominator. The generator
polynomial is a fixed smaller length binary
string.
 The remainder of the division operation is
the CRC Checksum
44

10.3 CONTROL AND STATUS REGISTERS

⚫ Control and status registers are the basic interface


between and embedded processor and peripheral
device.
⚫ These registers are a part of peripheral hardware and
their location size and individual meanings are
feature of the peripheral.
⚫ For example, The registers vary from device to
device: example the registers within a serial
controller are very different from those in a timer.
⚫ Depending upon the design of the processor and
target board , peripheral devices are located either in
the processor’s memory space or within the I/O
space.
⚫ It is common for Embedded Systems to include some
peripherals of each type. These are called Memory-
Mapped and I/O-mapped peripherals.
⚫ Of the two types, memory-mapped peripherals are
generally easier to work with and are increasingly
popular.
⚫ Memory-mapped control and status registers can be
used just like ordinary variables.

10.4 DEVICE DRIVER

⚫ The goal of designing a device driver is to hide the


hardware completely.
⚫ Attempts to hide the hardware completely are difficult.
⚫ For example all Flash memory devices share the
concept of sectors. An erase operation can be
performed only on an entire sector. Once erased
individual bites or words can be rewritten.
⚫ Device drivers for embedded systems are quite
different from the workstation counter parts. In modern
computers workstation device drivers are most often
concerned with satisfying the requirement of the
operating system.
⚫ There are three benefits of good device driver:
i. Modularization, it makes the structure of the overall
software is easier to understand.
ii. There exists only one module that interacts directly
with the peripheral’s registers making
communication easier.
iii. Software changes that result from hardware changes
45
are localized to the device driver.
46

⚫ Components of a Device Driver


A device driver can be implemented (as
components) in the following steps:
1. A data structure that overlays the memory-mapped
control and status registers of the device:
 This basic step involves creating a C style
structure that is actually a map of the registers
present in the device. These registers can be
found out by referring to the data sheet for the
device.
 A table is created which maps the control register
to their relative offsets.
 An example is shown below for a timer counter
data structure.

struct TimerCounter
{
unsigned short count; // Current Count, offset 0x00
unsigned short maxCountA;// Maximum Count,
offset 0x02 unsigned short _reserved; // Unused
Space, offset 0x04 unsigned short control; //
Control Bits, offset 0x06
};

 To make the bits within the control register easier


to read and write individually, we define the
following bitmasks:
#define TIMER_ENABLE 0xC000 // Enable
the timer.
#define TIMER_DISABLE 0x4000 //
Disable the timer.
#define TIMER_INTERRUPT 0x2000 //
Enable timer interrupts.
#define TIMER_MAXCOUNT 0x0020 //
Timer complete?
#define TIMER_PERIODIC 0x0001 //
Periodic timer?

2. A set of variables to track the current state of the


hardware and device driver: It involves listing out the
required variables needed to keep track of the state
of the hardware and device driver

3. Initialize the hardware: Once the variables to be used


are known the next step in device driver
programming is to initialize the hardware. Next
functions can be written to control the device.

4. A set of routines that provide an API for users of the


device driver
This involves writing different functions that will
47
implement the various tasks listed to be performed
by the device.
48

5. Interrupt service routines


Once the required functions and routines are coded
the thing remaining to be done is to identify and
write routines for servicing the interrupts.

10.5 WATCHDOG TIMER

 It is hardware equipment.
 It is special purpose hardware that protects the
system from software hangs.
 Watchdog timer always counts down from some
large number to zero
 This process takes a few seconds to reset, in the
meantime, it is possible for embedded software to
“kick” the watchdog timer, to reset its counter to the
original large number.
 If the timer expires i.e. counter reaches zero, the
watchdog timer will assume that the system has
entered a state of software hang, then resets the
embedded processor and restarts the software
 It is a common way to recover from unexpected
software hangs
 The figure below diagrammatically represents the
working of the watchdog timer

Figure: Watchdog Timer


49

10.6 REVIEW QUESTIONS

1. Explain testing for non-volatile memory devices


2. Write short note on Control and status registers
3. What is a device driver?
4. What are the components of a device driver?
5. Write short note on Watch Dog Timer

10.7 REFERENCES & FURTHER READING

1. Programming Embedded systems in C++ by Michael Barr


2. Introduction to Embedded systems – Shibu K. V


50

11
EMBEDDED OPERATING SYSTEM
Chapter Structure
67.0 Objectives
67.1 Introduction
67.2 Basics
67.2.1 Tasks
67.2.2 Task States
67.3 Scheduler
67.3.1 Scheduling Points
67.3.2 Ready List
67.3.3 Idle task
67.4 Context Switch
67.5 Task Synchronization
67.6 Real Time Characteristic
67.7 Selection Process
67.8 Review Questions
67.9 References & Further Reading

11.0 OBJECTIVES

After reading this chapter you will learn:


 The basics of embedded Operating system with respect to
1. Tasks
2. Task States
 Scheduler with respect to:
1. Scheduling Points
2. Ready List
3. Idle task
 Concept of Context Switch and Task Synchronization
 Real Time Characteristic of embedded operating system.

11.1 INTRODUCTION

This chapter introduces the readers to the embedded


operating system. Any operating system has a set of
programs which are implemented through a set of tasks.

Every embedded system may not require an


operating system. The requirement and complexity on an
operating system depends on the functionality to be
implemented by the embedded system.
51

11.2 BASICS

11.2.1 Tasks
 Task is a piece of code or program that is separate
from another task and can be executed
independently of the other tasks.

 In embedded systems, the operating system has to


deal with a limited number of tasks depending on
the functionality to be implemented in the embedded
system.

 Multiple tasks are not executed at the same time


instead they are executed in pseudo parallel i.e. the
tasks execute in turns as the use the processor.

 From a multitasking point of view, executing multiple


tasks is like a single book being read by multiple
people, at a time only one person can read it and
then take turns to read it. Different bookmarks may
be used to help a reader identify where to resume
reading next time.

 An Operating System decides which task to execute


in case there are multiple tasks to be executed. The
operating system maintains information about every
task and information about the state of each task.

 The information about a task is recorded in a data


structure called the task context. When a task is
executing, it uses the processor and the registers
available for all sorts of processing. When a task
leaves the processor for another task to execute
before it has finished its own, it should resume at a
later time from where it stopped and not from the
first instruction. This requires the information about
the task with respect to the registers of the
processor to be stored somewhere. This information
is recorded in the task context.

 A C++ version of a Task that holds all information


needed by operating system is as follows:
class Task
{
public:
Task(void (*function)(), Priority p,
int stackSize);

TaskId id;
Context
52
context;
TaskState
state; Priority
priority;
53

int *
pStack;
Task *
pNext;

void (*entryPoint)();

private:
static TaskId nextId;
};
11.2.2 Task
States
 In an operation system there are always
multiple tasks. At a time only one task can be
executed. This means that there are other tasks
which are waiting their turn to be executed.

 Depending upon execution or not a task may be


classified into the following three states:

 Running state - Only one task can actually be


using the processor at a given time that task is
said to be the “running” task and its state is
“running state”. No other task can be in that
same state at the same time

 Ready state - Tasks that are are not currently


using the processor but are ready to run are in
the “ready” state. There may be a queue of
tasks in the ready state.

 Waiting state - Tasks that are neither in running


nor ready state but that are waiting for some
event external to themselves to occur before
the can go for execution on are in the “waiting”
state.

Figure: Task States

 A transition of state between the ready and


running state occurs whenever the operating
system selects a new task to run.
54
 The task that was previously in running state
becomes ready and the new task is promoted to
running state.
55

 A task will leave running state only if it needs to


wait for some event external to itself to occur
before continuing.

 A task’s state can be defined as follows:


enum TaskState { Ready, Running, Waiting };

11.3 SCHEDULER

• The heart and soul of any operating system is its scheduler.


• This is the piece of the operating system that decides
which of the ready tasks has the right to use the
processor at a given time.
• It simple checks to see if the running task is the
highest priority ready task.
• Some of the more common scheduling algorithms:

1. First-in-first-out
 First-in-first-out (FIFO) scheduling describes an
operating system which is not a multitasking
operating system.

 Each task runs until it is finished, and only after that


is the next task started on a first come first served
basis.

2. Shortest job first


 Shortest job first scheduling uses algorithms that will
select always select a task that will require the least
amount of processor time to complete.

3. Round robin.
 Round robin scheduling uses algorithms that allow
every task to execute for a fixed amount to time.

 A running task is interrupted an put to a waiting


state if its execution time expires.

11.3.1 Scheduling Points


 The scheduling points are the set of operating
system events that result in an invocation of the
scheduler.

 There are three such events: task creation and task


deletion. During each of these events a method is
called to select the next task to be run.

 A third scheduling point called the clock tick is a


periodic event that is triggered by a timer interrupt.
56
When a timer expires, all of the tasks that are
waiting for it to complete are changed from the
waiting state to the ready state.
57

11.3.2 Ready List


 The scheduler uses a data structure called the ready
list to track the tasks that are in the ready state.

 The ready list is implemented as an ordinary linked


list, ordered by priority.

 So the head of this list is always the highest priority


task that is ready to run.

11.3.3 Idle task


 If there are no tasks in the ready state when the
scheduler is called, the idle task will be executed.

 The idle task looks the same in every operating system.

 The idle task is always considered to be in the ready state.

11.4 CONTEXT SWITCH

 The actual process of changing from one task to


another is called Context Switch.

 Since contexts are processor-specific, so is the code


that implements the context switches, hence, it must
always be written in assembly language.

11.5 TASK SYNCHRONIZATION

 All the tasks in the multitasking operating systems


work together to solve a larger problem and to
synchronize their activities, they occasionally
communicate with one another.

 For example, in the printer sharing device the printer


task doesn’t have any work to do until new data is
supplied to it by one of the computer tasks.

 So the printer and the computer tasks must


communicate with one another to coordinate their
access to common data buffers.

 One way to do this is to use a data structure called a


mutex.

 Mutexes are mechanisms provided by many


operating systems to assist with task synchronization.
58

 A mutex is a multitasking-aware binary flag. It is


because the processes of setting and clearing the
binary flag are atomic (i.e. these operations cannot
be interrupted).

 When this binary flag is set, the shared data buffer is


assumed to be in use by one of the tasks. All other
tasks must wait until that flag is cleared before
reading or writing any of the data within that buffer.

 The atomicity of the mutex set and clear operations


is enforced by the operating system, which disables
interrupts before reading or modifying the state of
the binary flag.

11.6 REAL TIME CHARACTERISTIC

An Operating system is called “Real-Time Operating


System” (RTOS) only if it has following characteristics:

i. Deterministic
 An OS is said to be deterministic if the worst case
execution time of each of the system calls is
calculable.

 The data sheet of an OS should publish the real-


time behavior of its RTOS provides average,
minimum and maximum number of clock cycles
required by each system call.

ii. Interrupt Latency


 Interrupt Latency is the total length of time
from an interrupt signal’s arrival at the
processor to the start of the associated
interrupt service routine.

iii.Context Switch
 Context Switch is important because it
represents overhead across your entire
system.

11.7 SELECTION PROCESS

The process of selecting the best commercial operating


system that best fits the needs of one’s project depends on
various factors.
 Commercial operating systems form a continuum
of functionality, performance and price.

 Operating Systems that offer only a basic


59
scheduler and a few other system calls are
inexpensive and come with the source code that
one can modify and do not require payment of
royalties.
60

 While on the other hand operating systems that


include a lot of useful functionality beyond just the
scheduler are quite expensive and royalties due
on every copy shipped in ROM and they might
also make a stronger guarantees about real-time
performance.

Two important points to be considered while selecting


an operating system :-
 Put your processor, realtime performance
and budgetary requirements first.
 Contact all of the vendors of the remaining
operating systems for more detailed technical
information.

11.8 REVIEW QUESTIONS

1. Explain the embedded Operating system with respect to


i) Tasks
ii) Task States
2. Explain Scheduler with respect to:
i) Scheduling Points
ii) Ready List
iii) Idle task
3. Write a short note on Context Switch and Task Synchronization
4. Explain the Real Time Characteristic of embedded
operating system.

11.9 REFERENCES & FURTHER READING

1. Programming Embedded systems in C++ by Michael Barr


2. Introduction to Embedded systems – Shibu K. V


61

12
EMBEDDED SYSTEMS: INTEGRATED
DEVELOPMENT ENVIRONMENT

Chapter Structure
79.0 Objectives
79.1 Introduction
79.2 Embedded IDE
79.3 Types of file generated on cross compilation
79.4 DISASSEMBLER/ DECOMIPILER
79.5 SIMULATOR
79.6 FirmWare Debugging
79.7 Review Questions
79.8 References & Further Reading

12.0 OBJECTIVES

After reading this chapter you will understand:


 Embedded IDE
 Types of file involved
 Disassembler/ Decomipiler
 Simulator
 Firmware Debugging and Emulator

12.1 INTRODUCTION

This chapter explains the IDE used for embedded


systems. It then explains the different types of files that are
generated on cross compilation. Then it gives an account of
utility tools like Disassembler/ Decomipiler, Simulator and
then FirmWare Debugging.

12.2 EMBEDDED IDE

 Integrated Development Environment with respect to


embedded system IDE stands for an Integrated
Environment for developing and debugging the
target processor specific embedded software.

• IDE is a software package which contains:


1. Text Editor(Source Code Editor)
62

2. Cross Compiler(For Cross platform


development and complier for the same
platform development)
3. Linker and debugger.
• Some IDEs may provide an interface to an emulator
or device programmer.
• IDEs are used in embedded firmware development.
 IDEs may be of two types:

1. Command Line Base


• Turbo C++ IDE is an example for a generic IDE
with a Command Line Interface.
2. GUI Base
• Microsoft Visual Studio is an example of GUI base IDE.
• Others examples are NetBeans, Eclipse.

12.3 TYPES OF FILE GENERATED ON


CROSS COMPILATION

Following are some of the files generated upon cross compilation:


1. List file .lst
2. Hex file .hex
3. Preprocessor output file
4. Map file .map
5. Obj file .obj

1. List File(.lst):-
• Listing file is generated during the cross-
compilation process.
• It contains an information about the cross
compilation process like cross compiler details,
formatted source text(‘C’ code), assembly code
generated from the source file, symbol tables,
errors and warnings detected during the cross-
compilation process.
• The list file contain the following sections:

1. Page Header
• It indicates the compiler version name, source file
name, Date, Page No.
• Example: C51 COMPILER V8.02 SAMPLE
05/23/2006 11:12:58 PAGE 1

2.Command Line
• It represents the entire command line that was
used for invoking the compiler.
• C51 COMPILER V8.02, COMPILATION OF MODULE
SAMPLE OBJECT MODULE PLACED IN sample.obj
63

• COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE


sample.c BROWSE DEBUG OBJECTTEXTEND CODE
LISTINCLUDE SYMBOLS

3.Source Code
• It contains source code along with line numbers
• Line level Source
1 //Sample.c for printing Hello World!
2 //Written by xyz
3 #include<stdio.h>
1 //Body part
starts 2
3
4
5
6 //Body part end
4 void main()
5 {
6 printf(“Hello World”);
7 }
8 //Header part ends

4. Assembly listing
• It contains the asembly code
generated by compiler for even
given ‘C’ code.
• ASSEMBLY LISTING OF GENERATED OBJECT
CODE;
• FUNCTION main(BEGIN)
;SOURCE LINE #5
;SOURCE LINE #6
0000 7BFF MOV R3,#0FFH
0002 7A00 R
MOV
R2,#HIGH?SC_0

5. Symbol listing
• It contains symbolic information about the
various symbols present in the cross
compiled source file.
• Eg: NAME, TYPE, SFR, SIZE.

6. Module Information
• The module information provides the size
of initialized and un-initialized memory
areas defined by the source file.
Module Information Static
Overlayable Code Size
9 -------------
Constant size 14 -------------
Bit size ------- -------------
64
END OF MODULE INFORMATION
65

7. Warnings and Errors


• Warnings and Errors section of list file records the
errors encountered or any statement that may
create issues in application(Warnings), during cross
compilation.

• ie:- C51 COMPILATION COMPLETE, 0WARNING(S), 0


ERROR(S).

2. Preprocessor Output File


• It contains preprocessor output for preprocessor
instructions used in the source file.

• This file is used for verifying the operation of Macros


and preprocessor directive.

3. Object File(.OBJ File)


• Cross-compiling each source module converts the
Embedded C/Assembly instructions and other
directives present in the module to an object(.OBJ
file)

4. Map File(.MAP)
• Also called as Linker List file. Map file contains
information about the link/locate process and is
composed of a number of sections described below:

I. Page Header
Each MAP file contains a header which
indicates the linker version number, date, time
and page number.

II. Command Line


Represents the entire command line that was
used for invoking the linker.

III. CPU Details


It contains details about the target CPU and its
memory model which includes information on
internal data memory, external data memory,
paged data memory, etc.

IV. Input Modules


It includes the names of all the object files,
library files and other files that are included in
the linking process.

V. Memory Map
It lists the starting address, length, relocation
type and name of each segment in the
program
66

VI. Symbol Table


It contains the name, value and type for all
symbols from different input modules.

VII. Inter Module Cross Reference


It includes the section name, memory type
and module names in which it is defined and all
modules where it is accessed.
Ex.
NAME…………………….USAGE……………………..
MODULE NAMES
?CCCASE…………………CODE;.........................?
C?CCASE PRINTF
?C?CLDOPTR……………CODE;.....................?C?
CLDOPTR PRINTF
?C?CSTPTR………………CODE;.......................?C
?CSTPTR PRINTF

VIII. Program Size


It contains the size of various memory
areas, constants and code space for the
entire application Ex. Program Size: data=80.1
xdata=0 code 2000

IX. Warnings and Errors


It contains the warnings and errors that are
generated while linking a program. It is used in
debugging link errors

5. HEX FILE (.hex file)


1. It is a binary executable file created from the source code.
2. The file created by linker/locater is converted into
processor understandable binary code.
3. The tool used for converting and object file into a hex
file is known as object to Hex converter.
4. Hex file have specific format and it varies for
different processor and controller. Two commonly
used hex file format are:
A. Intel Hex
B. Motorola Hex.
5. Both Intel and Motorola hex file format represent
data in the form of ASCII codes.
67

12.4 DISASSEMBLER/ DECOMIPILER

 A Disassembler/ Decomipiler is a reverse engineering tool.


 Reverse Engineering is used in embedded system to
find out the secret behind the working of a
proprietary product.
 A DISASSEMBLER is a utility program which converts
machine codes into target processor specific
assembly code/instruction.
 The process of converting machine codes to
assembly code is called disassembling.
 A DECOMIPILER is a utility program for translating
machine codes into corresponding high level
language instruction.
 A decompiler performs the reverse operation of a
compiler/cross-compiler.

12.5 SIMULATOR

 Simulators are used for embedded firmware debugging.


 Simulator simulates the target hardware, while the
code execution can be inspected.
 Simulators have the following characteristics which
make them very much favorable:
 Purely software based
 No need of target system (hardware)
 Support only for basic operations
 Cannot Support or lack real time behavior

 Advantages
1. Simple and straight forward.
 Simulators are a software utility with assumptions
about the underlying hardware. So it only requires
concentrating on debugging of the code, hence
straight forward.

2. No Hardware
 Simulators are purely software oriented.
 The IDE simulates the target CPU. The user needs to
know only about the target specific details like
memory map of various devices.
 Since no hardware is required the code can be
written and tested even before the hardware
prototype is ready thus saving development time

3. Simulation options
 Simulators provide various simulation options like I/O
peripherals or CRO or Logic analyzers.
68

 Simulators I/O support can be used to edit values


for I/O registers.

4. Simulation of abnormal conditions


 Using simulator the code can be tested for any
desired value.
 This helps to study the code behavior in abnormal
conditions without actually testing it on the
hardware.

 Disadvantages
1. Lack of real time behavior
 A simulator assumes the ideal condition for
code execution.
 Hence the developer may not be able to debug
the code under all possible combinations of input.
 The results obtained in simulation may deviate
from actual results on target hardware.

2. Lack of real timeliness


 The I/O condition in hardware is unpredictable. So
the output of simulation is usually under ideal
condition and hence lacks timeliness.

12.6 FIRMWARE DEBUGGING

 Debugging in embedded application is the process of


diagnosing the firmware execution, monitoring the
target processor’s registers and memory while the
firmware is running and checking the signals on
various buses of hardware.
 Debugging is classified into Hardware Debugging and
Firmware Debugging.
 Hardware Debugging deals with debugging the
various aspects of hardware involved in the
embedded system.
 The various tools used for hard ware debugging are
Multimeter, CRO, Logic Analyzers and Function
Generators.
 Firmware Debugging involves inspecting the code, its
execution flow, changes to different registers on code
execution.
 It is done to find out the bugs or errors in code which
produces unexpected behavior in the system.
 There is a wide variety of firmware debugging
techniques available that have advanced from basic
to advanced.
 Some to the tools used are Simulators and Emulators.
69

 Emulators
 The terms simulators and emulators are very
confusing but their basic functionality is the same
i.e. to debug the code. There is a difference in
which this is achieved by both the tools.

 A simulator is a utility program that duplicates the


target CPU and simulates the features and
instructions supported by target CPU whereas an
Emulator is a self contained hardware device
which emulates the target CPU.

 The Emulator hardware contains the necessary


emulation logic and is connected to the
debugging application that runs on the host PC.

 The Simulator ‘simulates’ while the Emulator ‘emulates’

12.7 REVIEW QUESTIONS

1. Write a Short note on Embedded IDE


2. What is Cross- Compilation? List the files that are
generated upon cross compilation
3. Explain the contents of .MAP file.
4. Explain the contents of .LST file.
5. Write short notes on :
I. .OBJ File
II. .HEX File
III. Preprocessor Output File

12.8 REFERENCES & FURTHER READING

Introduction to Embedded systems – Shibu K. V


70
71

You might also like