Book description
Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications, Second Edition provides the techniques and technologies in software engineering to optimally design and implement an embedded system. Written by experts with a solution focus, this encyclopedic reference gives an indispensable aid on how to tackle the day-to-day problems encountered when using software engineering methods to develop embedded systems. New sections cover peripheral programming, Internet of things, security and cryptography, networking and packet processing, and hands on labs. Users will learn about the principles of good architecture for an embedded system, design practices, details on principles, and much more.
- Provides a roadmap of key problems/issues and references to their solution in the text
- Reviews core methods and how to apply them
- Contains examples that demonstrate timeless implementation details
- Users case studies to show how key ideas can be implemented, the rationale for choices made, and design guidelines and trade-offs
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Contributors
- Acknowledgments
-
1: Software Engineering for Embedded and Real-Time Systems
- Abstract
- 1 Software Engineering
- 2 Embedded Systems
- 3 Real-Time Systems
- 4 Example of a Hard Real-Time System
- 5 Real-Time Event Characteristics
- 6 Challenges in Real-Time System Design
- 7 The Embedded System’s Software Build Process
- 8 Distributed and Multiprocessor Architectures
- 9 Software for Embedded Systems
- 10 Hardware Abstraction Layers for Embedded Systems
- 2: Software Development Process
- 3: Embedded and Multicore System Architecture—Design and Optimization
- 4: Basic Programming Techniques
- 5: Programming and Implementation Guidelines
-
6: Operating Systems
- Abstract
- 1 Foreground/Background Systems
- 2 Real-Time Kernels
- 3 RTOS (Real-Time Operating System)
- 4 Assigning Task Priorities
- 5 Determining the Size of a Stack
- 6 Preemptive Scheduling
- 7 Scheduling Points
- 8 Round-Robin Scheduling
- 9 Context Switching
- 10 Interrupt Management
- 11 The Clock Tick (or System Tick)
- 12 Resource Management
- 13 Synchronization
- 14 Bilateral Rendez-vous
- 15 Message Passing
- 16 Flow Control
- 17 Clients and Servers
- 18 Summary
- 7: Open-Source Software
- 8: Software and Compiler Optimization for Microcontrollers, Embedded Processors, and DSPs
-
9: Embedded Software Quality, Integration, and Testing Techniques
- Abstract
- 1 What Is Software Test?
- 2 Why Should We Test Software?
- 3 How Much Testing Is Enough?
- 4 When Should Testing Take Place?
- 5 Who Makes the Decisions?
- 6 Available Techniques
- 7 Setting the Standard
- 8 Dealing With the Unusual
- 9 Implementing a Test Solution Environment
- 10 Summary and Conclusions
- Questions and Answers
- 10: Embedded Multicore Software Development
- 11: Safety-Critical Development
- 12: Networking Software
- 13: Internet of Things
- 14: Security and Cryptography
- 15: Machine Learning at the Edge
- Appendix: Performance Analysis Using NXP’s i.MX RT1050 Crossover Processor and the Zephyr™ Real-Time Operating System
- Index
Product information
- Title: Software Engineering for Embedded Systems, 2nd Edition
- Author(s):
- Release date: June 2019
- Publisher(s): Newnes
- ISBN: 9780128094334
You might also like
book
Software Engineering for Embedded Systems
This Expert Guide gives you the techniques and technologies in software engineering to optimally design and …
book
Programming Embedded Systems, 2nd Edition
If you have programming experience and a familiarity with C--the dominant language in embedded systems--Programming Embedded …
book
Embedded Systems Architecture - Second Edition
Design safe and reliable software for embedded systems and explore the internals of device drivers, RTOS, …
book
Embedded Systems Architecture
A comprehensive guide to reaping the benefits of architectural modeling in embedded design About This Book …