Home
Company Profile
Our Clients
Training
Courses
course list
roadmap
all dates
forthcoming
booking
Graduate
Training
Mentoring
Location
Links
Contact us

 


 Robust Software for Embedded Systems Training Courses
RB-201
Robust Software for Embedded Systems

Length: 2 days
Cost: TBA
Course description - see below or view PDF
Check course dates - click here
Booking information - click here
 Course Detail
Course Description:
Across the spectrum of embedded systems there is a universal need for reliability and robustness, beyond that required for desktop computer software. Failure detection and recovery is vital and the software must be designed so that it can run continuously without the need for a reboot. This course explores the accepted industry best practices for achieving that extra level of quality in your embedded software.

These techniques include the use of watchdog hardware to detect a deadlocked system. Error handling mechanisms should be capable of reporting the exact location of a software bug, even after the system has been deployed. Memory management techniques need to ensure that that a memory leak or stack overflow will not lurk like a time bomb in a longrunning system. Programmers need to be aware of real-time pitfalls when using interrupts and an RTOS.

The course is based on ten years of experience writing embedded software for life-critical medical equipment. The course has been developed by Niall Murphy, author of the popular Murphy’s Law column in Embedded Systems Programming magazine.

Overview:
A two-day course providing an introduction to the building blocks of a dependable embedded system.

Course Objectives:
After completing the course attendees will:
• Understand the processes that can be applied to ensure quality code, such as code inspections and Hazards Analysis
• Understand how to write defensive code and code which allows a device to test itself.
• Understand how to make the best use of watchdog timers.
• Know how to organise non-volatile storage to avoid corruption and loss of data.
• Understand the advantages and weaknesses of using features such as dynamic memory management and real time operating systems.

Pre-requisites:
A working knowledge of C.

Who Should Attend:
Application programmers, software engineers or technical staff who need to address reliability or robustness issues at a code level. The course is ideal for engineers who can write software, but are new to embedded systems, especially if those embedded systems have safety concerns or require high reliability.

Duration:
Two days.

Course Materials:
Delegate Handbook

Related Courses:
• OO-503 Real-Time Software Design with UML 2.0
• C++-501 C++ for Embedded Developers
• C-501 C for Real-Time Developers
Course Outline:

Introduction
- Definitions for Safety, Availability, Reliability
- Graceful degradation
- Industry magic bullets
Data Integrity Checks
- Checksums
- CRCs
Persistent Storage
- Error Detection
- Double Buffering
- Versioning
Built-in Self-test
- RAM/ROM/address line tests
- Loopback tests
- Cable and subassembly tests
Interlocks
- Hardware limitations on software actions
- Software limitations on user actions
Exception Handling and Asserts
- Language Support
- Assert Macro
- Debug code issues
Memory Management
- Static Allocation
- Stack Measurement
- malloc and fragmentation
- Pools
- Detecting Leaks
Interrupts
- Reentrancy
- Motivation
- Parallelism
- Timed Polling
Real Time Operating System
- Tasking
- Decomposition
- Preemptive Kernels
- Priority Inversion
- Queuing
- Timing Accuracy

 telelogic website

Training Courses
C Training Courses
C++ Training Courses
Design Patterns Training Courses
Embedded Linux
Training Courses

Java Training Courses
Microsoft Embedded Training Courses
MISRA-C Training Courses
RTOS Training Courses
Software Engineering Training Courses
SNMP Training Courses
SysML Training Courses
TCP/IP Training Courses
Testing Training Courses
Microsoft Windows Device Driver Courses
UML Training Courses

Feabhas Codes
AC-401
AC++-401
AWDM-501
C-501
C++-303
C++-501
C++-502
C++-503
DP-401
EL-201
EL-202
EL-301
EL-503
EL-504
J-501
J-502
MC-101
MSDN-2530
MSDN-2535
MSDN-2540
MSDN-2545
MSDN-2540N
NDIS-501
OO-101
OO-301
OO-503
RB-201
RTOS-201
SE-401
SE-501
SNMP-301
T-301
TCP-401
WDF-501
WDM-501