Introduction to uCOS-II V2.6
About SwiftACT
• A Technology services startup company
o
Under establishment
• Areas of specialties:
o
o
Mobile telecommunication services development
Embedded systems development
• Types of services:
o
o
o
o
Consultation
Managed services
Sourcing
Training
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
About Me
• Graduated 2004
o
ECE, ASU: 5 yrs distinction
• 5+ years in embedded systems development
o
SDLC, Apps, MW, DD, Porting, ...
• 3+ years in SW engineering
o
PSP, CMMI, Systematic reuse, ...
• 3+ years in SW testing
o
IBM certified, ISTQB certified, ...
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Copyright
• Materials in this course is the property of Amr Ali Abdel-Naby.
• Reproduction or transmission of the materials in any manner
without the copyright owner permission is a law violation.
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Course References
• MicroC/OS-II The Real-Time Kernel, 2nd Edition, by Jean J.
Labrosse
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Outline
•
•
•
•
•
•
•
•
•
•
Introduction to µC/OS-II
Kernel Structure
Task Management
Time Management
Semaphore Management
Mutual Exclusion Semaphores
Event Flag Management
Message Mailbox Management
Message Queue Management
Memory Management
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Outline
•
•
•
•
•
•
•
•
•
•
Introduction to µC/OS-II
Kernel Structure
Task Management
Time Management
Semaphore Management
Mutual Exclusion Semaphores
Event Flag Management
Message Mailbox Management
Message Queue Management
Memory Management
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
At the Beginning
• Written By J. Labrosse
o
First published in 1992
• µC/OS-II is a trade mark of Micrium.
• It is pronounced as “micro C OS 2”.
o
Not mucus
• 1000s applications are using it all over the world.
• A good starting point to experience real-time OS
• Simple but yet very powerful
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
µC/OS-II in Literature
• Four books were published to explain the internals:
o
o
o
o
“μC/OS The Real-Time Kernel”, in 1992
“μC/OS-II The Real-Time Kernel”, in 1998
“μC/OS-II The Real-Time Kernel”, Second Edition in 2002
“μC/OS-III The Real-Time Kernel”, in 2009
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
µC/OS-II History
µC/OS
V1.08
µC/OS-II
V2.00
µC/OS V1.08
+
Memory Manager
+
Stack Checking
+
CPU Load Checking
Amr Ali Abdel-Naby@2010
µC/OS-II
V2.52
µC/OS-II
V2.86
µC/OS-II V2.00
+
Safety Critical
+
Mutexes
+
Semaphores
+
Event Flags
µC/OS-II V2.52
+
Timers
+
250 Tasks
+
MMU & MPU
Introduction to uCOS-II V2.6
µC/OS-III
µC/OS-II V2.86
+
RR Scheduling
+
Infinite # of Tasks
&
Services
µC/OS-II Features
•
•
•
•
•
•
•
•
•
•
•
Source code
Portable
Romable
Scalable
Preemptive
Multitasking
Deterministic
Task stack
Services
Interrupt management
Robust & reliable
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Source Code
• High quality
• Neat
• Consistent
• Organized
• Commented
• MISRA-C compliant
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Portable
• Highly portable ANSI C
• Assembly is kept minimum.
• Supports 8-, 16-, 32-, 64- bit
processors
• Ported over 100 different
processors
• All ports are freely available
at Micrium website.
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Romable
• If you have the proper tool chain, it can be embedded into your
system.
• No need for disks
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Scalable
• Use the service you only need.
o
o
Very few services Complete services available
A group of #defines determines scalability.
• Minimum footprint = 2 KB
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Preemptive
• Fully preemptive
• Always runs the highest priority task that is ready to run
• Comparable with other preemptive kernels
ISR
Task Y
Task X
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Multitasking
• Manages up to 64 tasks
• 8 tasks are used by µC/OS-II.
• 56 tasks are left to applications.
• A unique task/priority
• RR and FIFO are not supported.
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Deterministic
• You can always know how
much time μC/OS-II will take
to execute a service.
• Execution time is
independent of tasks running.
• The only exceptions are
OSTimeTick & some event
flag services.
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Task Stacks
• Each task has its stack.
• μC/OS-II allows different stack sizes.
• Stack checking utility
• You can determine & decide how much stack is needed for each
task.
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Services
•
•
•
•
•
•
•
•
Semaphores
Mutexes
Event flags
Message queues
Mailboxes
Fixed size memory partitions
Task management
Time management
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Interrupt Management
• An interrupt can suspend a task execution.
• The highest priority ready task runs after serving the interrupt.
• Nested interrupts
o Up to 255 level
ISR
Task Y
Task X
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Robust & Reliable
• Used by many products
• Support
• Tested & certified in safety critical systems
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
Related Products
•
•
•
•
•
•
•
•
•
•
µC/Probe
µC/TCP-IP
µC/FS
µC/GUI
µC/USB
µC/CAN
µC/Modbus
µC/FL
µC/Building Blocks
µC/OSEK-VDX
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
µC/OS-II Market
• Distributors all over the word
• Huge customer list
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6
License
• Educational
o
o
o
Free
Universities
Non-profitable use
• Source Code
o
If µC/OS will be distributed with your product as a source code
• Object Code
o
If µC/OS will be distributed with your product as a binary
• Not royalty free
Amr Ali Abdel-Naby@2010
Introduction to uCOS-II V2.6