Sela

RTOS Architecture and Effective C

Description
This course covers analysis, architecture design and programming aspects regarding real-time application development, and a thorough description of an RTOS for best usage and utilization. It provides the student with tools for both vertical and horizontal understanding of real-time application development. Further more, effective C on RT system is presented. The combined knowledge will help the participant build better Real-Time applications. Good utilization of the RTOS (Real-Time Operating System) may be vital for correct implementation of a Real-Time system. This course will prepare you for developing real-time applications using a Real-Time Operating System, and understanding its internals and behavior. Although not all developments use an operating system, understanding the services and utilization will help understand fundamental aspects of Real-Time development. The growing industry of Real-Time/Embedded systems introduces a growing need for good Real-Time operating systems, to supply an easily applicable, well-built, reliable, development environment to achieve the needed functionality with the proper support for timeliness constraints. Thus the growing need for programmers well familiar with RTOS.
Intended audience
This course is intended for students / programmers / software engineers, who have basic knowledge of Embedded/Real-Time systems development, and basic knowledge of operating systems.

Topics

What is a Real-Time system?
Definitions and examples
Real-Time System Characteristics
Timeliness, Responsiveness, Concurrency, Determinism, Correctness and Robustness, and more…
Real-Time Software Implementation
Scheduling policies
Concurrency and data exchange
Real -Time System Analysis
Software Architectures
Design
De-Coupling
Concurrency
Meeting constraints
System Startup Code
Reset Code
Board Support Package (BSP)
RTOS Functionality
RTOS Characteristics
Layering and OS typical structure
System services, libraries, facilities
Overview and basics
Architecture and dispatching
Single stack Vs. Multi stack
ISR implementation
ISR under RTOS
ISR to task communication
Resources and restrictions
Designing for concurrency and de-coupling
Processes vs. Tasks
Scheduling policies, states and transitions
Context switching and latency
Creating, controlling, deleting tasks
Setting priorities
Writing for reentrancy
Synchronization objects
Reentrancy and Shared data
Priorities
Inheritance, Inversion, Ceiling
Deadlocks and starvation
Shared memory
Message Exchange
Inter-Task Communication models
Hardware Timer & timer ticks
System Clock Facilities
Watch dog and Monitoring
Lexical
Syntactic
Semantic
Preprocessor
Linker
The C Preprocessor - How it works
#include
#define - Defining named constants
#undef
Const Vs. Define
Macros
Macros Vs. Functions
Advanced Generic programming using macros
Conditional compilation
Preprocessor operators #, ##, defined
#line, #error
#pragma
Arrays with negative indexes
Using const in pointer declarations
void pointers
Pointers to functions
Increasing Code Efficiency
Inline Functions
Table Lookups
Hand-Coded Assembly
General Techniques
Decreasing Code Size
Reducing Memory Usage
Polymorphic types with unions
Using casting to achieve polymorphism
Polymorphic types using embedded common structure as a base class
Implementing V-Tables using structure with functions pointers
Implementing override in C
Pros. And Cons.
Memory layout
Run-time considerations

רוצה לדבר עם יועץ?

האם אתה בטוח שאתה רוצה לסגור את הטופס ולאבד את כל השינויים?