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

 sign up for Feabhas e-news

 


Robust Software for Embedded Systems Training Courses

Robust Software for Embedded Systems

Course code: RB-201
Length
: 2 days
Cost: Contact Feabhas (available for on-site delivery only)
Course description - see below or view PDF
Check course dates - available for on-site delivery only - contact Feabhas
Booking information - click here

Training 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

 read our blog

Training Courses
C Training Courses
C++ Training Courses
C#.NET Training Courses
Embedded Linux
Training Courses

Java Training Courses
Microsoft Embedded Training Courses
MISRA-C Training Courses
Python 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++-501
AWDM-501
CE-501
C-501
C++-303
C++-501
C++-502
C++-503
C#-501
DP-402
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
PY-401
RB-201
RTOS-201
SE-401
SE-501
SNMP-301
T-401
TCP-401
WDF-501
WDM-501