SlideShare a Scribd company logo
1 of 29
ANKITA TIWARI
M.TECH(EST)-1ST YEAR
AMITY UNIVERSITY
Presented By
2
What is RTOS?
 A real-time operating system (RTOS) is an operating
system intended to serve real-time application process data as
it comes in, typically without buffering delays. Processing
time requirements are measured in tenths of seconds or shorter.
3
 According to a 2015 Embedded Market Study..
•Green Hills Software INTEGRITY
•Wind River VxWorks
•QNX Neutrino
•FreeRTOS
•Micrium µC/OS-II, III
• etc
Architecture
RTOS
Executive
Scheduler
4
 In general, real-time operating systems are said to require:
• Multitasking
• Process threads that can be prioritized
• A sufficient number of interrupt levels
5
Why RTOS….
6
Real-time operating systems are often required in small
embedded operating systems that are packaged as part of
microdevices.
Why RTOS….
7
Some kernels can be considered to meet the requirements
of a real-time operating system. However, since other
components, such as device drivers, are also usually
needed for a particular solution, a real-time operating
system is usually larger than just the kernel.
Why RTOS….
What is FreeRTOS?
 FreeRTOS is a popular real-time operating
system kernel for embedded devices.
8
Developed by Real Time Engineers Ltd. and belongs to the
family of Real Time Operating System.
It is based on Microkernel type Kernel and licensed by
Modified GPL (GNU General Public License).
Implementation
 FreeRTOS is designed to be small and simple.
9
FreeRTOS provides methods for
multiple threads or tasks, mutexes, semaphores and software
timers.
A tick-less mode is provided for low power applications.
10
Mutexes
Mutual exclusion is a property of concurrency control, which is
instituted for the purpose of preventing race conditions; it is the
requirement that one thread of execution never enter its critical
section at the same time that another, concurrent thread of
execution enters its own critical section
Semaphore
A semaphore is a variable or abstract data type that is used for
controlling access, by multiple processes, to a common resource
in a concurrent system such as a multiprogramming operating
system.
HOW CAN AN RTOS HELP US?
11
 Task management
 Task communication
• Message queues
 Task synchronization
• Binary semaphores
• Counting semaphores
• Mutexes
12
Task management
 portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode,
const portCHAR * const pcName,
unsigned portSHORT usStackDepth,
void *pvParameters,
unsigned portBASE_TYPE uxPriority,
xTaskHandle *pvCreatedTask );
pvTaskCode Pointer to the task entry function. Tasks must be implemented to
never return (i.e. continuous loop).
pcName A descriptive name for the task. This is mainly used to facilitate
debugging. Max length defined by configMAX_TASK_NAME_LEN.
usStackDepth The size of the task stack specified as the number of variables the
stack can hold - not the number of bytes. For example, if the stack is 16 bits
wide and usStackDepth is defined as 100, 200 bytes will be allocated for stack
storage. The stack depth multiplied by the stack width must not exceed the
maximum value that can be contained in a variable of type size_t.
pvParameters Pointer that will be used as the parameter for the task
being created.
uxPriority The priority at which the task should run.
pvCreatedTask Used to pass back a handle by which the created
task can be referenced.
void vTaskDelete( xTaskHandle pxTask );
pxTask The handle of the task to be deleted. Passing NULL
will cause the calling task to be deleted.
 void vTaskDelay( portTickType xTicksToDelay );
xTicksToDelay The amount of time, in tick periods, that the calling
task should block.
 void vTaskDelayUntil( portTickType *pxPreviousWakeTime,
portTickType xTimeIncrement );
pxPreviousWakeTime Pointer to a variable that holds the time at which the task
was last unblocked. The variable must be initialised with
the current time prior to its first use. Following this the
variable is automatically updated within
vTaskDelayUntil().
xTimeIncrement The cycle time period. The task will be unblocked at time
(*pxPreviousWakeTime + xTimeIncrement). Calling
vTaskDelayUntil with the same xTimeIncrement
parameter value will cause the task to execute with a
fixed interval period.
Task communication
 xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength,
unsigned portBASE_TYPE uxItemSize );
uxQueueLength The maximum number of items that the queue can
contain.
uxItemSize The number of bytes each item in the queue will require.
Items are queued by copy, not by reference, so this is the
number of bytes that will be copied for each posted item.
Each item on the queue must be the same size.
 void vQueueDelete( xQueueHandle xQueue );
xQueue A handle to the queue to be deleted.
 portBASE_TYPE xQueueSend( xQueueHandle xQueue,
const void * pvItemToQueue,
portTickType xTicksToWait );
xQueue The handle to the queue on which the item is to be
posted.
pvItemToQueue A pointer to the item that is to be placed on the queue.
The size of the items the queue will hold was defined when the queue was
created, so this many bytes will be copied from pvItemToQueue into the
queue storage area.
xTicksToWait The maximum amount of time the task should block
waiting for space to become available on the queue, should it already be full.
The call will return immediately if the queue is full and xTicksToWait is set to 0.
The time is defined in tick periods so the constant
portTICK_RATE_MS should be used to convert to real time if this is required.
 portBASE_TYPE xQueueReceive( xQueueHandle xQueue,
void *pvBuffer,
portTickType xTicksToWait );
xQueue The handle to the queue on which the item is to be posted.
pvBuffer Pointer to the buffer into which the received item will be
copied.
xTicksToWait The maximum amount of time the task should block
waiting for an item to receive should the queue be empty at the time of the
call. Setting xTicksToWait to 0 will cause the function to return immediately if
the queue is empty. The time is defined in tick periods so the constant
portTICK_RATE_MS should be used to convert to real
time if this is required.
 portBASE_TYPE xQueueSendFromISR( xQueueHandle pxQueue,
const void *pvItemToQueue, portBASE_TYPE
*pxHigherPriorityTaskWoken );
xQueue The handle to the queue on which the item is to be posted.
pvItemToQueue A pointer to the item that is to be placed on the queue.
The size of the items the queue will hold was defined when the queue was
created, so this many bytes will be copied from pvItemToQueue into the
queue storage area.
pxHigherPriorityTaskWoken
xQueueSendFromISR() will set *pxHigherPriorityTaskWoken to pdTRUE if
sending to the queue caused a task to unblock, and the unblocked task has a
priority higher than the currently running task. If xQueueSendFromISR() sets
this value to pdTRUE then a context switch should be requested
before the interrupt is exited.
 portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue,
void *pvBuffer,
portBASE_TYPE *pxTaskWoken );
xQueue The handle to the queue on which the item is to be posted.
pvBuffer Pointer to the buffer into which the received item will be
copied.
pxTaskWoken A task may be blocked waiting for space to become available on
the queue. If xQueueReceiveFromISR causes such a task to unblock
*pxTaskWoken will get set to pdTRUE, otherwise *pxTaskWoken will
remain unchanged.
Task synchronization
 vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore )
xSemaphore Handle to the created semaphore. Should be of type
xSemaphoreHandle.
 xSemaphoreHandle xSemaphoreCreateCounting(
unsigned portBASE_TYPE uxMaxCount,
unsigned portBASE_TYPE uxInitialCount )
uxMaxCount The maximum count value that can be reached. When the
semaphore reaches this value it can no longer be 'given'.
uxInitialCount The count value assigned to the semaphore when it is created.
 xSemaphoreHandle xSemaphoreCreateMutex( void )
 xSemaphoreTake( xSemaphoreHandle xSemaphore,
portTickType xBlockTime )
xSemaphore Handle to the created semaphore. Should be of type
xSemaphoreHandle.
xBlockTime The time in ticks to wait for the semaphore to become
available. The macro portTICK_RATE_MS can be used to convert this
to a real time. A block time of zero can be used to poll the semaphore.
 xSemaphoreGive( xSemaphoreHandle xSemaphore )
xSemaphore A handle to the semaphore being released. This is the
handle returned when the semaphore was created.
 xSemaphoreGiveFromISR( xSemaphoreHandle xSemaphore,
signed portBASE_TYPE *pxHigherPriorityTaskWoken )
xSemaphore Handle to the created semaphore. Should be of type
xSemaphoreHandle.
pxHigherPriorityTaskWoken xSemaphoreGiveFromISR() will set
*pxHigherPriorityTaskWoken to pdTRUE if giving the semaphoree caused a
task to unblock, and the unblocked task has a priority higher than the
currently running task. If xSemaphoreGiveFromISR() sets this value to pdTRUE
then a context switch should be requested before the interrupt is exited.
void EXTI_IRQHandler(void)
{
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; // local var.
if(EXTI_GetITStatus(EXTI_Line10) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line10);
xSemaphoreGiveFromISR(Semaphore1, & xHigherPriorityTaskWoken);
portEND_SWITCHING_ISR( xHigherPriorityTaskWoken ); // must have
}
}
Example of interrupt function
Supported Architecture
• Altera Nios II
• ARM architecture
– ARM7
– ARM9
– ARM Cortex-M0
– ARM Cortex-M0+
– ARM Cortex-M3
– ARM Cortex-M4
– ARM Cortex-M7
– ARM Cortex-A
25
• AtmelAtmel
AVR
-- AVR32
-- SAM3
-- SAM4
-- SAM7
-- SAM9
-- SAM D20
-- SAM L21
• Intel
-- x86
-- 8052
• Freescale
-- Coldfire V1
-- Coldfire V2
-- HCS12
-- Kinetis
• IBM
-- PPC405
-- PPC404
• Infineon
-- TriCore
-- Infineon XMC4000
RELATED PROJECTS…
26
27
 SafeRTOS
• SafeRTOS was constructed as a complementary offering to
FreeRTOS, with common functionality but with a uniquely
designed safety-critical implementation.
• SafeRTOS is known for its ability, unique among Operating
Systems, to reside solely in the on-chip read only memory of a
microcontroller.
28
• The commercial licensing terms for OpenRTOS remove all
references to the GNU General Public License (GPL).
• Another project related to FreeRTOS, one with identical code
but different licensing & pricing, is OpenRTOS from the
commercial firm WITTENSTEIN Aerospace and Simulation
Ltd.
 OpenRTOS
29

More Related Content

What's hot

PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingPART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingFastBit Embedded Brain Academy
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminarCho Daniel
 
Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9Abu Bakr Ramadan
 
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 systemsHariharan Ganesan
 
Rtos concepts
Rtos conceptsRtos concepts
Rtos conceptsanishgoel
 
Introduction to Real-Time Operating Systems
Introduction to Real-Time Operating SystemsIntroduction to Real-Time Operating Systems
Introduction to Real-Time Operating Systemscoolmirza143
 
Arm cortex-m4 programmer model
Arm cortex-m4 programmer modelArm cortex-m4 programmer model
Arm cortex-m4 programmer modelMohammed Gomaa
 
Introduction to RTOS
Introduction to RTOSIntroduction to RTOS
Introduction to RTOSYong Heui Cho
 
Embedded System Programming on ARM Cortex M3 and M4 Course
Embedded System Programming on ARM Cortex M3 and M4 CourseEmbedded System Programming on ARM Cortex M3 and M4 Course
Embedded System Programming on ARM Cortex M3 and M4 CourseFastBit Embedded Brain Academy
 
Real Time Systems & RTOS
Real Time Systems & RTOSReal Time Systems & RTOS
Real Time Systems & RTOSVishwa Mohan
 
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 SystemsAditya Vichare
 
How to Measure RTOS Performance
How to Measure RTOS Performance How to Measure RTOS Performance
How to Measure RTOS Performance mentoresd
 

What's hot (20)

S emb t13-freertos
S emb t13-freertosS emb t13-freertos
S emb t13-freertos
 
RTOS Basic Concepts
RTOS Basic ConceptsRTOS Basic Concepts
RTOS Basic Concepts
 
Vx works RTOS
Vx works RTOSVx works RTOS
Vx works RTOS
 
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with DebuggingPART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PART-2 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminar
 
Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9Real time operating systems (rtos) concepts 9
Real time operating systems (rtos) concepts 9
 
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
 
Rtos concepts
Rtos conceptsRtos concepts
Rtos concepts
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
 
Introduction to Real-Time Operating Systems
Introduction to Real-Time Operating SystemsIntroduction to Real-Time Operating Systems
Introduction to Real-Time Operating Systems
 
Arm cortex-m4 programmer model
Arm cortex-m4 programmer modelArm cortex-m4 programmer model
Arm cortex-m4 programmer model
 
Real-Time Operating Systems
Real-Time Operating SystemsReal-Time Operating Systems
Real-Time Operating Systems
 
ARM Fundamentals
ARM FundamentalsARM Fundamentals
ARM Fundamentals
 
Rtos Concepts
Rtos ConceptsRtos Concepts
Rtos Concepts
 
Introduction to RTOS
Introduction to RTOSIntroduction to RTOS
Introduction to RTOS
 
RTOS - Real Time Operating Systems
RTOS - Real Time Operating SystemsRTOS - Real Time Operating Systems
RTOS - Real Time Operating Systems
 
Embedded System Programming on ARM Cortex M3 and M4 Course
Embedded System Programming on ARM Cortex M3 and M4 CourseEmbedded System Programming on ARM Cortex M3 and M4 Course
Embedded System Programming on ARM Cortex M3 and M4 Course
 
Real Time Systems & RTOS
Real Time Systems & RTOSReal Time Systems & RTOS
Real Time Systems & RTOS
 
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
 
How to Measure RTOS Performance
How to Measure RTOS Performance How to Measure RTOS Performance
How to Measure RTOS Performance
 

Viewers also liked

FreeRTOS
FreeRTOSFreeRTOS
FreeRTOSquakke
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmwarechcbaram
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating SystemTech_MX
 
Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineCHERIET Mohammed El Amine
 
FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!Vincent Claes
 
Use Analytics to Prevent Costly Product Returns
Use Analytics to Prevent Costly Product ReturnsUse Analytics to Prevent Costly Product Returns
Use Analytics to Prevent Costly Product ReturnsPeter Sobotta
 
Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310
Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310
Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310JongEun Lee
 
A low cost, real-time algorithm for embedded devices based on freertos kernel
A low cost, real-time algorithm for embedded devices based on freertos kernelA low cost, real-time algorithm for embedded devices based on freertos kernel
A low cost, real-time algorithm for embedded devices based on freertos kerneleSAT Journals
 
Real Time Operating Systems
Real Time Operating SystemsReal Time Operating Systems
Real Time Operating SystemsAshwani Garg
 
Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...
Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...
Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...Andrea Tino
 

Viewers also liked (20)

FreeRTOS Course - Queue Management
FreeRTOS Course - Queue ManagementFreeRTOS Course - Queue Management
FreeRTOS Course - Queue Management
 
How to choose an RTOS?
How to choose an RTOS?How to choose an RTOS?
How to choose an RTOS?
 
Introduction to Embedded Systems a Practical Approach
Introduction to Embedded Systems a Practical ApproachIntroduction to Embedded Systems a Practical Approach
Introduction to Embedded Systems a Practical Approach
 
Rtos By Avanish Agarwal
Rtos By Avanish AgarwalRtos By Avanish Agarwal
Rtos By Avanish Agarwal
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
 
SkyRover Firmware
SkyRover FirmwareSkyRover Firmware
SkyRover Firmware
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 
Introduction to C Programming
Introduction to C ProgrammingIntroduction to C Programming
Introduction to C Programming
 
Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amine
 
FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!FreeRTOS Xilinx Vivado: Hello World!
FreeRTOS Xilinx Vivado: Hello World!
 
Use Analytics to Prevent Costly Product Returns
Use Analytics to Prevent Costly Product ReturnsUse Analytics to Prevent Costly Product Returns
Use Analytics to Prevent Costly Product Returns
 
FreeRTOS API
FreeRTOS APIFreeRTOS API
FreeRTOS API
 
Ffmpeg for android
Ffmpeg for androidFfmpeg for android
Ffmpeg for android
 
Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310
Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310
Titanium 소개 - 당신이 알고 있는 타이타늄 rev.201310
 
Os Concepts
Os ConceptsOs Concepts
Os Concepts
 
Sleep paralysis
Sleep paralysisSleep paralysis
Sleep paralysis
 
A low cost, real-time algorithm for embedded devices based on freertos kernel
A low cost, real-time algorithm for embedded devices based on freertos kernelA low cost, real-time algorithm for embedded devices based on freertos kernel
A low cost, real-time algorithm for embedded devices based on freertos kernel
 
Real Time Operating Systems
Real Time Operating SystemsReal Time Operating Systems
Real Time Operating Systems
 
Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...
Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...
Improved implementation of a Deadline Monotonic algorithm for aperiodic traff...
 
Simulation Using Isim
Simulation Using Isim Simulation Using Isim
Simulation Using Isim
 

Similar to FreeRTOS

All you need to know about the JavaScript event loop
All you need to know about the JavaScript event loopAll you need to know about the JavaScript event loop
All you need to know about the JavaScript event loopSaša Tatar
 
ch 7 POSIX.pptx
ch 7 POSIX.pptxch 7 POSIX.pptx
ch 7 POSIX.pptxsibokac
 
От Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей РодионовОт Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей РодионовYandex
 
Artimon - Apache Flume (incubating) NYC Meetup 20111108
Artimon - Apache Flume (incubating) NYC Meetup 20111108Artimon - Apache Flume (incubating) NYC Meetup 20111108
Artimon - Apache Flume (incubating) NYC Meetup 20111108Mathias Herberts
 
sbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computersbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computerSteve Waldman
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustEvan Chan
 
Implementing STM in Java
Implementing STM in JavaImplementing STM in Java
Implementing STM in JavaMisha Kozik
 
.NET Multithreading/Multitasking
.NET Multithreading/Multitasking.NET Multithreading/Multitasking
.NET Multithreading/MultitaskingSasha Kravchuk
 
Qt everywhere a c++ abstraction platform
Qt everywhere   a c++ abstraction platformQt everywhere   a c++ abstraction platform
Qt everywhere a c++ abstraction platformDeveler S.r.l.
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...ijceronline
 
DEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them all
DEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them allDEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them all
DEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them allFelipe Prado
 
maXbox Starter 45 Robotics
maXbox Starter 45 RoboticsmaXbox Starter 45 Robotics
maXbox Starter 45 RoboticsMax Kleiner
 
Cassandra 2.1 boot camp, Overview
Cassandra 2.1 boot camp, OverviewCassandra 2.1 boot camp, Overview
Cassandra 2.1 boot camp, OverviewJoshua McKenzie
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the wayOleg Podsechin
 
Concurrent programming with RTOS
Concurrent programming with RTOSConcurrent programming with RTOS
Concurrent programming with RTOSSirin Software
 
Créer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureCréer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureAmaury Bouchard
 
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_David
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_DavidUsing Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_David
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_DavidStreamNative
 
Funtional Reactive Programming with Examples in Scala + GWT
Funtional Reactive Programming with Examples in Scala + GWTFuntional Reactive Programming with Examples in Scala + GWT
Funtional Reactive Programming with Examples in Scala + GWTVasil Remeniuk
 
Cassandra hands on
Cassandra hands onCassandra hands on
Cassandra hands onniallmilton
 

Similar to FreeRTOS (20)

All you need to know about the JavaScript event loop
All you need to know about the JavaScript event loopAll you need to know about the JavaScript event loop
All you need to know about the JavaScript event loop
 
ch 7 POSIX.pptx
ch 7 POSIX.pptxch 7 POSIX.pptx
ch 7 POSIX.pptx
 
Go on!
Go on!Go on!
Go on!
 
От Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей РодионовОт Java Threads к лямбдам, Андрей Родионов
От Java Threads к лямбдам, Андрей Родионов
 
Artimon - Apache Flume (incubating) NYC Meetup 20111108
Artimon - Apache Flume (incubating) NYC Meetup 20111108Artimon - Apache Flume (incubating) NYC Meetup 20111108
Artimon - Apache Flume (incubating) NYC Meetup 20111108
 
sbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computersbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computer
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to Rust
 
Implementing STM in Java
Implementing STM in JavaImplementing STM in Java
Implementing STM in Java
 
.NET Multithreading/Multitasking
.NET Multithreading/Multitasking.NET Multithreading/Multitasking
.NET Multithreading/Multitasking
 
Qt everywhere a c++ abstraction platform
Qt everywhere   a c++ abstraction platformQt everywhere   a c++ abstraction platform
Qt everywhere a c++ abstraction platform
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 
DEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them all
DEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them allDEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them all
DEF CON 27- ITZIK KOTLER and AMIT KLEIN - gotta catch them all
 
maXbox Starter 45 Robotics
maXbox Starter 45 RoboticsmaXbox Starter 45 Robotics
maXbox Starter 45 Robotics
 
Cassandra 2.1 boot camp, Overview
Cassandra 2.1 boot camp, OverviewCassandra 2.1 boot camp, Overview
Cassandra 2.1 boot camp, Overview
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the way
 
Concurrent programming with RTOS
Concurrent programming with RTOSConcurrent programming with RTOS
Concurrent programming with RTOS
 
Créer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureCréer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heure
 
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_David
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_DavidUsing Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_David
Using Apache Pulsar to Provide Real-Time IoT Analytics on the Edge_David
 
Funtional Reactive Programming with Examples in Scala + GWT
Funtional Reactive Programming with Examples in Scala + GWTFuntional Reactive Programming with Examples in Scala + GWT
Funtional Reactive Programming with Examples in Scala + GWT
 
Cassandra hands on
Cassandra hands onCassandra hands on
Cassandra hands on
 

More from Ankita Tiwari

EssentialsOfMachineLearning.pdf
EssentialsOfMachineLearning.pdfEssentialsOfMachineLearning.pdf
EssentialsOfMachineLearning.pdfAnkita Tiwari
 
surveyofdnnlearning.pdf
surveyofdnnlearning.pdfsurveyofdnnlearning.pdf
surveyofdnnlearning.pdfAnkita Tiwari
 
Basic_Digital_Circuits_Implementation_using_Virtuoso.pdf
Basic_Digital_Circuits_Implementation_using_Virtuoso.pdfBasic_Digital_Circuits_Implementation_using_Virtuoso.pdf
Basic_Digital_Circuits_Implementation_using_Virtuoso.pdfAnkita Tiwari
 
Relation of Big Data and E-Commerce
Relation of Big Data and E-CommerceRelation of Big Data and E-Commerce
Relation of Big Data and E-CommerceAnkita Tiwari
 
Study of various Data Compression Techniques used in Lossless Compression of ...
Study of various Data Compression Techniques used in Lossless Compression of ...Study of various Data Compression Techniques used in Lossless Compression of ...
Study of various Data Compression Techniques used in Lossless Compression of ...Ankita Tiwari
 
PIC Introduction and explained in detailed
PIC Introduction and explained in detailedPIC Introduction and explained in detailed
PIC Introduction and explained in detailedAnkita Tiwari
 
What is IEEE and why?
What is IEEE and why?What is IEEE and why?
What is IEEE and why?Ankita Tiwari
 
To implement Water level control using LabVIEW and analog input signals from ...
To implement Water level control using LabVIEW and analog input signals from ...To implement Water level control using LabVIEW and analog input signals from ...
To implement Water level control using LabVIEW and analog input signals from ...Ankita Tiwari
 
To count number of external events using LabVIEW
To count number of external events using LabVIEWTo count number of external events using LabVIEW
To count number of external events using LabVIEWAnkita Tiwari
 
To control the dc motor speed using PWM from LabVIEW
To control the dc motor speed using PWM from LabVIEWTo control the dc motor speed using PWM from LabVIEW
To control the dc motor speed using PWM from LabVIEWAnkita Tiwari
 
To measure the intensity of light using LDR sensor by calibrating voltage wit...
To measure the intensity of light using LDR sensor by calibrating voltage wit...To measure the intensity of light using LDR sensor by calibrating voltage wit...
To measure the intensity of light using LDR sensor by calibrating voltage wit...Ankita Tiwari
 
To interface temperature sensor with microcontroller and perform closed loop ...
To interface temperature sensor with microcontroller and perform closed loop ...To interface temperature sensor with microcontroller and perform closed loop ...
To interface temperature sensor with microcontroller and perform closed loop ...Ankita Tiwari
 
Interface stepper motor through Arduino using LABVIEW.
Interface stepper motor through Arduino using LABVIEW.Interface stepper motor through Arduino using LABVIEW.
Interface stepper motor through Arduino using LABVIEW.Ankita Tiwari
 
To study the relay operation from digital control signal using LabVIEW.
To study the relay operation from digital control signal using LabVIEW.To study the relay operation from digital control signal using LabVIEW.
To study the relay operation from digital control signal using LabVIEW.Ankita Tiwari
 
Linux operating systems and Bootable Pendrive
Linux operating systems and Bootable PendriveLinux operating systems and Bootable Pendrive
Linux operating systems and Bootable PendriveAnkita Tiwari
 
Design the implementation of Robotic Simulator: Goalkeeper.
Design the implementation of Robotic Simulator: Goalkeeper.Design the implementation of Robotic Simulator: Goalkeeper.
Design the implementation of Robotic Simulator: Goalkeeper.Ankita Tiwari
 
Design the implementation of Forward Dynamic for PUMA560.
Design the implementation of Forward Dynamic for PUMA560.Design the implementation of Forward Dynamic for PUMA560.
Design the implementation of Forward Dynamic for PUMA560.Ankita Tiwari
 
Design the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy GridDesign the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy GridAnkita Tiwari
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Ankita Tiwari
 
Design the implementation of CDEx PID with Constraints
Design the implementation of CDEx PID with ConstraintsDesign the implementation of CDEx PID with Constraints
Design the implementation of CDEx PID with ConstraintsAnkita Tiwari
 

More from Ankita Tiwari (20)

EssentialsOfMachineLearning.pdf
EssentialsOfMachineLearning.pdfEssentialsOfMachineLearning.pdf
EssentialsOfMachineLearning.pdf
 
surveyofdnnlearning.pdf
surveyofdnnlearning.pdfsurveyofdnnlearning.pdf
surveyofdnnlearning.pdf
 
Basic_Digital_Circuits_Implementation_using_Virtuoso.pdf
Basic_Digital_Circuits_Implementation_using_Virtuoso.pdfBasic_Digital_Circuits_Implementation_using_Virtuoso.pdf
Basic_Digital_Circuits_Implementation_using_Virtuoso.pdf
 
Relation of Big Data and E-Commerce
Relation of Big Data and E-CommerceRelation of Big Data and E-Commerce
Relation of Big Data and E-Commerce
 
Study of various Data Compression Techniques used in Lossless Compression of ...
Study of various Data Compression Techniques used in Lossless Compression of ...Study of various Data Compression Techniques used in Lossless Compression of ...
Study of various Data Compression Techniques used in Lossless Compression of ...
 
PIC Introduction and explained in detailed
PIC Introduction and explained in detailedPIC Introduction and explained in detailed
PIC Introduction and explained in detailed
 
What is IEEE and why?
What is IEEE and why?What is IEEE and why?
What is IEEE and why?
 
To implement Water level control using LabVIEW and analog input signals from ...
To implement Water level control using LabVIEW and analog input signals from ...To implement Water level control using LabVIEW and analog input signals from ...
To implement Water level control using LabVIEW and analog input signals from ...
 
To count number of external events using LabVIEW
To count number of external events using LabVIEWTo count number of external events using LabVIEW
To count number of external events using LabVIEW
 
To control the dc motor speed using PWM from LabVIEW
To control the dc motor speed using PWM from LabVIEWTo control the dc motor speed using PWM from LabVIEW
To control the dc motor speed using PWM from LabVIEW
 
To measure the intensity of light using LDR sensor by calibrating voltage wit...
To measure the intensity of light using LDR sensor by calibrating voltage wit...To measure the intensity of light using LDR sensor by calibrating voltage wit...
To measure the intensity of light using LDR sensor by calibrating voltage wit...
 
To interface temperature sensor with microcontroller and perform closed loop ...
To interface temperature sensor with microcontroller and perform closed loop ...To interface temperature sensor with microcontroller and perform closed loop ...
To interface temperature sensor with microcontroller and perform closed loop ...
 
Interface stepper motor through Arduino using LABVIEW.
Interface stepper motor through Arduino using LABVIEW.Interface stepper motor through Arduino using LABVIEW.
Interface stepper motor through Arduino using LABVIEW.
 
To study the relay operation from digital control signal using LabVIEW.
To study the relay operation from digital control signal using LabVIEW.To study the relay operation from digital control signal using LabVIEW.
To study the relay operation from digital control signal using LabVIEW.
 
Linux operating systems and Bootable Pendrive
Linux operating systems and Bootable PendriveLinux operating systems and Bootable Pendrive
Linux operating systems and Bootable Pendrive
 
Design the implementation of Robotic Simulator: Goalkeeper.
Design the implementation of Robotic Simulator: Goalkeeper.Design the implementation of Robotic Simulator: Goalkeeper.
Design the implementation of Robotic Simulator: Goalkeeper.
 
Design the implementation of Forward Dynamic for PUMA560.
Design the implementation of Forward Dynamic for PUMA560.Design the implementation of Forward Dynamic for PUMA560.
Design the implementation of Forward Dynamic for PUMA560.
 
Design the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy GridDesign the implementation of Anytime D Star on an Occupancy Grid
Design the implementation of Anytime D Star on an Occupancy Grid
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.
 
Design the implementation of CDEx PID with Constraints
Design the implementation of CDEx PID with ConstraintsDesign the implementation of CDEx PID with Constraints
Design the implementation of CDEx PID with Constraints
 

Recently uploaded

Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Rums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdfRums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdfsmsksolar
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"mphochane1998
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadhamedmustafa094
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesRAJNEESHKUMAR341697
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersMairaAshraf6
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...HenryBriggs2
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...Health
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxmaisarahman1
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxSCMS School of Architecture
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwaitjaanualu31
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksMagic Marks
 

Recently uploaded (20)

Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Rums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdfRums floating Omkareshwar FSPV IM_16112021.pdf
Rums floating Omkareshwar FSPV IM_16112021.pdf
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 

FreeRTOS

  • 2. 2
  • 3. What is RTOS?  A real-time operating system (RTOS) is an operating system intended to serve real-time application process data as it comes in, typically without buffering delays. Processing time requirements are measured in tenths of seconds or shorter. 3  According to a 2015 Embedded Market Study.. •Green Hills Software INTEGRITY •Wind River VxWorks •QNX Neutrino •FreeRTOS •Micrium µC/OS-II, III • etc
  • 5.  In general, real-time operating systems are said to require: • Multitasking • Process threads that can be prioritized • A sufficient number of interrupt levels 5 Why RTOS….
  • 6. 6 Real-time operating systems are often required in small embedded operating systems that are packaged as part of microdevices. Why RTOS….
  • 7. 7 Some kernels can be considered to meet the requirements of a real-time operating system. However, since other components, such as device drivers, are also usually needed for a particular solution, a real-time operating system is usually larger than just the kernel. Why RTOS….
  • 8. What is FreeRTOS?  FreeRTOS is a popular real-time operating system kernel for embedded devices. 8 Developed by Real Time Engineers Ltd. and belongs to the family of Real Time Operating System. It is based on Microkernel type Kernel and licensed by Modified GPL (GNU General Public License).
  • 9. Implementation  FreeRTOS is designed to be small and simple. 9 FreeRTOS provides methods for multiple threads or tasks, mutexes, semaphores and software timers. A tick-less mode is provided for low power applications.
  • 10. 10 Mutexes Mutual exclusion is a property of concurrency control, which is instituted for the purpose of preventing race conditions; it is the requirement that one thread of execution never enter its critical section at the same time that another, concurrent thread of execution enters its own critical section Semaphore A semaphore is a variable or abstract data type that is used for controlling access, by multiple processes, to a common resource in a concurrent system such as a multiprogramming operating system.
  • 11. HOW CAN AN RTOS HELP US? 11
  • 12.  Task management  Task communication • Message queues  Task synchronization • Binary semaphores • Counting semaphores • Mutexes 12
  • 13. Task management  portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask ); pvTaskCode Pointer to the task entry function. Tasks must be implemented to never return (i.e. continuous loop). pcName A descriptive name for the task. This is mainly used to facilitate debugging. Max length defined by configMAX_TASK_NAME_LEN. usStackDepth The size of the task stack specified as the number of variables the stack can hold - not the number of bytes. For example, if the stack is 16 bits wide and usStackDepth is defined as 100, 200 bytes will be allocated for stack storage. The stack depth multiplied by the stack width must not exceed the maximum value that can be contained in a variable of type size_t.
  • 14. pvParameters Pointer that will be used as the parameter for the task being created. uxPriority The priority at which the task should run. pvCreatedTask Used to pass back a handle by which the created task can be referenced. void vTaskDelete( xTaskHandle pxTask ); pxTask The handle of the task to be deleted. Passing NULL will cause the calling task to be deleted.
  • 15.  void vTaskDelay( portTickType xTicksToDelay ); xTicksToDelay The amount of time, in tick periods, that the calling task should block.  void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement ); pxPreviousWakeTime Pointer to a variable that holds the time at which the task was last unblocked. The variable must be initialised with the current time prior to its first use. Following this the variable is automatically updated within vTaskDelayUntil(). xTimeIncrement The cycle time period. The task will be unblocked at time (*pxPreviousWakeTime + xTimeIncrement). Calling vTaskDelayUntil with the same xTimeIncrement parameter value will cause the task to execute with a fixed interval period.
  • 16. Task communication  xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ); uxQueueLength The maximum number of items that the queue can contain. uxItemSize The number of bytes each item in the queue will require. Items are queued by copy, not by reference, so this is the number of bytes that will be copied for each posted item. Each item on the queue must be the same size.  void vQueueDelete( xQueueHandle xQueue ); xQueue A handle to the queue to be deleted.
  • 17.  portBASE_TYPE xQueueSend( xQueueHandle xQueue, const void * pvItemToQueue, portTickType xTicksToWait ); xQueue The handle to the queue on which the item is to be posted. pvItemToQueue A pointer to the item that is to be placed on the queue. The size of the items the queue will hold was defined when the queue was created, so this many bytes will be copied from pvItemToQueue into the queue storage area. xTicksToWait The maximum amount of time the task should block waiting for space to become available on the queue, should it already be full. The call will return immediately if the queue is full and xTicksToWait is set to 0. The time is defined in tick periods so the constant portTICK_RATE_MS should be used to convert to real time if this is required.
  • 18.  portBASE_TYPE xQueueReceive( xQueueHandle xQueue, void *pvBuffer, portTickType xTicksToWait ); xQueue The handle to the queue on which the item is to be posted. pvBuffer Pointer to the buffer into which the received item will be copied. xTicksToWait The maximum amount of time the task should block waiting for an item to receive should the queue be empty at the time of the call. Setting xTicksToWait to 0 will cause the function to return immediately if the queue is empty. The time is defined in tick periods so the constant portTICK_RATE_MS should be used to convert to real time if this is required.
  • 19.  portBASE_TYPE xQueueSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, portBASE_TYPE *pxHigherPriorityTaskWoken ); xQueue The handle to the queue on which the item is to be posted. pvItemToQueue A pointer to the item that is to be placed on the queue. The size of the items the queue will hold was defined when the queue was created, so this many bytes will be copied from pvItemToQueue into the queue storage area. pxHigherPriorityTaskWoken xQueueSendFromISR() will set *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task to unblock, and the unblocked task has a priority higher than the currently running task. If xQueueSendFromISR() sets this value to pdTRUE then a context switch should be requested before the interrupt is exited.
  • 20.  portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, portBASE_TYPE *pxTaskWoken ); xQueue The handle to the queue on which the item is to be posted. pvBuffer Pointer to the buffer into which the received item will be copied. pxTaskWoken A task may be blocked waiting for space to become available on the queue. If xQueueReceiveFromISR causes such a task to unblock *pxTaskWoken will get set to pdTRUE, otherwise *pxTaskWoken will remain unchanged.
  • 21. Task synchronization  vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore ) xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle.  xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount ) uxMaxCount The maximum count value that can be reached. When the semaphore reaches this value it can no longer be 'given'. uxInitialCount The count value assigned to the semaphore when it is created.  xSemaphoreHandle xSemaphoreCreateMutex( void )
  • 22.  xSemaphoreTake( xSemaphoreHandle xSemaphore, portTickType xBlockTime ) xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle. xBlockTime The time in ticks to wait for the semaphore to become available. The macro portTICK_RATE_MS can be used to convert this to a real time. A block time of zero can be used to poll the semaphore.  xSemaphoreGive( xSemaphoreHandle xSemaphore ) xSemaphore A handle to the semaphore being released. This is the handle returned when the semaphore was created.
  • 23.  xSemaphoreGiveFromISR( xSemaphoreHandle xSemaphore, signed portBASE_TYPE *pxHigherPriorityTaskWoken ) xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle. pxHigherPriorityTaskWoken xSemaphoreGiveFromISR() will set *pxHigherPriorityTaskWoken to pdTRUE if giving the semaphoree caused a task to unblock, and the unblocked task has a priority higher than the currently running task. If xSemaphoreGiveFromISR() sets this value to pdTRUE then a context switch should be requested before the interrupt is exited.
  • 24. void EXTI_IRQHandler(void) { portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; // local var. if(EXTI_GetITStatus(EXTI_Line10) != RESET) { EXTI_ClearITPendingBit(EXTI_Line10); xSemaphoreGiveFromISR(Semaphore1, & xHigherPriorityTaskWoken); portEND_SWITCHING_ISR( xHigherPriorityTaskWoken ); // must have } } Example of interrupt function
  • 25. Supported Architecture • Altera Nios II • ARM architecture – ARM7 – ARM9 – ARM Cortex-M0 – ARM Cortex-M0+ – ARM Cortex-M3 – ARM Cortex-M4 – ARM Cortex-M7 – ARM Cortex-A 25 • AtmelAtmel AVR -- AVR32 -- SAM3 -- SAM4 -- SAM7 -- SAM9 -- SAM D20 -- SAM L21 • Intel -- x86 -- 8052 • Freescale -- Coldfire V1 -- Coldfire V2 -- HCS12 -- Kinetis • IBM -- PPC405 -- PPC404 • Infineon -- TriCore -- Infineon XMC4000
  • 27. 27  SafeRTOS • SafeRTOS was constructed as a complementary offering to FreeRTOS, with common functionality but with a uniquely designed safety-critical implementation. • SafeRTOS is known for its ability, unique among Operating Systems, to reside solely in the on-chip read only memory of a microcontroller.
  • 28. 28 • The commercial licensing terms for OpenRTOS remove all references to the GNU General Public License (GPL). • Another project related to FreeRTOS, one with identical code but different licensing & pricing, is OpenRTOS from the commercial firm WITTENSTEIN Aerospace and Simulation Ltd.  OpenRTOS
  • 29. 29