An Introduction to Embedded Software Architecture and Design

Slides:



Advertisements
Similar presentations
MotoHawk Training Model-Based Design of Embedded Systems.
Advertisements

Software Engineering Lecture 2 ASPI8-4 Anders P. Ravn, Feb
Chapter 13 Embedded Systems
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
Embedded and Real Time Systems Lecture #4 David Andrews
Chapter 13 Embedded Systems
An Introduction to UML & Modeling Resources Using UML Rahul Shah EE249 Discussion Sept. 25, 2001.
ASPPRATECH.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Requirements Analysis Document Template 1.Introduction.
RTOS Design & Implementation Swetanka Kumar Mishra & Kirti Chawla.
Embedded Software Design Peter R. Wihl (former Guest Lecturer)
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
MVC and MVP. References enter.html enter.html
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
Typical Microcontroller Purposes
Software Design The Dynamic Model Design Sequence Diagrams and Communication Diagrams Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Micro processor and Micro Controllers
NIMBUS CONOPS Maggie Krause, Ryan Rasmussen, Caleb Fangmeier, Brett Mahnke, and Jiajun Yang.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Designing Realtime Systems & Embedded Systems B. Ramamurthy CSE /13/20151.
CS4730 Real-Time Systems and Modeling Fall 2010 José M. Garrido Department of Computer Science & Information Systems Kennesaw State University.
DESIGN OF SOFTWARE ARCHITECTURE
Senior DesignSoftware-1Seattle Pacific University High-level Software Design Context Diagram Connections between major components Synchronization with.
Presented by: © 2015 Jacob Beningo All Rights Reserved Writing Portable and Robust Firmware in C September 2, 2015 Jacob Beningo, CSDP Class 3: Uart Driver.
Presented by: © 2015 Jacob Beningo All Rights Reserved Writing Portable and Robust Firmware in C September 4, 2015 Jacob Beningo, CSDP Class 5: Robust.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Application Case Study Christmas Lights Controller
Embedded System Design Techniques™:
Software Design Refinement Using Design Patterns
Microcontrollers, Basics Tips and Tricks with PIC MCUs
Instructor: Dr. Hany H. Ammar
Embedded Software Development with Python and the Raspberry Pi
ABSTRACT The controller continuously polls the temperature with certain regular time intervals and displays over the 7_segment display The temperature.
REMOTE JAMMING DEVICE.
TV OPERATION JAMMING SYSTEM
Chapter 4 – Requirements Engineering
Embedded Software Development with Python and the Raspberry Pi
SUBMITTED BY EDGEFX TEAM
Part 3 Design What does design mean in different fields?
מעבדה במערכות משובצות ד"ר מרינה ליפשטיין דוא"ל:
Real Time Operating System
Introduction to Realtime Systems (& Embedded Systems)
An Introduction to Embedded Software Architecture and Design
Baremetal C Programming for Embedded Systems
Embedded Software Development with Python and the Raspberry Pi
An Introduction to Embedded Software Architecture and Design
Journey: Introduction to Embedded Systems
Writing Portable and Robust Firmware in C
Writing Portable and Robust Firmware in C
February 26, 2015 Jacob Beningo, CSDP
Baremetal C Programming for Embedded Systems
An Embedded Systems Course and Course
CS 501: Software Engineering Fall 1999
TCSP – Software Design.
Baremetal C Programming for Embedded Systems
Embedded System Development Lecture 1 1/10/2007
Objects First with Java A Practical Introduction using BlueJ
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
An Introduction to Embedded Software Architecture and Design
Objects First with Java A Practical Introduction using BlueJ
An Introduction to Embedded Software Architecture and Design
Embedded System Design Techniques™:
February 24, 2015 Jacob Beningo, CSDP
FPGA Vinyl to Digital Converter (VDC)
Chapter 13: I/O Systems.
Chapter 2: Building a System
Presentation transcript:

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

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

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

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

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

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!

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

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

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

Boot-loader Architecture Design Create a high level system architecture

Boot-loader Architecture Design High level software architecture

Boot-loader Architecture Design Create a use case diagram

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

Boot-loader Architecture Design Boot-loader Component Diagram

Boot-loader Architecture Design Boot-loader Detailed Component Diagram

Boot-loader Architecture Design Statechart design

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

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

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?

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

Jacob Beningo Newsletters P.O. Box 400 Embedded Monthly Linden, Michigan 48451 www.beningo.com Newsletters Embedded Monthly Low Power Design http://eepurl.com/2xJFr Training Bootloaders Embedded Software C/C++ : jacob@beningo.com : 810-844-1522 : Jacob_Beningo : Beningo Engineering : JacobBeningo : Embedded Basics Jacob Beningo Principal Consultant