Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks


No description

Andres Gomez

on 12 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of FreeRTOS

Hardware Whisperer
The approximately 9000 lines of code that make up the base of FreeRTOS are hardware independent.

About 6% of FreeRTOS's core code acts a shim between the hardware independent FreeRTOS core and the hardware dependent code.

Actually the OS supports 34 architectures.
About 40% of FreeRTOS's core code deals with communication. queue.c and queue.h handle FreeRTOS communication.

Tasks and interrupts use queues to send data to each other and to signal the use of critical resources using
Almost half of FreeRTOS's core code deals with the central concern in many operating systems: tasks. A task is a user defined C function with a given priority. tasks.c and task.h do all the heavy lifting for creating,
scheduling, and maintaining tasks.
RealTime OS

Andres F. Gomez
task.c task.h
queue.c queue.h
Highly configurable FreeRTOSConfig.h
Scheduling Task
Each task has a userassigned priority between 0 (the lowest priority) and the compile time value of: configMAX_PRIORITIES-1
(the highest priority).

FreeRTOS uses a "ready list" to keep track of all tasks that are currently ready to run.
The main job of all operating systems is to run and coordinate user tasks. Like many operating systems, the basic unit of work in FreeRTOS is the task.

FreeRTOS uses a Task Control Block (TCB) to represent each task.
The heartbeat of a FreeRTOS system is called the system tick. FreeRTOS configures the system to generate a periodic tick interrupt. The user can configure the tick interrupt frequency, which is typically in the millisecond range. Every time the tick interrupt fires, the VTaskSwitchContext() function is called.
FreeRTOS Ready List: basic view
FreeRTOS uses its list structure to keep track for scheduling and also implement Queues.
xItemValue: priority
pxNext, pxPrevious
pvContainer, list that the item is in.
FreeRTOS allows task to communicate and synchronize with each other using queues.
User specifies the length of the queue and the size of the items.
Deep copy of the inserted items
Blocking and Non-Blocking insertions and removals

FreeRTOS Software Layer
Mutexes and Semaphores
FreeRTOS implements an N­-element semaphore as a queue that can hold N
items. It doesn't store any actual data for the queue items; the semaphore just
cares how many queue entries are currently occupied
References & Questions
FreeRTOS, Christopher Sv
Full transcript