SlideShare a Scribd company logo
1. Embedded Software
Embedded software is a piece of software that is embedded in hardware or non-PC devices. It
is written specifically for the particular hardware that it runs on and usually has processing
and memory constraints because of the device’s limited computing capabilities. Examples of
embedded software include those found in dedicated GPS devices, factory robots, some
calculators and even modern smartwatches.
Embedded software can be very simple, such as that used for controlling lighting in homes,
and can run on an 8-bit microcontroller with just a few kilobytes of memory, or it can be
quite complex such as the software running all of the electronic components of a modern
smart car, complete with climate controls, automatic cruising and collision sensing, as well as
control navigations. Complex embedded software can also be found in aircraft avionics
systems, in very complex fly-by-wire systems used in fighter planes and even in missile
guidance systems.
The main difference between embedded software and application software is that the former
is usually tied to a specific device, serving as the OS itself, with restrictions tied to that
device’s specifications, so updates and additions are strictly controlled, whereas application
software provides the functionality in a computer and runs on top of an actual full OS, so it
has fewer restrictions in terms of resources.
Examples of Embedded Software Application-based Features
Almost every device made with circuit boards and computer chips has these components
arranged into a system that runs embedded software. As a result, embedded software systems
are ubiquitous in everyday life and are found throughout consumer, industrial, automotive,
aerospace, medical, commercial, telecom, and military technology.
Common examples of embedded software application-based features include:
 Anti-lock braking systems found in automobiles
 Image processing systems found in medical imaging equipment
 Fly-by-wire control systems found in aircraft
 Motion detection systems in security cameras
 Traffic control systems found in traffic lights
 Timing and automation systems found in smart home devices
Common examples of automotive software application-based features include:
 ADAS (Advanced Driver Assist Systems) features like Adaptive cruise control,
automatic emergency braking, lane-keep assist, traffic-assist, lane-departure warnings
 Battery management system
 Torque compensation
 Steering-pull drift compensation
Embedded systems are typically classified in two ways:
1. When based on performance and functional requirements, there are four main types of
embedded systems:
 Real time embedded systems complete their task or output a response within a
specified time – usually “instantly” or in real-time.
 Stand-alone embedded systems can complete their task without a host system or
external processing resources. They can output or receive data from connected
devices, but are not reliant on them to complete their task.
 Networked embedded systems depend on connected network to perform its
assigned tasks.
 Mobile embedded systems are highly constrained systems typically deployed in
small, portable devices.
2. When based on the complexity of the system's hardware architecture, there are three main
types of embedded systems:
 Small Scale Embedded Systems
 Medium Scale Embedded Systems
 Sophisticated Embedded Systems (also known as Complex Embedded Systems)
Characteristics and Features of Embedded Systems
Even though there are many types of embedded systems, they all share the same beneficial
features and design characteristics.
 All embedded systems are task specific. They execute the same pre-programmed
function throughout their usable life and cannot be altered.
 All embedded systems are designed to be highly reliable and stable. They are required
to perform their task with consistent response times and function throughout the
lifetime of the device that houses them.
 All embedded systems are high efficiency. The resource requirements of embedded
software should never exceed the capacity of the hardware it’s installed on, and the
hardware's specifications should never exceed bare minimum requirements of the
embedded software.
To create software, the following basic components are needed:
 Operating systems (Windows CE, Yocto Linux, ThreadX, Nucleus RTOS)
 Languages (C, C++, Python, JavaScript, etc.)
 Tools (IDE, PDK, SDK, compiler toolchains, hardware and software debuggers (e.g.
ST-Link, Segger))
2. Concept of Real time Systems
Real time system means that the system is subjected to real time, i.e., response should be
guaranteed within a specified timing constraint or system should meet the specified deadline.
For example: flight control system, real time monitors etc. Types of real time systems based
on timing constraints:
1. Hard real time system –
This type of system can never miss its deadline. Missing the deadline may have disastrous
consequences. The usefulness of result produced by a hard real time system decreases
abruptly and may become negative if tardiness increases. Tardiness means how late a real
time system completes its task with respect to its deadline. Example: Flight controller system,
Medical critical care system, Aircraft systems, etc.
2. Soft real time system –
This type of system can miss its deadline occasionally with some acceptably low probability.
Missing the deadline have no disastrous consequences. The usefulness of result produced by
a soft real time system decreases gradually with increase in tardiness. Example: Telephone
switches, Online Transaction system and Livestock price quotation System.
3. Firm Real time:
These type of RTOS also need to follow the deadlines. However, missing a deadline may not
have big impact but could cause undesired affects, like a huge reduction in quality of a
product. Example: Various types of Multimedia applications.
Figure: Real-Time systems
Hard Real time System vs Soft Real time System
S.No Characteristic Hard real time Soft real time
1. Response time Hard-required Soft-desired
2. Peak-load performance Predictable Degraded
3. Control of pace Environment Computer
4. Safety Often critical Non-critical
5. Size of data files Small/medium Large
6. Redundancy type Active Checkpoint – recovery
7. Data integrity Short term Long term
8. Error detection autonomous User assisted
Reference model of real time system:
The reference model is characterized by three elements:
 A workload model: It specifies the application supported by system.
 A resource model: It specifies the resources available to the application.
 Algorithms: It specifies how the application system will use resources.
Terms related to real time system:
 Job – A job is a small piece of work that can be assigned to a processor and may or
may not require resources.
 Task – A set of related jobs that jointly provide some system functionality.
 Release time of a job – It is the time at which job becomes ready for execution.
 Execution time of a job – It is the time taken by job to finish its execution.
 Deadline of a job – It is the time by which a job should finish its execution. Deadline
is of two types: absolute deadline and relative deadline.
 Response time of a job – It is the length of time from release time of a job to the
instant when it finishes.
 Maximum allowable response time of a job is called its relative deadline.
 Absolute deadline of a job is equal to its relative deadline plus its release time.
 Processors are also known as active resources. They are essential for execution of a
job. A job must have one or more processors in order to execute and proceed towards
completion. Example: computer, transmission links.
 Resources are also known as passive resources. A job may or may not require a
resource during its execution. Example: memory, mutex
 Two resources are identical if they can be used interchangeably else they are
heterogeneous.
Real time system has following components
 The Scheduler: This component of RTOS tells that in which order, the tasks can be
executed which is generally based on the priority.
 Symmetric Multiprocessing (SMP): It is a number of multiple different tasks that
can be handled by the RTOS so that parallel processing can be done.
 Function Library: It is an important element of RTOS that acts as an interface that
helps you to connect kernel and application code. This application allows you to send
the requests to the Kernel using a function library so that the application can give the
desired results.
 Memory Management: this element is needed in the system to allocate memory to
every program, which is the most important element of the RTOS.
 Fast dispatch latency: It is an interval between the termination of the task that can be
identified by the OS and the actual time taken by the thread, which is in the ready
queue that has started processing.
 User-defined data objects and classes: RTOS system makes use of programming
languages like C or C++, which should be organized according to their operation.
Factors for selecting an RTOS
Here, are essential factors that you need to consider for selecting RTOS:
 Performance: Performance is the most important factor required to be considered while
selecting for a RTOS.
 Middleware: if there is no middleware support in Real time operating system, then the
issue of time-taken integration of processes occurs.
 Error-free: RTOS systems are error-free. Therefore, there is no chance of getting an
error while performing the task.
 Embedded system usage: Programs of RTOS are of small size. So we widely use RTOS
for embedded systems.
 Maximum Consumption: we can achieve maximum Consumption with the help of
RTOS.
 Task shifting: Shifting time of the tasks is very less.
 Unique features: A good RTS should be capable, and it has some extra features like how
it operates to execute a command, efficient protection of the memory of the system, etc.
 24/7 performance: RTOS is ideal for those applications which require to run 24/7.
References
3. Compilers for Embedded Systems
Compiler
“Compiler” as the name implies it is one of the mandatory tool or software used for writing
embedded C code. Many of the embedded systems runs the application based on the hex code
generated by the compiler. There are good number of manufacturers available in the market
that make compilers for various target boards like 8051,PIC,AVR,MSP430,ARM controllers
chip sets, and many more. Some of the popular compilers are:
 Keil supports various devices from Acer labs, Altium, Analog devices from 8051 and
ARM, Atmel, Dallas semiconductor , Infineon, NXP, ST microelectronics etc.
 Code Composer Studio for MSP430
 Ride 7 for STMicroElectronics
 Kinetis Design Studio by Freescale
 Open source compiler GNU/GCC compiler for Linux Operating system.
A compiler is a computer program (or a set of programs) that transforms the source code
written in a programming language (the source language) into another computer language
(normally binary format). The most common reason for conversion is to create an executable
program. The name "compiler" is primarily used for programs that translate the source code
from a highlevel programming language to a low-level language (e.g., assembly language or
machine code).
Cross-Compiler
If the compiled program can run on a computer having different CPU or operating system
than the computer on which the compiler compiled the program, then that compiler is known
as a cross-compiler.
Decompiler
A program that can translate a program from a low-level language to a high-level language is
called a decompiler.
Language Converter
A program that translates programs written in different high-level languages is normally
called a language translator, source to source translator, or language converter. A compiler is
likely to perform the following operations −
 Preprocessing
 Parsing
 Semantic Analysis (Syntax-directed translation)
 Code generation
 Code optimization
Assemblers
An assembler is a program that takes basic computer instructions (called as assembly
language) and converts them into a pattern of bits that the computer's processor can use to
perform its basic operations. An assembler creates object code by translating assembly
instruction mnemonics into opcodes, resolving symbolic names to memory locations.
Assembly language uses a mnemonic to represent each low-level machine operation
(opcode).
Debugging Tools in an Embedded System
Debugging is a methodical process to find and reduce the number of bugs in a computer
program or a piece of electronic hardware, so that it works as expected. Debugging is
difficult when subsystems are tightly coupled, because a small change in one subsystem can
create bugs in another. The debugging tools used in embedded systems differ greatly in terms
of their development time and debugging features. We will discuss here the following
debugging tools −
 Simulators
 Microcontroller starter kits
 Emulator
Simulators
Code is tested for the MCU / system by simulating it on the host computer used for code
development. Simulators try to model the behavior of the complete microcontroller in
software.
Functions of Simulators
A simulator performs the following functions −
 Defines the processor or processing device family as well as its various versions for the
target system.
 Monitors the detailed information of a source code part with labels and symbolic
arguments as the execution goes on for each single step.
 Provides the status of RAM and simulated ports of the target system for each single step
execution.
 Monitors system response and determines throughput.
 Provides trace of the output of contents of program counter versus the processor registers.
 Provides the detailed meaning of the present command.
 Monitors the detailed information of the simulator commands as these are entered from
the keyboard or selected from the menu.
 Supports the conditions (up to 8 or 16 or 32 conditions) and unconditional breakpoints.
 Provides breakpoints and the trace which are together the important testing and
debugging tool.
 Facilitates synchronizing the internal peripherals and delays.
Microcontroller Starter Kit
A microcontroller starter kit consists of −
 Hardware board (Evaluation board)
 In-system programmer
 Some software tools like compiler, assembler, linker, etc.
 Sometimes, an IDE and code size limited evaluation version of a compiler.
A big advantage of these kits over simulators is that they work in real-time and thus allow for
easy input/output functionality verification. Starter kits, however, are completely sufficient
and the cheapest option to develop simple microcontroller projects.
Emulators
An emulator is a hardware kit or a software program or can be both which emulates the
functions of one computer system (the guest) in another computer system (the host), different
from the first one, so that the emulated behavior closely resembles the behavior of the real
system (the guest).
Emulation refers to the ability of a computer program in an electronic device to emulate
(imitate) another program or device. Emulation focuses on recreating an original computer
environment. Emulators have the ability to maintain a closer connection to the authenticity of
the digital object. An emulator helps the user to work on any kind of application or operating
system on a platform in a similar way as the software runs as in its original environment.

More Related Content

What's hot

03. top level view of computer function & interconnection
03. top level view of computer function & interconnection03. top level view of computer function & interconnection
03. top level view of computer function & interconnection
noman yasin
 
Input & Output
Input & OutputInput & Output
Input & Output
Dilum Bandara
 
Input-Output Modules
Input-Output ModulesInput-Output Modules
Input-Output Modules
Mukesh Tekwani
 
Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &
Sudhanshu Janwadkar
 
IO Techniques in Computer Organization
IO Techniques in Computer OrganizationIO Techniques in Computer Organization
IO Techniques in Computer Organization
Om Prakash
 
03 top level view of computer function and interconnection.ppt.enc
03 top level view of computer function and interconnection.ppt.enc03 top level view of computer function and interconnection.ppt.enc
03 top level view of computer function and interconnection.ppt.enc
Anwal Mirza
 
Computer function-and-interconnection 3
Computer function-and-interconnection 3Computer function-and-interconnection 3
Computer function-and-interconnection 3
Mujaheed Sulantingan
 
Microcomputer & RAM Model
Microcomputer & RAM ModelMicrocomputer & RAM Model
Microcomputer & RAM Model
Gaurav Bisht
 
Central Processing Unit (CPU)
Central Processing Unit (CPU)Central Processing Unit (CPU)
Central Processing Unit (CPU)
Ajeng Savitri
 
Data transfer and manipulation
Data transfer and manipulationData transfer and manipulation
Data transfer and manipulation
Sanjeev Patel
 
Unit 1c
Unit 1cUnit 1c
Unit 1c
Karthik Vivek
 
Input output in computer Orgranization and architecture
Input output in computer Orgranization and architectureInput output in computer Orgranization and architecture
Input output in computer Orgranization and architecture
vikram patel
 
Von-Neumann machine and IAS architecture
Von-Neumann machine and  IAS architectureVon-Neumann machine and  IAS architecture
Von-Neumann machine and IAS architecture
Shishir Aryal
 
Counit2 2
Counit2 2Counit2 2
Counit2 2
Himanshu Dua
 
Design an I/O system
Design an I/O systemDesign an I/O system
Design an I/O system
AARTHI SEETHA
 
L4 speeding-up-execution
L4 speeding-up-executionL4 speeding-up-execution
L4 speeding-up-execution
rsamurti
 
Chapter 3 - Top Level View of Computer / Function and Interconection
Chapter 3 - Top Level View of Computer / Function and InterconectionChapter 3 - Top Level View of Computer / Function and Interconection
Chapter 3 - Top Level View of Computer / Function and InterconectionCésar de Souza
 
Chapter 01 - Introduction
Chapter 01 - IntroductionChapter 01 - Introduction
Chapter 01 - IntroductionCésar de Souza
 
I/O System
I/O SystemI/O System
I/O System
Nagarajan
 

What's hot (19)

03. top level view of computer function & interconnection
03. top level view of computer function & interconnection03. top level view of computer function & interconnection
03. top level view of computer function & interconnection
 
Input & Output
Input & OutputInput & Output
Input & Output
 
Input-Output Modules
Input-Output ModulesInput-Output Modules
Input-Output Modules
 
Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &Run time, frequently, non-frequently reconfigurable system &
Run time, frequently, non-frequently reconfigurable system &
 
IO Techniques in Computer Organization
IO Techniques in Computer OrganizationIO Techniques in Computer Organization
IO Techniques in Computer Organization
 
03 top level view of computer function and interconnection.ppt.enc
03 top level view of computer function and interconnection.ppt.enc03 top level view of computer function and interconnection.ppt.enc
03 top level view of computer function and interconnection.ppt.enc
 
Computer function-and-interconnection 3
Computer function-and-interconnection 3Computer function-and-interconnection 3
Computer function-and-interconnection 3
 
Microcomputer & RAM Model
Microcomputer & RAM ModelMicrocomputer & RAM Model
Microcomputer & RAM Model
 
Central Processing Unit (CPU)
Central Processing Unit (CPU)Central Processing Unit (CPU)
Central Processing Unit (CPU)
 
Data transfer and manipulation
Data transfer and manipulationData transfer and manipulation
Data transfer and manipulation
 
Unit 1c
Unit 1cUnit 1c
Unit 1c
 
Input output in computer Orgranization and architecture
Input output in computer Orgranization and architectureInput output in computer Orgranization and architecture
Input output in computer Orgranization and architecture
 
Von-Neumann machine and IAS architecture
Von-Neumann machine and  IAS architectureVon-Neumann machine and  IAS architecture
Von-Neumann machine and IAS architecture
 
Counit2 2
Counit2 2Counit2 2
Counit2 2
 
Design an I/O system
Design an I/O systemDesign an I/O system
Design an I/O system
 
L4 speeding-up-execution
L4 speeding-up-executionL4 speeding-up-execution
L4 speeding-up-execution
 
Chapter 3 - Top Level View of Computer / Function and Interconection
Chapter 3 - Top Level View of Computer / Function and InterconectionChapter 3 - Top Level View of Computer / Function and Interconection
Chapter 3 - Top Level View of Computer / Function and Interconection
 
Chapter 01 - Introduction
Chapter 01 - IntroductionChapter 01 - Introduction
Chapter 01 - Introduction
 
I/O System
I/O SystemI/O System
I/O System
 

Similar to Embedded system software

Real Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded SystemsReal Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded Systems
Aditya Vichare
 
Embedded system notes
Embedded system notesEmbedded system notes
Embedded system notes
TARUN KUMAR
 
Real Time Systems & RTOS
Real Time Systems & RTOSReal Time Systems & RTOS
Real Time Systems & RTOS
Vishwa Mohan
 
A Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
A Study Of Real-Time Embedded Software Systems And Real-Time Operating SystemsA Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
A Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
Rick Vogel
 
EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1PRADEEP
 
Operating System
Operating SystemOperating System
Operating System
Momina Idrees
 
BEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdfBEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdf
abdisahirko
 
What is RTOS Step by Step Guide?
What is RTOS Step by Step Guide?What is RTOS Step by Step Guide?
What is RTOS Step by Step Guide?
IntervalZero
 
Real Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systemsReal Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systems
Hariharan Ganesan
 
UNIT-I-RTOS and Concepts
UNIT-I-RTOS and ConceptsUNIT-I-RTOS and Concepts
UNIT-I-RTOS and Concepts
Dr.YNM
 
Embedded os
Embedded osEmbedded os
Embedded os
K Senthil Kumar
 
OS.pptx
OS.pptxOS.pptx
OS.pptx
NG911
 
Real time os(suga)
Real time os(suga) Real time os(suga)
Real time os(suga) Nagarajan
 
There are many operating systemsReal-Time Operating SystemReal-t.pdf
There are many operating systemsReal-Time Operating SystemReal-t.pdfThere are many operating systemsReal-Time Operating SystemReal-t.pdf
There are many operating systemsReal-Time Operating SystemReal-t.pdf
ankitmobileshop235
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded SystemsHimanshu Ghetia
 
Real timedata
Real timedataReal timedata
Unit 1_Operating system
Unit 1_Operating system Unit 1_Operating system
Unit 1_Operating system
JayeshGadhave1
 
OPERATING SYSTEM.pptx
OPERATING SYSTEM.pptxOPERATING SYSTEM.pptx
OPERATING SYSTEM.pptx
julitapelovello
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
KIET Group of Institutions, Ghaziabad
 
Unit v
Unit vUnit v

Similar to Embedded system software (20)

Real Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded SystemsReal Time Operating Systems for Embedded Systems
Real Time Operating Systems for Embedded Systems
 
Embedded system notes
Embedded system notesEmbedded system notes
Embedded system notes
 
Real Time Systems & RTOS
Real Time Systems & RTOSReal Time Systems & RTOS
Real Time Systems & RTOS
 
A Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
A Study Of Real-Time Embedded Software Systems And Real-Time Operating SystemsA Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
A Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
 
EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1EMBEDDED SYSTEMS 1
EMBEDDED SYSTEMS 1
 
Operating System
Operating SystemOperating System
Operating System
 
BEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdfBEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdf
 
What is RTOS Step by Step Guide?
What is RTOS Step by Step Guide?What is RTOS Step by Step Guide?
What is RTOS Step by Step Guide?
 
Real Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systemsReal Time Operating system (RTOS) - Embedded systems
Real Time Operating system (RTOS) - Embedded systems
 
UNIT-I-RTOS and Concepts
UNIT-I-RTOS and ConceptsUNIT-I-RTOS and Concepts
UNIT-I-RTOS and Concepts
 
Embedded os
Embedded osEmbedded os
Embedded os
 
OS.pptx
OS.pptxOS.pptx
OS.pptx
 
Real time os(suga)
Real time os(suga) Real time os(suga)
Real time os(suga)
 
There are many operating systemsReal-Time Operating SystemReal-t.pdf
There are many operating systemsReal-Time Operating SystemReal-t.pdfThere are many operating systemsReal-Time Operating SystemReal-t.pdf
There are many operating systemsReal-Time Operating SystemReal-t.pdf
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded Systems
 
Real timedata
Real timedataReal timedata
Real timedata
 
Unit 1_Operating system
Unit 1_Operating system Unit 1_Operating system
Unit 1_Operating system
 
OPERATING SYSTEM.pptx
OPERATING SYSTEM.pptxOPERATING SYSTEM.pptx
OPERATING SYSTEM.pptx
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
 
Unit v
Unit vUnit v
Unit v
 

More from Jamia Hamdard

Wireless sensor network
Wireless sensor networkWireless sensor network
Wireless sensor network
Jamia Hamdard
 
Registers
RegistersRegisters
Registers
Jamia Hamdard
 
Programming
ProgrammingProgramming
Programming
Jamia Hamdard
 
Interrupts
InterruptsInterrupts
Interrupts
Jamia Hamdard
 
Instructions
InstructionsInstructions
Instructions
Jamia Hamdard
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architecture
Jamia Hamdard
 
Introduction to vlsi design
Introduction to vlsi designIntroduction to vlsi design
Introduction to vlsi design
Jamia Hamdard
 

More from Jamia Hamdard (7)

Wireless sensor network
Wireless sensor networkWireless sensor network
Wireless sensor network
 
Registers
RegistersRegisters
Registers
 
Programming
ProgrammingProgramming
Programming
 
Interrupts
InterruptsInterrupts
Interrupts
 
Instructions
InstructionsInstructions
Instructions
 
Pic microcontroller architecture
Pic microcontroller architecturePic microcontroller architecture
Pic microcontroller architecture
 
Introduction to vlsi design
Introduction to vlsi designIntroduction to vlsi design
Introduction to vlsi design
 

Recently uploaded

CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
ShahidSultan24
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Halogenation process of chemical process industries
Halogenation process of chemical process industriesHalogenation process of chemical process industries
Halogenation process of chemical process industries
MuhammadTufail242431
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
Kamal Acharya
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
Kamal Acharya
 
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfCOLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
Kamal Acharya
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 

Recently uploaded (20)

CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Halogenation process of chemical process industries
Halogenation process of chemical process industriesHalogenation process of chemical process industries
Halogenation process of chemical process industries
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
 
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfCOLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 

Embedded system software

  • 1. 1. Embedded Software Embedded software is a piece of software that is embedded in hardware or non-PC devices. It is written specifically for the particular hardware that it runs on and usually has processing and memory constraints because of the device’s limited computing capabilities. Examples of embedded software include those found in dedicated GPS devices, factory robots, some calculators and even modern smartwatches. Embedded software can be very simple, such as that used for controlling lighting in homes, and can run on an 8-bit microcontroller with just a few kilobytes of memory, or it can be quite complex such as the software running all of the electronic components of a modern smart car, complete with climate controls, automatic cruising and collision sensing, as well as control navigations. Complex embedded software can also be found in aircraft avionics systems, in very complex fly-by-wire systems used in fighter planes and even in missile guidance systems. The main difference between embedded software and application software is that the former is usually tied to a specific device, serving as the OS itself, with restrictions tied to that device’s specifications, so updates and additions are strictly controlled, whereas application software provides the functionality in a computer and runs on top of an actual full OS, so it has fewer restrictions in terms of resources. Examples of Embedded Software Application-based Features Almost every device made with circuit boards and computer chips has these components arranged into a system that runs embedded software. As a result, embedded software systems are ubiquitous in everyday life and are found throughout consumer, industrial, automotive, aerospace, medical, commercial, telecom, and military technology. Common examples of embedded software application-based features include:  Anti-lock braking systems found in automobiles  Image processing systems found in medical imaging equipment  Fly-by-wire control systems found in aircraft  Motion detection systems in security cameras  Traffic control systems found in traffic lights  Timing and automation systems found in smart home devices Common examples of automotive software application-based features include:  ADAS (Advanced Driver Assist Systems) features like Adaptive cruise control, automatic emergency braking, lane-keep assist, traffic-assist, lane-departure warnings  Battery management system  Torque compensation  Steering-pull drift compensation
  • 2. Embedded systems are typically classified in two ways: 1. When based on performance and functional requirements, there are four main types of embedded systems:  Real time embedded systems complete their task or output a response within a specified time – usually “instantly” or in real-time.  Stand-alone embedded systems can complete their task without a host system or external processing resources. They can output or receive data from connected devices, but are not reliant on them to complete their task.  Networked embedded systems depend on connected network to perform its assigned tasks.  Mobile embedded systems are highly constrained systems typically deployed in small, portable devices. 2. When based on the complexity of the system's hardware architecture, there are three main types of embedded systems:  Small Scale Embedded Systems  Medium Scale Embedded Systems  Sophisticated Embedded Systems (also known as Complex Embedded Systems) Characteristics and Features of Embedded Systems Even though there are many types of embedded systems, they all share the same beneficial features and design characteristics.  All embedded systems are task specific. They execute the same pre-programmed function throughout their usable life and cannot be altered.  All embedded systems are designed to be highly reliable and stable. They are required to perform their task with consistent response times and function throughout the lifetime of the device that houses them.  All embedded systems are high efficiency. The resource requirements of embedded software should never exceed the capacity of the hardware it’s installed on, and the hardware's specifications should never exceed bare minimum requirements of the embedded software. To create software, the following basic components are needed:  Operating systems (Windows CE, Yocto Linux, ThreadX, Nucleus RTOS)  Languages (C, C++, Python, JavaScript, etc.)  Tools (IDE, PDK, SDK, compiler toolchains, hardware and software debuggers (e.g. ST-Link, Segger))
  • 3. 2. Concept of Real time Systems Real time system means that the system is subjected to real time, i.e., response should be guaranteed within a specified timing constraint or system should meet the specified deadline. For example: flight control system, real time monitors etc. Types of real time systems based on timing constraints: 1. Hard real time system – This type of system can never miss its deadline. Missing the deadline may have disastrous consequences. The usefulness of result produced by a hard real time system decreases abruptly and may become negative if tardiness increases. Tardiness means how late a real time system completes its task with respect to its deadline. Example: Flight controller system, Medical critical care system, Aircraft systems, etc. 2. Soft real time system – This type of system can miss its deadline occasionally with some acceptably low probability. Missing the deadline have no disastrous consequences. The usefulness of result produced by a soft real time system decreases gradually with increase in tardiness. Example: Telephone switches, Online Transaction system and Livestock price quotation System. 3. Firm Real time: These type of RTOS also need to follow the deadlines. However, missing a deadline may not have big impact but could cause undesired affects, like a huge reduction in quality of a product. Example: Various types of Multimedia applications. Figure: Real-Time systems Hard Real time System vs Soft Real time System S.No Characteristic Hard real time Soft real time 1. Response time Hard-required Soft-desired 2. Peak-load performance Predictable Degraded 3. Control of pace Environment Computer 4. Safety Often critical Non-critical 5. Size of data files Small/medium Large
  • 4. 6. Redundancy type Active Checkpoint – recovery 7. Data integrity Short term Long term 8. Error detection autonomous User assisted Reference model of real time system: The reference model is characterized by three elements:  A workload model: It specifies the application supported by system.  A resource model: It specifies the resources available to the application.  Algorithms: It specifies how the application system will use resources. Terms related to real time system:  Job – A job is a small piece of work that can be assigned to a processor and may or may not require resources.  Task – A set of related jobs that jointly provide some system functionality.  Release time of a job – It is the time at which job becomes ready for execution.  Execution time of a job – It is the time taken by job to finish its execution.  Deadline of a job – It is the time by which a job should finish its execution. Deadline is of two types: absolute deadline and relative deadline.  Response time of a job – It is the length of time from release time of a job to the instant when it finishes.  Maximum allowable response time of a job is called its relative deadline.  Absolute deadline of a job is equal to its relative deadline plus its release time.  Processors are also known as active resources. They are essential for execution of a job. A job must have one or more processors in order to execute and proceed towards completion. Example: computer, transmission links.  Resources are also known as passive resources. A job may or may not require a resource during its execution. Example: memory, mutex  Two resources are identical if they can be used interchangeably else they are heterogeneous. Real time system has following components  The Scheduler: This component of RTOS tells that in which order, the tasks can be executed which is generally based on the priority.  Symmetric Multiprocessing (SMP): It is a number of multiple different tasks that can be handled by the RTOS so that parallel processing can be done.  Function Library: It is an important element of RTOS that acts as an interface that helps you to connect kernel and application code. This application allows you to send the requests to the Kernel using a function library so that the application can give the desired results.
  • 5.  Memory Management: this element is needed in the system to allocate memory to every program, which is the most important element of the RTOS.  Fast dispatch latency: It is an interval between the termination of the task that can be identified by the OS and the actual time taken by the thread, which is in the ready queue that has started processing.  User-defined data objects and classes: RTOS system makes use of programming languages like C or C++, which should be organized according to their operation. Factors for selecting an RTOS Here, are essential factors that you need to consider for selecting RTOS:  Performance: Performance is the most important factor required to be considered while selecting for a RTOS.  Middleware: if there is no middleware support in Real time operating system, then the issue of time-taken integration of processes occurs.  Error-free: RTOS systems are error-free. Therefore, there is no chance of getting an error while performing the task.  Embedded system usage: Programs of RTOS are of small size. So we widely use RTOS for embedded systems.  Maximum Consumption: we can achieve maximum Consumption with the help of RTOS.  Task shifting: Shifting time of the tasks is very less.  Unique features: A good RTS should be capable, and it has some extra features like how it operates to execute a command, efficient protection of the memory of the system, etc.  24/7 performance: RTOS is ideal for those applications which require to run 24/7. References
  • 6. 3. Compilers for Embedded Systems Compiler “Compiler” as the name implies it is one of the mandatory tool or software used for writing embedded C code. Many of the embedded systems runs the application based on the hex code generated by the compiler. There are good number of manufacturers available in the market that make compilers for various target boards like 8051,PIC,AVR,MSP430,ARM controllers chip sets, and many more. Some of the popular compilers are:  Keil supports various devices from Acer labs, Altium, Analog devices from 8051 and ARM, Atmel, Dallas semiconductor , Infineon, NXP, ST microelectronics etc.  Code Composer Studio for MSP430  Ride 7 for STMicroElectronics  Kinetis Design Studio by Freescale  Open source compiler GNU/GCC compiler for Linux Operating system. A compiler is a computer program (or a set of programs) that transforms the source code written in a programming language (the source language) into another computer language (normally binary format). The most common reason for conversion is to create an executable program. The name "compiler" is primarily used for programs that translate the source code from a highlevel programming language to a low-level language (e.g., assembly language or machine code). Cross-Compiler If the compiled program can run on a computer having different CPU or operating system than the computer on which the compiler compiled the program, then that compiler is known as a cross-compiler. Decompiler A program that can translate a program from a low-level language to a high-level language is called a decompiler. Language Converter A program that translates programs written in different high-level languages is normally called a language translator, source to source translator, or language converter. A compiler is likely to perform the following operations −  Preprocessing  Parsing  Semantic Analysis (Syntax-directed translation)  Code generation  Code optimization
  • 7. Assemblers An assembler is a program that takes basic computer instructions (called as assembly language) and converts them into a pattern of bits that the computer's processor can use to perform its basic operations. An assembler creates object code by translating assembly instruction mnemonics into opcodes, resolving symbolic names to memory locations. Assembly language uses a mnemonic to represent each low-level machine operation (opcode). Debugging Tools in an Embedded System Debugging is a methodical process to find and reduce the number of bugs in a computer program or a piece of electronic hardware, so that it works as expected. Debugging is difficult when subsystems are tightly coupled, because a small change in one subsystem can create bugs in another. The debugging tools used in embedded systems differ greatly in terms of their development time and debugging features. We will discuss here the following debugging tools −  Simulators  Microcontroller starter kits  Emulator Simulators Code is tested for the MCU / system by simulating it on the host computer used for code development. Simulators try to model the behavior of the complete microcontroller in software. Functions of Simulators A simulator performs the following functions −  Defines the processor or processing device family as well as its various versions for the target system.  Monitors the detailed information of a source code part with labels and symbolic arguments as the execution goes on for each single step.  Provides the status of RAM and simulated ports of the target system for each single step execution.  Monitors system response and determines throughput.  Provides trace of the output of contents of program counter versus the processor registers.  Provides the detailed meaning of the present command.  Monitors the detailed information of the simulator commands as these are entered from the keyboard or selected from the menu.  Supports the conditions (up to 8 or 16 or 32 conditions) and unconditional breakpoints.  Provides breakpoints and the trace which are together the important testing and debugging tool.
  • 8.  Facilitates synchronizing the internal peripherals and delays. Microcontroller Starter Kit A microcontroller starter kit consists of −  Hardware board (Evaluation board)  In-system programmer  Some software tools like compiler, assembler, linker, etc.  Sometimes, an IDE and code size limited evaluation version of a compiler. A big advantage of these kits over simulators is that they work in real-time and thus allow for easy input/output functionality verification. Starter kits, however, are completely sufficient and the cheapest option to develop simple microcontroller projects. Emulators An emulator is a hardware kit or a software program or can be both which emulates the functions of one computer system (the guest) in another computer system (the host), different from the first one, so that the emulated behavior closely resembles the behavior of the real system (the guest). Emulation refers to the ability of a computer program in an electronic device to emulate (imitate) another program or device. Emulation focuses on recreating an original computer environment. Emulators have the ability to maintain a closer connection to the authenticity of the digital object. An emulator helps the user to work on any kind of application or operating system on a platform in a similar way as the software runs as in its original environment.