Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Embedded Software Design
A Practical Approach to Architecture, Processes, and Coding Techniques
Taschenbuch von Jacob Beningo
Sprache: Englisch

61,95 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

Lieferzeit 1-2 Wochen

Kategorien:
Beschreibung
Design higher-quality embedded software from concept through production. This book assumes basic C and microcontroller programming knowledge and is organized into three critical areas: Software Architecture and Design; Agile, DevOps, and Processes; and Development and Coding Skills.
You'll start with a basic introduction to embedded software architecture and the considerations for a successful design. The book then breaks down how to architect an RTOS-based application and explore common design patterns and building blocks. Next, you'll review embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, the book will examine how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can¿t live without.
Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems need to carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. By the end of this book, you will have a defined development process, understand modern software architecture, and be equipped to start building embedded systems.
What You'll Learn
Understand what sound embedded system design is and how to employ it

Explore modern development processes for quality systems
Know where the bits hit the silicon: how to select a microcontroller
Master techniques to write configurable, automated code
Who This Book Is For
Embedded software and hardware engineers, enthusiasts, or any stakeholders who would like to learn modern techniques for designing and building embedded systems.
Design higher-quality embedded software from concept through production. This book assumes basic C and microcontroller programming knowledge and is organized into three critical areas: Software Architecture and Design; Agile, DevOps, and Processes; and Development and Coding Skills.
You'll start with a basic introduction to embedded software architecture and the considerations for a successful design. The book then breaks down how to architect an RTOS-based application and explore common design patterns and building blocks. Next, you'll review embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, the book will examine how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can¿t live without.
Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems need to carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. By the end of this book, you will have a defined development process, understand modern software architecture, and be equipped to start building embedded systems.
What You'll Learn
Understand what sound embedded system design is and how to employ it

Explore modern development processes for quality systems
Know where the bits hit the silicon: how to select a microcontroller
Master techniques to write configurable, automated code
Who This Book Is For
Embedded software and hardware engineers, enthusiasts, or any stakeholders who would like to learn modern techniques for designing and building embedded systems.
Über den Autor
Jacob Beningo
is an embedded software consultant with over 15 years of experience in microcontroller based real-time embedded systems. After spending over ten years designing embedded systems for automotive,defense and space industries, Jacob founded Beningo Embedded Group in 2009. Jacob has worked with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer who holds three degrees which include a Masters of Engineering from the University of Michigan. Jacob is an avid writer, trainer, consultant and entrepreneur who transforms the complex into simple and understandable concepts that accelerate technological innovation.


Jacob has demonstrated his leadership in the embedded systems industry by consulting and training at companies such as General Motors, Intel, Infineon and Renesas along with successfully completing over 50 projects. Jacob also speaks at and is involved in the embedded track selection committees at ARM Techcon, Embedded System Conferences and Sensor Expo. Jacob holds Bachelor's degrees in Electrical Engineering, Physics and Mathematics from Central Michigan University and a Master's degree in Space Systems Engineering from the University of Michigan.


In his spare time, Jacob enjoys spending time with his family, reading, writing, playing hockey and golf. In clear skies, he can often be found outside with his telescope, sipping a fine scotch while imaging the sky.
Zusammenfassung

Covers aspects of design, implementation that are rarely discussed

Includes real world experiences that can be immediately reused for your projects

Focuses on best practices that answer the questions the author is constantly asked

Inhaltsverzeichnis
Part 1 - Software Architecture DesignEmbedded System Design Philosophy¿ Challenges Facing Embedded Developers¿ Traditional Embedded Software Development¿ The Age of Modeling, Simulation and Off-chip Development¿ SOLID Design Principles¿ Test Driven Development (TDD)¿ Why Best Practices?Embedded Software Architecture Design¿ Architect First, Code Second¿ Architectural Layers¿ Single vs Multicore Architectures¿ Application Domain Decomposition¿ Interface Design Principles¿ Architectural LanguagesRTOS Application Design¿ Tasks, Threads and Processes¿ Task Decomposition Techniques¿ Task Scheduling Algorithms¿ Setting Task Priorities¿ Schedule-ability using Rate Monotonic Analysis¿ Designing Application Data Flow¿ Producer, Consumer, Processor and Transfer MechanismsSecure Application Design¿ Platform Security Architecture (PSA)¿ Security through Isolation¿ TrustZone¿ Memory map design¿ Memory Protection Units (MPUs)¿ Secure boot¿ Secure bootloaders and OTAsDesign Patterns¿ pub / sub¿ Rtos patterns¿ Handling interrupts¿ State machines¿ Active objectsPart 2 - Development ProcessesSoftware Quality¿ Coding Standards¿ Code Reviews¿ Code Metrics¿ Code Analysis (static vs dynamic)Software Testing and Verification¿ Integration Testing¿ Performance Testing¿ Regression Testing Software Verification Results¿ Testing of executable object code¿ Code coverage analysis¿ Test ReportsApplication Modeling and Simulation¿ Modeling Methodologies¿ Simulations Role¿ wxWidgets¿ ExampleTest Driven Development¿ Overview¿ Test Harnesses¿ Code Coverage¿ Test DesignContinuous Integration / Continuous Deployment¿ Process Overview¿ Docker¿ Jenkins¿ Git Integrations¿ Merge Process¿ DeploymentPart 3 - Where the Bits hit the SiliconSelecting a Microcontroller¿ Traditional Techniques¿ Modern Selection Process¿ Selection Considerations¿ KT Matrix Design and UseCode Implementation Techniques¿ Interfaces¿ Command Processing¿ Task initialization¿ Assertions¿ TelemetryDiagnostic and Fault Handling¿ Design failure mode and effect analysis (DFMEA)¿ Fault Handling Strategies¿ Diagnostic Tasks¿ Error Checking Code (ECC)¿ WatchdogsApplication Optimization¿ Models and Simulation versus Reality¿ Scalability¿ Maintenance¿ Code size versus speed¿ Compilation Settings¿ Memory managementThe Right Tool for the Job¿ Tracing¿ Code Analyzers¿ Protocol analysis¿ Metric tools¿ Open source versus commercial
Details
Erscheinungsjahr: 2022
Fachbereich: Nachrichtentechnik
Genre: Technik
Rubrik: Naturwissenschaften & Technik
Medium: Taschenbuch
Inhalt: XXVIII
463 S.
105 s/w Illustr.
67 farbige Illustr.
463 p. 172 illus.
67 illus. in color.
ISBN-13: 9781484282786
ISBN-10: 1484282787
Sprache: Englisch
Ausstattung / Beilage: Paperback
Einband: Kartoniert / Broschiert
Autor: Beningo, Jacob
Auflage: 1st ed.
Hersteller: Apress
Apress L.P.
Maße: 254 x 178 x 27 mm
Von/Mit: Jacob Beningo
Erscheinungsdatum: 01.11.2022
Gewicht: 0,924 kg
Artikel-ID: 121436437
Über den Autor
Jacob Beningo
is an embedded software consultant with over 15 years of experience in microcontroller based real-time embedded systems. After spending over ten years designing embedded systems for automotive,defense and space industries, Jacob founded Beningo Embedded Group in 2009. Jacob has worked with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer who holds three degrees which include a Masters of Engineering from the University of Michigan. Jacob is an avid writer, trainer, consultant and entrepreneur who transforms the complex into simple and understandable concepts that accelerate technological innovation.


Jacob has demonstrated his leadership in the embedded systems industry by consulting and training at companies such as General Motors, Intel, Infineon and Renesas along with successfully completing over 50 projects. Jacob also speaks at and is involved in the embedded track selection committees at ARM Techcon, Embedded System Conferences and Sensor Expo. Jacob holds Bachelor's degrees in Electrical Engineering, Physics and Mathematics from Central Michigan University and a Master's degree in Space Systems Engineering from the University of Michigan.


In his spare time, Jacob enjoys spending time with his family, reading, writing, playing hockey and golf. In clear skies, he can often be found outside with his telescope, sipping a fine scotch while imaging the sky.
Zusammenfassung

Covers aspects of design, implementation that are rarely discussed

Includes real world experiences that can be immediately reused for your projects

Focuses on best practices that answer the questions the author is constantly asked

Inhaltsverzeichnis
Part 1 - Software Architecture DesignEmbedded System Design Philosophy¿ Challenges Facing Embedded Developers¿ Traditional Embedded Software Development¿ The Age of Modeling, Simulation and Off-chip Development¿ SOLID Design Principles¿ Test Driven Development (TDD)¿ Why Best Practices?Embedded Software Architecture Design¿ Architect First, Code Second¿ Architectural Layers¿ Single vs Multicore Architectures¿ Application Domain Decomposition¿ Interface Design Principles¿ Architectural LanguagesRTOS Application Design¿ Tasks, Threads and Processes¿ Task Decomposition Techniques¿ Task Scheduling Algorithms¿ Setting Task Priorities¿ Schedule-ability using Rate Monotonic Analysis¿ Designing Application Data Flow¿ Producer, Consumer, Processor and Transfer MechanismsSecure Application Design¿ Platform Security Architecture (PSA)¿ Security through Isolation¿ TrustZone¿ Memory map design¿ Memory Protection Units (MPUs)¿ Secure boot¿ Secure bootloaders and OTAsDesign Patterns¿ pub / sub¿ Rtos patterns¿ Handling interrupts¿ State machines¿ Active objectsPart 2 - Development ProcessesSoftware Quality¿ Coding Standards¿ Code Reviews¿ Code Metrics¿ Code Analysis (static vs dynamic)Software Testing and Verification¿ Integration Testing¿ Performance Testing¿ Regression Testing Software Verification Results¿ Testing of executable object code¿ Code coverage analysis¿ Test ReportsApplication Modeling and Simulation¿ Modeling Methodologies¿ Simulations Role¿ wxWidgets¿ ExampleTest Driven Development¿ Overview¿ Test Harnesses¿ Code Coverage¿ Test DesignContinuous Integration / Continuous Deployment¿ Process Overview¿ Docker¿ Jenkins¿ Git Integrations¿ Merge Process¿ DeploymentPart 3 - Where the Bits hit the SiliconSelecting a Microcontroller¿ Traditional Techniques¿ Modern Selection Process¿ Selection Considerations¿ KT Matrix Design and UseCode Implementation Techniques¿ Interfaces¿ Command Processing¿ Task initialization¿ Assertions¿ TelemetryDiagnostic and Fault Handling¿ Design failure mode and effect analysis (DFMEA)¿ Fault Handling Strategies¿ Diagnostic Tasks¿ Error Checking Code (ECC)¿ WatchdogsApplication Optimization¿ Models and Simulation versus Reality¿ Scalability¿ Maintenance¿ Code size versus speed¿ Compilation Settings¿ Memory managementThe Right Tool for the Job¿ Tracing¿ Code Analyzers¿ Protocol analysis¿ Metric tools¿ Open source versus commercial
Details
Erscheinungsjahr: 2022
Fachbereich: Nachrichtentechnik
Genre: Technik
Rubrik: Naturwissenschaften & Technik
Medium: Taschenbuch
Inhalt: XXVIII
463 S.
105 s/w Illustr.
67 farbige Illustr.
463 p. 172 illus.
67 illus. in color.
ISBN-13: 9781484282786
ISBN-10: 1484282787
Sprache: Englisch
Ausstattung / Beilage: Paperback
Einband: Kartoniert / Broschiert
Autor: Beningo, Jacob
Auflage: 1st ed.
Hersteller: Apress
Apress L.P.
Maße: 254 x 178 x 27 mm
Von/Mit: Jacob Beningo
Erscheinungsdatum: 01.11.2022
Gewicht: 0,924 kg
Artikel-ID: 121436437
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte