Home | Contact | Pricing | News | Partners | Mailing List | Site Map
GNAT Pro Add-On

Ada and GNAT Pro Training


Course 7 - Hard Real-Time and Embedded Systems Programming with Ada 2005

Target Audience
Developers interested in learning or perfecting their real-time and embedded programming skills with this state-of-the-art language. This course is intended for developers familiar with some of the more advanced features of Ada, including tasking and access types.
Course Duration
4 Days
Workshop
Hands-on exercises using the GNAT Pro Ada 2005 toolset for an embedded target
Course Description
Although the terms are often used interchangeably, real-time systems need not be embedded, and embedded systems need not have deadlines. However, applications in both domains are expensive and labor-intensive, especially because developers typically have only low-level tools available and must use techniques that are more ad hoc than analytical. Ada 2005 represents the state-of-the-art in real-time programming languages and offers a high-level model for low-level programming that is unsurpassed in expressive power. This intensive course covers the modern analytical techniques for determining whether deadlines will be met, the Ada language facilities required to support those analyses, and the high-level model Ada provides for embedded systems development. In addition, the issues involved in storage management are covered so that, in addition to time, equally important storage resources are available when required.
Summary of Topics Covered
Low-Level Programming
- Querying Implementation Limits
- Querying Representation Choices
- Specifying Representation
- Unchecked Programming
- Machine Code Insertions (MCI)
- When Ada Is Not the Main Language
- Interacting with Memory-Mapped Devices
- Handling Interrupts

Schedulability Analysis
- Cyclic Executives
- Preference Scheduling
- Rate Monotonic Analysis
- Response Time Analysis
- Transient Overloads
- Period Transformations
- Bandwidth-Preserving Algorithms
- Priority Inversion
- Priority Inheritance
- Ceiling Protocols

Schedulability Analysis Support in Ada
- The Real-Time Systems Annex
- Dispatching Policies
- Priority Ceiling Locking
- Entry Queuing Policies
- Preemptive Abort

Language-defined Tasking Facilities
- High-Resolution Clock
- Dynamic Ceilings for Mode Changes
- Timing Events
- Entry Queuing Policies
- Monitoring Execution Time
- Execution Time Events
- Group Time Budgets
- Partition Elaboration Control
- Entry Queuing Policies
- Task Termination
- Synchronous Task Control
- Asynchronous Task Control
- Type-Independent Task Identification
- Per-Task Data
- Dynamic Priorities
- User-defined Schedulers
- The Ravenscar Profile

Reliable Storage Management
- Storage Management Policies
- Using Access Types
- Reserving Storage
- Handling Storage_Error
- Allocating Values
- Deallocating Values
- Tuning the Run Time Library for Storage Conservation
- User-Defined Storage Management

Performance Issues
- Distributed Costs
- Potential Hot Spots
- Tuning the Run Time Library for Performance
- Comparison of Ada with the POSIX Real-Time Extensions

All Courses

Course 1 - Introduction to GNAT Pro and GPS
View Details »
Course 2 - Introduction to GNAT Pro and GPS for AE653
View Details »
Course 3 - Ada Programming with GNAT Pro: Fundamentals
View Details »
Course 4 - Ada Programming with GNAT Pro: Advanced Topics
View Details »
Course 5 - Ada Programming with GNAT Pro: Beyond Ada 83
View Details »
Course 6 - Object-Oriented Programming (OOP) with Ada 2005
View Details »
Course 7 - Hard Real-Time and Embedded Systems Programming with Ada 2005
View Details »
Course 8 - GNATbench for Eclipse and Wind River Systems Workbench
View Details »
Course 9 - Introduction to GtkAda
View Details »

Training sessions can be given on-site or at AdaCore’s New York City headquarters. For information regarding scheduling, pricing or custom training sessions, please conact sales@adacore.com