2
Most read
6
Most read
8
Most read
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

PPTX
EC8791 designing with computing platform
PPTX
Ec8791 arm 9 processor
PPTX
EC8791 consumer electronics-platform level performance analysis
PPTX
Ec8791 unit 5 processes and operating systems
PPTX
EC6703 unit-4
PPT
top level view of computer function and interconnection
PPT
Program control
PPT
Cs intro-ca
EC8791 designing with computing platform
Ec8791 arm 9 processor
EC8791 consumer electronics-platform level performance analysis
Ec8791 unit 5 processes and operating systems
EC6703 unit-4
top level view of computer function and interconnection
Program control
Cs intro-ca

What's hot (19)

PPT
03. top level view of computer function & interconnection
PPTX
Input & Output
PDF
Input-Output Modules
PPTX
Run time, frequently, non-frequently reconfigurable system &
PPTX
IO Techniques in Computer Organization
PPT
03 top level view of computer function and interconnection.ppt.enc
PPT
Computer function-and-interconnection 3
PPTX
Microcomputer & RAM Model
PPTX
Central Processing Unit (CPU)
PPT
Data transfer and manipulation
PPTX
Unit 1c
PPTX
Input output in computer Orgranization and architecture
PPTX
Von-Neumann machine and IAS architecture
PPT
Counit2 2
PPT
Design an I/O system
PDF
L4 speeding-up-execution
PPT
Chapter 3 - Top Level View of Computer / Function and Interconection
PPT
Chapter 01 - Introduction
PPT
I/O System
03. top level view of computer function & interconnection
Input & Output
Input-Output Modules
Run time, frequently, non-frequently reconfigurable system &
IO Techniques in Computer Organization
03 top level view of computer function and interconnection.ppt.enc
Computer function-and-interconnection 3
Microcomputer & RAM Model
Central Processing Unit (CPU)
Data transfer and manipulation
Unit 1c
Input output in computer Orgranization and architecture
Von-Neumann machine and IAS architecture
Counit2 2
Design an I/O system
L4 speeding-up-execution
Chapter 3 - Top Level View of Computer / Function and Interconection
Chapter 01 - Introduction
I/O System
Ad

Similar to Embedded system software (20)

PDF
A Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
PPT
Real Time Systems & RTOS
PPTX
Real Time Operating Systems, Dynamic Precision: Exploring the Realm of Real-...
PPT
EMBEDDED SYSTEMS 1
PPTX
Real Time OS For Embedded Systems
PPTX
Real time Operating System
PPT
39245175 intro-es-ii
PPT
PPTX
Embedded system-1 is a first note for fourth year students
PPT
PPT
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
PPT
13086000.ppt
DOC
UNIT-I-RTOS and Concepts
PPTX
OVERVIEW OF RTOS
PDF
ES-Basics.pdf
DOCX
Embedded system notes
PPT
PPTX
Rtos by shibu
PPTX
Unit - I : Introduction of Embedded system
A Study Of Real-Time Embedded Software Systems And Real-Time Operating Systems
Real Time Systems & RTOS
Real Time Operating Systems, Dynamic Precision: Exploring the Realm of Real-...
EMBEDDED SYSTEMS 1
Real Time OS For Embedded Systems
Real time Operating System
39245175 intro-es-ii
Embedded system-1 is a first note for fourth year students
Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt
13086000.ppt
UNIT-I-RTOS and Concepts
OVERVIEW OF RTOS
ES-Basics.pdf
Embedded system notes
Rtos by shibu
Unit - I : Introduction of Embedded system
Ad

More from Jamia Hamdard (8)

PDF
PDF
Wireless sensor network
PDF
Registers
PDF
Programming
DOCX
Interrupts
PDF
Instructions
PDF
Pic microcontroller architecture
PPTX
Introduction to vlsi design
Wireless sensor network
Registers
Programming
Interrupts
Instructions
Pic microcontroller architecture
Introduction to vlsi design

Recently uploaded (20)

PDF
Unit1 - AIML Chapter 1 concept and ethics
PDF
First part_B-Image Processing - 1 of 2).pdf
PPTX
Petroleum Refining & Petrochemicals.pptx
PPT
Chapter 1 - Introduction to Manufacturing Technology_2.ppt
PDF
Computer System Architecture 3rd Edition-M Morris Mano.pdf
PPTX
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
PPTX
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
PDF
Abrasive, erosive and cavitation wear.pdf
PDF
Soil Improvement Techniques Note - Rabbi
PPTX
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
PPTX
Building constraction Conveyance of water.pptx
PDF
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
PPTX
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
PDF
Implantable Drug Delivery System_NDDS_BPHARMACY__SEM VII_PCI .pdf
PPTX
ai_satellite_crop_management_20250815030350.pptx
PPTX
Principal presentation for NAAC (1).pptx
PPTX
Module 8- Technological and Communication Skills.pptx
PDF
August -2025_Top10 Read_Articles_ijait.pdf
Unit1 - AIML Chapter 1 concept and ethics
First part_B-Image Processing - 1 of 2).pdf
Petroleum Refining & Petrochemicals.pptx
Chapter 1 - Introduction to Manufacturing Technology_2.ppt
Computer System Architecture 3rd Edition-M Morris Mano.pdf
tack Data Structure with Array and Linked List Implementation, Push and Pop O...
AUTOMOTIVE ENGINE MANAGEMENT (MECHATRONICS).pptx
Abrasive, erosive and cavitation wear.pdf
Soil Improvement Techniques Note - Rabbi
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
Building constraction Conveyance of water.pptx
LOW POWER CLASS AB SI POWER AMPLIFIER FOR WIRELESS MEDICAL SENSOR NETWORK
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
Implantable Drug Delivery System_NDDS_BPHARMACY__SEM VII_PCI .pdf
ai_satellite_crop_management_20250815030350.pptx
Principal presentation for NAAC (1).pptx
Module 8- Technological and Communication Skills.pptx
August -2025_Top10 Read_Articles_ijait.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.