Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Introduction to Embedded Software Architecture and Design

Similar presentations


Presentation on theme: "An Introduction to Embedded Software Architecture and Design"— Presentation transcript:

1 An Introduction to Embedded Software Architecture and Design
Class 3: Understanding Embedded Software Architectures December 3, 2014 Jacob Beningo, CSDP

2 Course Overview Introduction to Embedded Software Architecture
Software Architecture using UML Understanding Embedded Software Architectures From Architecture to Implementation Software Architecture of a UAV and Review

3 Session Overview An Example Problem Embedded Software Architecture
Importance of time Common patterns Boot-loader Architecture Design Peeling the onion Uml diagrams A few architecture tips

4 Embedded Software Architectures
Embedded Systems Many different flavors Each industry has their own best practices Software architectures deal with three different domain types

5 Embedded Software Architectures
Hard real-time systems Definitive deterministic response to an event Known that response is always within a give time Soft real-time systems Response to an event requires an average time Application systems Timing is not a consideration in the development of the system

6 Embedded Software Architectures
Importance of Time System catastrophes Unexpected behavior How should the architecture handle time? Move time-dependent requirements into the hardware Use interrupts to ensure the hard real-time needs Scheduler can handle the soft real-time needs Everything else is de-coupled!

7 Embedded Software Architectures
Common Embedded Software Patterns Polling Interrupt triggered (blocking) Interrupt triggered (non-blocking) Event driven RTOS Energy Aware

8 Boot-loader Architecture….
Remote firmware updates System requires periodic firmware updates in the field without the use of specialized hardware Must blink an led in this mode Seamless ability to switch between app and update mode System requires the ability to be updated via UART simulates radio connectivity

9 Boot-loader Architecture Design
Requirements What does the system do? How does it interact with the user? the environment? Real-time Requirements The system “shall” ….. Precisely define what the system not how! Verifiable and testable

10 Boot-loader Architecture Design
Create a high level system architecture

11 Boot-loader Architecture Design
High level software architecture

12 Boot-loader Architecture Design
Create a use case diagram

13 Boot-loader Architecture Design
Create component diagram Component Lists Low level Driver components Inputs and Outputs Timers, PWM, etc Configuration components What needs configuring? Application components Sensor Interfaces Real-world interfaces Timer Digital I/O PWM ADC Sensor Filtering Motor

14 Boot-loader Architecture Design
Boot-loader Component Diagram

15 Boot-loader Architecture Design
Boot-loader Detailed Component Diagram

16 Boot-loader Architecture Design
Statechart design

17 Boot-loader Architecture Design
Sequence Diagram Time or sequence critical architecture

18 A few architecture tips
Where to put different functionality Real-time requirements into hardware as much as possible Create layers and abstractions Highest layers should be portable and easily changed to meet application needs Architecture itself should not be easily changed or changed often

19 A few architecture tips
Planning for change Expect requirements to change! Rarely are they set in stone Plan for diagnostics How are system states, errors, etc going to be logged? Critical to system debugging Plan for testing Testing framework?

20 Additional Resources Download Course Material for Edraw UML Templates
Updated C Doxygen Templates Misc Papers and Websites for further reading From under - Blog and Articles > Software Techniques > CEC Software Architecture Materials

21 Jacob Beningo Newsletters P.O. Box 400 Embedded Monthly
Linden, Michigan 48451 Newsletters Embedded Monthly Low Power Design Training Bootloaders Embedded Software C/C++ : : : Jacob_Beningo : Beningo Engineering : JacobBeningo : Embedded Basics Jacob Beningo Principal Consultant


Download ppt "An Introduction to Embedded Software Architecture and Design"

Similar presentations


Ads by Google