Robust Software for Embedded Systems
About this Course
|Course Type||Course Code||Duration|
|Embedded Software||BSEMB1030||2 Days|
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.
Why Attend this Course?
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 a memory leak or stack overflow will not lurk like a time bomb in a long-running system. Programmers need to be aware of real-time pitfalls when using interrupts and an RTOS.
What Makes this Course Stand Apart?
This course is based on 10 years of experience writing embedded software for life-critical medical equipment. It has been developed by Niall Murphy, author of “Front Panel: Designing Software for Embedded User Interfaces” and regular contributor to Embedded Systems Programming magazine.
What you will Learn?
A two day course providing an introduction to the building blocks of a dependable embedded system.
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
- Understand 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
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.
A working knowledge of C.
- Delegate handbook
- Definitions for Safety, Availability, Reliability
- Graceful degradation
- Industry magic bullets
Data Integrity Checks
- Error Detection
- Double Buffering
Real Time Operating System
- Preemptive Kernels
- Priority Inversion
- Timing Accuracy
- RAM/ROM/address line tests
- Loopback tests
- Cable and subassembly tests
- Hardware limitations on software actions
- Software limitations on user actions
Exception Handling and Asserts
- Language Support
- Assert Macro
- Debug code issues
- Static Allocation
- Stack Measurement
- Malloc and fragmentation
- Detecting Leaks
- Timed Polling
What next- How do I arrange a group course or book a public place.?
We are here to help so please utilise our live chat team
Call to speak to your account manager or a consultant on
+44 (0)345 467 9557 or email email@example.com
We are all technical with a wealth of Learning & Development experience
so can talk you through any specific requirements or the details of
one of our courses.