Muutke küpsiste eelistusi

E-raamat: Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications

Edited by (Vice President of Software Engineering R&D for the Microcontroller and Microprocessor business line at NXP, Austin, U.S.A.), Edited by (Enterprise Architect, Train Performance and Transport Intelligence Businesses, GE Transportation)
  • Formaat: EPUB+DRM
  • Ilmumisaeg: 21-Jun-2019
  • Kirjastus: Newnes (an imprint of Butterworth-Heinemann Ltd )
  • Keel: eng
  • ISBN-13: 9780128094334
  • Formaat - EPUB+DRM
  • Hind: 105,04 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: EPUB+DRM
  • Ilmumisaeg: 21-Jun-2019
  • Kirjastus: Newnes (an imprint of Butterworth-Heinemann Ltd )
  • Keel: eng
  • ISBN-13: 9780128094334

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

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
Contributors xi
Acknowledgments xiii
Chapter 1 Software Engineering for Embedded and Real- Time Systems 1(32)
Rob Oshana
1 Software Engineering
2(5)
2 Embedded Systems
7(5)
3 Real- Time Systems
12(3)
4 Example of a Hard Real- Time System
15(2)
5 Real- Time Event Characteristics
17(2)
6 Challenges in Real- Time System Design
19(3)
7 The Embedded System's Software Build Process
22(2)
8 Distributed and Multiprocessor Architectures
24(1)
9 Software for Embedded Systems
25(3)
10 Hardware Abstraction Layers for Embedded Systems
28(5)
Chapter 2 Software Development Process 33(56)
Mark Kraeling
Lindsley Tania
1 Getting Started
34(3)
2 Requirements
37(2)
3 Architecture
39(3)
4 Design
42(6)
5 Implementation
48(1)
6 Testing
49(3)
7 Rolling It Together: Agile Development
52(25)
8 Advanced Topics
77(8)
9 Conclusion
85(1)
Exercises
86(1)
References
86(1)
Further Reading
87(2)
Chapter 3 Embedded and Multicore System Architecture-Design and Optimization 89(12)
Michael C. Brogioli
1 Introduction
89(1)
2 The Right Way and the Wrong Way
90(1)
3 Understanding Requirements
91(1)
4 Mapping the Application
92(4)
5 Helping the Compiler and Build Tools
96(2)
6 Power Optimization
98(3)
Chapter 4 Basic Programming Techniques 101(30)
Joe Hamman
1 Introduction
101(1)
2 Reference Platform Overview
102(1)
3 SDK Installation
103(4)
4 Target System Configuration and Initialization
107(9)
5 Programming Examples
116(13)
6 Summary
129(1)
Questions and Answers
129(2)
Chapter 5 Programming and Implementation Guidelines 131(22)
Mark Kraeling
1 Introduction
131(4)
2 Starting the Embedded Software Project
135(8)
3 Variable Structure
143(8)
Content Learning Exercises
151(2)
Chapter 6 Operating Systems 153(54)
Jean J. Labrosse
1 Foreground/Background Systems
155(1)
2 Real- Time Kernels
156(2)
3 R TOS (Real- Time Operating System)
158(4)
4 Assigning Task Priorities
162(1)
5 Determining the Size of a Stack
163(4)
6 Preemptive Scheduling
167(1)
7 Scheduling Points
168(1)
8 Round-Robin Scheduling
169(1)
9 Context Switching
169(4)
10 Interrupt Management
173(8)
11 The Clock Tick (or System Tick)
181(3)
12 Resource Management
184(12)
13 Synchronization
196(2)
14 Bilateral Rendezvous
198(1)
15 Message Passing
199(3)
16 Flow Control
202(2)
17 Clients and Servers
204(2)
18 Summary
206(1)
Chapter 7 Open-Source Software 207(38)
Jagdish Gediya
Jaswinder Singh
Prabhakar Kushwaha
Rajan Srivastava
Zening Wang
1 Linux
208(22)
2 U-Boot
230(9)
3 FreeR TOS
239(5)
References
244(1)
Chapter 8 Software and Compiler Optimization for Microcontrollers, Embedded Processors, and DSPs 245(24)
Michael C. Brogioli
1 Introduction
246(1)
2 Development Tools Overview
246(3)
3 Understanding the Embedded Target Architecture
249(1)
4 Basic Optimization Goals and Practices
250(6)
5 General Loop Transformations
256(3)
6 Code Size Optimization
259(4)
7 Data Structures
263(6)
Chapter 9 Embedded Software Quality, Integration, and Testing Techniques 269(70)
Mark Pitchford
1 What Is Software Test?
270(1)
2 Why Should We Test Software?
270(1)
3 How Much Testing Is Enough?
270(2)
4 When Should Testing Take Place?
272(1)
5 Who Makes the Decisions?
272(1)
6 Available Techniques
273(29)
7 Setting the Standard
302(13)
8 Dealing With the Unusual
315(17)
9 Implementing a Test Solution Environment
332(3)
10 Summary and Conclusions
335(1)
Questions and Answers
336(1)
Further Reading
337(2)
Chapter 10 Embedded Multicore Software Development 339(54)
Rob Oshana
1 Symmetric and Asymmetric Multiprocessing
340(3)
2 Parallelism Saves Power
343(2)
3 Look for Parallelism Opportunities
345(7)
4 Multicore Application Locality
352(8)
5 Multicore Programming Models
360(2)
6 Performance and Optimization of Multicore Systems
362(16)
7 Language Extensions Example-OpenMP
378(3)
8 Pulling It All Together
381(12)
Chapter 11 Safety-Critical Development 393(34)
Mark Kraeling
1 Introduction
394(3)
2 Project-Planning Strategies
397(5)
3 Faults, Failures, Hazards, and Risk Analysis
402(6)
4 Safety-Critical Architectures
408(4)
5 Software Implementation Strategies
412(15)
Chapter 12 Networking Software 427(38)
Sandeep Malik
Shreyansh Jain
Jaswinder Singh
1 Introduction
427(1)
2 Embedded Linux Networking
428(8)
3 Moving From the Linux Kernel to User Space
436(10)
4 Life of a Packet in a Native Linux Network Stack
446(2)
5 Networking Performance Optimization Techniques
448(11)
6 Case Studies: Covering Microcontrollers to Network Processors
459(4)
Exercises
463(1)
Further Reading
463(2)
Chapter 13 Internet of Things 465(36)
Mark Kraeling
Michael C. Brogioli
1 Introduction
466(2)
2 History and Device Progression
468(4)
3 Applications
472(7)
4 Enabling Technologies
479(4)
5 Internet of Things Architecture
483(3)
6 Communications Used in Internet of Things
486(8)
7 Data Analytics
494(2)
8 Internet of Things Development Challenges
496(3)
Exercises
499(2)
Chapter 14 Security and Cryptography 501(48)
Ruchika Gupta
Pankaj Gupta
Jaswinder Singh
1 What Is Security?
501(4)
2 Cryptology
505(9)
3 Life Cycle of a Secure Embedded System
514(4)
4 Threat Analysis
518(9)
5 Components of Secure Embedded Systems
527(19)
Questions
546(1)
References
546(1)
Further Reading
546(3)
Chapter 15 Machine Learning at the Edge 549(54)
Markus Levy
1 Introduction
550(1)
2 What Is Artificial Intelligence
551(1)
3 What Is Machine Learning?
552(5)
4 Feeding Your Brain-Data
557(6)
5 Support Vector Machine
563(5)
6 k-NN (Nearest Neighbor) Algorithm
568(1)
7 Decision Trees
569(3)
8 Neural Nets
572(22)
9 What Is Necessary to Bring ML to the Edge?
594(4)
10 Edge Learning/ Training
598(1)
References
599(2)
Further Reading
601(2)
Performance Analysis Using NXP's i.MX R T1050 Crossover Processor and the Zephyr™ Real- Time Operating System 603(14)
Index 617
Rob Oshana is Vice President of Software Engineering R&D for the Microcontroller and Microprocessor business line at NXP, responsible for software enablement, IoT connectivity, software middleware and security, operating systems, machine learning, software services and advanced technologies. He serves on multiple industry advisory boards and is a recognized international speaker. He has published numerous books and articles on software engineering and embedded systems. He is also an adjunct professor at the University of Texas and Southern Methodist University and is a Senior Member of IEEE. Mark is an enterprise architect for the Train Performance and Transport Intelligence businesses at GE Transportation. He is responsible for integration of networking and applications with worldwide customers locomotives and infrastructure. Mark is a regular speaker at embedded systems and industry conferences worldwide, focusing on virtualization, advanced wireless technologies, and asset performance management and their application to the transportation industry. Mark also actively participates in industry standards development including the Associate of American Railroads technical action groups. His leadership in the IoT space was recently highlighted by being elected to the program committee for the 2019 IoT Solutions World Congress.