Home Page Icon
Home Page
Table of Contents for
Cover image
Close
Cover image
by Mark Kraeling, Robert Oshana
Software Engineering for Embedded Systems, 2nd Edition
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
Abstract
1 Getting Started
2 Requirements
3 Architecture
4 Design
5 Implementation
6 Testing
7 Rolling It Together: Agile Development
8 Advanced Topics
9 Conclusion
Exercises
3: Embedded and Multicore System Architecture—Design and Optimization
Abstract
1 Introduction
2 The Right Way and the Wrong Way
3 Understanding Requirements
4 Mapping the Application
5 Helping the Compiler and Build Tools
6 Power Optimization
4: Basic Programming Techniques
Abstract
1 Introduction
2 Reference Platform Overview
3 SDK Installation
4 Target System Configuration and Initialization
5 Programming Examples
6 Summary
Questions and Answers
5: Programming and Implementation Guidelines
Abstract
1 Introduction
2 Starting the Embedded Software Project
3 Variable Structure
Content Learning Exercises
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
Abstract
1 Linux
2 U-Boot
3 FreeRTOS
Questions
8: Software and Compiler Optimization for Microcontrollers, Embedded Processors, and DSPs
Abstract
1 Introduction
2 Development Tools Overview
3 Understanding the Embedded Target Architecture
4 Basic Optimization Goals and Practices
5 General Loop Transformations
6 Code Size Optimization
7 Data Structures
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
Abstract
1 Symmetric and Asymmetric Multiprocessing
2 Parallelism Saves Power
3 Look for Parallelism Opportunities
4 Multicore Application Locality
5 Multicore Programming Models
6 Performance and Optimization of Multicore Systems
7 Language Extensions Example—OpenMP
8 Pulling It All Together
11: Safety-Critical Development
Abstract
1 Introduction
2 Project-Planning Strategies
3 Faults, Failures, Hazards, and Risk Analysis
4 Safety-Critical Architectures
5 Software Implementation Strategies
Exercises
12: Networking Software
Abstract
1 Introduction
2 Embedded Linux Networking
3 Moving From the Linux Kernel to User Space
4 Life of a Packet in a Native Linux Network Stack
5 Networking Performance Optimization Techniques
6 Case Studies: Covering Microcontrollers to Network Processors
Exercises
13: Internet of Things
Abstract
1 Introduction
2 History and Device Progression
3 Applications
4 Enabling Technologies
5 Internet of Things Architecture
6 Communications Used in Internet of Things
7 Data Analytics
8 Internet of Things Development Challenges
Exercises
14: Security and Cryptography
Abstract
1 What Is Security?
2 Cryptology
3 Life Cycle of a Secure Embedded System
4 Threat Analysis
5 Components of Secure Embedded Systems
Questions
15: Machine Learning at the Edge
Abstract
1 Introduction
2 What Is Artificial Intelligence
3 What Is Machine Learning?
4 Feeding Your Brain—Data
5 Support Vector Machine
6 k-NN (Nearest Neighbor) Algorithm
7 Decision Trees
8 Neural Nets
9 What Is Necessary to Bring ML to the Edge?
10 Edge Learning/Training
Appendix: Performance Analysis Using NXP’s i.MX RT1050 Crossover Processor and the Zephyr™ Real-Time Operating System
A.1 Introduction
A.2 Configuration Information
A.3 Scope of Analysis
A.4 Analysis Results
A.5 Summary and Conclusions
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Title page
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset