0% found this document useful (0 votes)
27 views

Embedded Systems Notes (1)

This document serves as an introduction to embedded systems, detailing their definition, history, classifications, and applications. It explains the differences between embedded systems and general-purpose computers, as well as the core components such as microprocessors, microcontrollers, and application-specific integrated circuits. Additionally, it outlines the purposes of embedded systems, including data collection, communication, monitoring, and control.

Uploaded by

dynamoshark9
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Embedded Systems Notes (1)

This document serves as an introduction to embedded systems, detailing their definition, history, classifications, and applications. It explains the differences between embedded systems and general-purpose computers, as well as the core components such as microprocessors, microcontrollers, and application-specific integrated circuits. Additionally, it outlines the purposes of embedded systems, including data collection, communication, monitoring, and control.

Uploaded by

dynamoshark9
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

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 ofview
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 instructions and
16 bit word logic.
4

• 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 playinggames,
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 ofgeneric It is combination of special
hardware and a general purpose hardware and
purpose OS for executing embedded OS for executing
a variety of applications. specific set of applications

Operating It contains general It may or may not contain


System purpose operating system operating system.
Alterations Applications are alterable Applications are non-alterable
by the user. by the user.
Key factor Performance” is key Application specific
factor. requirements are key factors.
Power More Less
Consumpti
on
Response Not Critical Critical for some
Time applications
5

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.
6
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.
7

▪ 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.
8

▪ 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

❖❖❖❖
9

❖❖❖❖
10

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.
11

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.
12

Harvard architecture Von-Neumann architecture


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

▣ Easier to pipeline, so high ▣ Low performance as


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

• RISC and CISC are the two common Instruction Set


Architectures (ISA) available for processor design.

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

▣ It is single, fixed length ▣ It is variable length


instruction. instruction.
13

▣ Less silicon usage and pin ▣ More silicon usage since


count. more additional decoder logic
is required to implement the
complex instruction decoding.

▣ With Harvard Architecture. ▣ Can be Harvard or Von-


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 address+0 Byte 0 (Base address)

Base address+1 Byte 1 (Base address+1)

Base address+2 Byte 2 (Base address+2)

Base address+3 Byte 3 (Base 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:
14

Base address+0 Byte 3 (Base address)

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

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

Base address+3 Byte 0 (Base 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.
15

• DSPs implement algorithms in hardware which speedsup


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 storingtemporary


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.
16

• 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.
17

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 manufacturing standard (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
18

• 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
19

• 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
20

• 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
21

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

❖❖❖❖
22

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.
23

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)

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

• 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 .
25

• 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 maintenance that 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 evaluate
the anticipated damage and determine the best
26

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 product sales
and revenue increase.
27

• 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

❖❖❖❖
28
29
30
31

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.
32

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
33

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 itand 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.
34

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 NVRAMdraws
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.
35

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

❖❖❖❖
36

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.
37

• 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 Applicationsthat
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
38

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 fromthe
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 are
localized to the device driver.
39

⚫ 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 implement
the various tasks listed to be performed by the device.
40

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


41

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

❖❖❖❖
42

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.
43

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 tobe
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 inturns
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 fromthe 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 context;
TaskState state;
Priority priority;
44

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 newtask
to run.

▪ The task that was previously in running state becomes


ready and the new task is promoted to running state.
45

▪ 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. 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.
46

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.
47

▪ 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 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.
48

▪ 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, real time 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

❖❖❖❖
49

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)
50

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
51

• 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 ------- -------------
END OF MODULE INFORMATION
52

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
53

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.
54

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.
55

• 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 areMultimeter,
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.
56

• 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

❖❖❖❖
57
58

You might also like