Index
Note: Page numbers followed by f indicate figures and t indicate tables.
A
Abstract Interpretation
275Advanced Data Encryption Scheme (AES)
509Aerospace DO-178B standard
323Agile development process
48ceremonies promote and increase flow
feature writing, decomposition, and grooming
67–68sprint backlog grooming
68–69complexity/organization scaling
53–55,
54frequirements
vs. acceptance criteria
66–67Waterfall process documentation
65product
vs. project teams
74–75quarterly release planning
63–64system-of-systems approach
52“unplanned” work flavors
64upstream and downstream functional flows
52user scenarios and activities
63Agile software development model ,
5fAmazon Web Services (AWS)
239Application Layer Gateways
432Application programming interfaces (APIs)
206ARM TrustZone technology
530Asymmetric cryptography
509Asynchronous real-time events
17Automatic static analysis
50Automobile antilock braking system
Automobile shift control system
13,
14fB
Berkley Packet Filter (BPF)
446Boosting, decision tree
571C
low-power applications
181Cloud-computing development
497–498Cloud-computing nodes
484compiler flags and flag mining
259–260Freescale Semiconductor
261premium- encoded instruction
261reduced-footprint premium encoding
261variable-length instruction encoding
260–261Motor Industry Software Reliability Association (MISRA-C)
140Computer-aided software engineering (CASE) tools
34Conceptual thinkers
56–57Configuration management (CM) system
136CPU register stacking order
171,
171finterrupt stack pointer points
171task stack pointer points
171Convolutional neural networks (CNNs)
572asymmetric cryptography
509algorithm registration interface
512dynamic algorithm loader
512random number generator (RNG)
509–510Cyclic redundancy check (CRC)
396D
application-specific domains
495Data Encryption Scheme (DES)
508encryption key protection
543directory/file level encryption/authentication
543SIMD-based optimization and memory alignment
embedded applications
246exemplary compiler optimization levels
248,
248tperipheral applications
249Device-to-device communications
487–489Device-to-gateway (Fog) computing communications
491–492,
492fDirected acyclic graph (DAG)
575,
576fDiscretionary Access Control (DAC)
534–535Drug and Device Accountability Act
303Dynamic algorithm loader
512Dynamic messaging subsystem interfaces
40–41E
Embedded device development
498Embedded Linux networking
Application Layer Gateways
432open-source utilities
432emulation and diagnostics
hardware and software components
software system build process
volatile and nonvolatile memory
eNodeB real-time task
92,
92fEnsemble learning, decision tree
570F
data architecture model
473Failure mode and effects analysis (FMEA)
401Four-core multicore processor
348,
349fFRDM-KW41Z reference board, NXP Semiconductor
102–103,
102fadd-on software products
243Amazon Web Services (AWS)
239IPC and synchronizations
242supported architectures
240“Front light management” system
29,
30–31fG
H
Hard real-time system
14f,
154automobile shift control system
13,
14fdeadline first algorithm
17vs. soft real-time systems
13,
14f Hardware abstraction layers (HALs)
automotive application
28,
29fcode compliant creation
29embedded system development flow
29,
31f“front light management” system
29,
30–31freal-time operating system (RTOS)
28DSPLIB documentation
94–95FIR algorithm component
93–94I
cloud-computing nodes
484device-to-device communications
487–489device-to-gateway (Fog) computing communications
491–492,
492fmultiple technologies
486application-specific domains
495cloud-computing development
497–498embedded device development
498microprocessor
vs. microcontroller architecture
479–480,
479fKernel-aware interrupt service routine
174,
175fnonkernel-aware interrupt service routine
177,
177fInterrupt service routines (ISRs)
155Isochronous real-time events
17ISO 26262 recognized process standard
automotive-embedded applications
311safety-critical system development
311sound development process
311K
Kerckhoffs’s principle
508Knots and cyclomatic complexity
blocks and control flow branches
286–287cyclomatic complexity value
289modified static flow graph
290L
Life cycle management, embedded system
514,
514fcommunication protocol stack
219object-oriented languages
216software driver and Linux kernel version
215–216software releases, product shipping
215stable operating system
215long-term support (LTS)
225complete network stack solution
211GNU General Public License (GPL)
229–230Linux Unified Key Setup (LUKS)
543NXP’s i.MX RT1050 Crossover Processor and Zephyr™ real-time operating system
application peripheral interface (API)
607Low-Power Timer (LPTMR)
123M
artificial intelligence (AI)
551–552bias
vs. variance tradeoff
555,
556fcomputational resources
594classification algorithm
563probability theory and statistics
557multiclass classification
554multilabel classification
554neural networks (NNs)
551directed acyclic graph (DAG)
575,
576fpostprocessing
vs. dynamic optimization
596regularization techniques
555semisupervised learning
553support vector machine (SVM) algorithm
quadratic programming
565unsupervised learning
553Mandatory Access Control (MAC)
534–535Market Functional Requirements (MFRs)
60intertask communication
199Message Passing Interface (MPI)
361export
vs. live data paradigm
80–81life cycle cost estimation
78–79statistical process control
78–79Minimal viable product (MVP)
53–54Motor Industry Software Reliability Association (MISRA-C)
140Multicore processor system
matrix multiply algorithm
354,
354fcorrect/Smooth/detect functions
391,
391flanguage extensions, OpenMP
multithreading method
378performance and optimization
latency-oriented core
363load balancing (SMP Linux) and scheduling
366–367Multicore Programming Practice Guide
362,
362fsynchronization barrier
372Message Passing Interface (MPI)
361symmetric multiprocessing (SMP)
341f,
342Multicore Programming Practice Guide
362,
362fMulticore system architecture
algorithmic components selection
98high-level language
96–97computational and memory bottlenecks
93,
93fDSPLIB documentation
94–95FIR algorithm component
93–94implementation and analysis
89–90informed decision making
90code and data placement
99interrupt driven design
99software architecture
98–99voltage and frequency
100processing components
92–93eNodeB real-time task
92,
92ffunctional requirements
91,
91fpseudo real-time tasks
92,
92fsystem dimensions and questions
91–92,
91fcentralized resource allocation and management
24hardware processing elements
24N
embedded Linux networking
Application Layer Gateways
432open-source utilities
432Linux kernel to user space
Berkley Packet Filter (BPF)
446compliance and quality assurance
436protocols and devices
436virtual I/O layer and HugePages
439–440low-end single-core network processors
448network packet processing
ultra-low-end microcontrollers
448Network packet processing
Neural networks (NNs)
551directed acyclic graph (DAG)
575,
576fNext Generation Firewalls
432Nonembedded system build process
22,
23fNXP KW41Z512VHT4 System on Chip (SoC) device
102–103NXP’s i.MX RT1050 Crossover Processor
application peripheral interface (API)
607O
Object code verification (OCV)
aerospace DO-178B standard
323object
vs. source code control flow
automated OCV solutions
330requirements traceability
322Object-oriented programming
OpenMP, language extensions
multithreading method
378application programming interfaces (APIs)
206low-power applications
181CPU register stacking order
171,
171finterrupt stack pointer points
171task stack pointer points
171foreground/background systems
155,
156fhard real-time systems
154intertask communication
199central processing unit (CPU)
156tasks and managing system resources
157real-time operating system (RTOS)
mutual exclusion mechanisms
185,
186tround-robin scheduling
169soft real-time systems
154floating-point unit (FPU) registers
163Optimization goals and practices
C optimization techniques
250unaligned memory accesses
255conceptual thinkers
56–57Market Functional Requirements (MFRs)
60project leader/manager
57proposal cycle testers
61P
Pair programming approach
48Parallelism, multicore processor system
four-core multicore processor
348,
349finstructions per cycle (IPC)
343loop-carried dependence
346parallel multicore circuit
344,
344ftwo-core multicore processor
348,
348fPeriodic Interrupt Timer (PIT)
123Periodic messaging subsystem interfaces
41Periodic waveforms (PWM)
123Programming and implementation guidelines
embedded system, definition
134–135embedded software project
hardware platform input
136safety requirements, source code
142–143team programming guidelines
138–139high-quality programming principles
performance characteristics
132maintainability and project length
132programmer experience and background
132safety-critical code development
132syntax-oriented approach
131Message Passing Interface (MPI)
361“behind the scenes” actions
102project and source folder expansion
117FRDM-KW41Z reference board, NXP Semiconductor
102–103,
102fNXP KW41Z512VHT4 System on Chip (SoC) device
102–103onboard JTAG debugging interface
102–103high-level library routines
120–122interrupt-driven mode
119software development kits (SDKs)
cross-development tools
103download and installation
105Project files/organization
compiler/debugger/linker suite
136configuration management (CM) system
136compiler/linker toolsets
138team preference/file organization
136Project kickoff meeting
37assessment communication
398built-in-test (BIT) capability
400certification block diagram
399communication integrity objectives
399fault annunciation coverage
400Interface Control Document
399labor-intensive analysis
401project certification scope
397reliance and expectation, operator/user
400safety-defensive strategies
399user-level documentation
401Proposal cycle testers
61Pseudo real-time tasks
92,
92fR
Random forest, decision tree
571,
572fRandom number generator (RNG)
509–510Rate monotonic scheduling (RMS)
162application specific
11–12processing information
11resource constrained
11–12sensors and actuators ,
10ftire-pressure monitoring system (TPMS)
9–10automobile motor, electronic injector control
46C++ programming language
47state machine diagram
46,
47fresource allocation
17–18resource management
18–19central processing unit (CPU)
156tasks and managing system resources
157Real-time operating system (RTOS)
28failures detection and overcome
20–21multiple tasks execution
21,
21fvs. time-shared systems
15,
15t Receive Flow Steering (RFS)
457Receive Packet Steering (RPS)
457host-based verification
283target-based verification
283mutual exclusion mechanisms
185,
186tRound-robin scheduling
169S
automotive-embedded applications
311safety-critical system development
311sound development process
311Safety-critical development
project-planning strategies
assessment communication
398built-in-test (BIT) capability
400certification block diagram
399communication integrity objectives
399fault annunciation coverage
400Interface Control Document
399labor-intensive analysis
401project certification scope
397reliance and expectation, operator/user
400safety-defensive strategies
399user-level documentation
401software implementation strategies
permissive state forces
420specific variable value checking
415–416timing execution checking
417attacker’s ability, mitigation
530Trustworthy Embedded System
530design and development phase
514branch target injection
527shared data structures
190Semisupervised learning
553Side-channel attacks (SCAs)
521–522SIMD-based optimization and memory alignment
Soft real-time systems
154Software development kits (SDKs)
cross-development tools
103download and installation
105Software development life cycle (SDLC)
testing and verification
518Software development phases
verification and validation (V&V)
Software development process
operating performance
40–41performance-critical dataflows
40safety-critical elements
40computer-aided software engineering (CASE) tools
34logical data/object flows
42fluid/ad hoc process
34–35project kickoff meeting
37operation and functioning
38automatic static analysis
50Software engineering principles ,
7fSoftware implementation strategies
permissive state forces
420specific variable value checking
415–416timing execution checking
417Software integrity level (SIL)
271Software of unknown pedigree (SOUP)
static and dynamic analysis
320–322structure and modularity
321automated code review
280automatically generating test cases
300–302configuration management and process
280high-integrity systems
292requirements traceability matrix (RTM)
281,
281fhost-based verification
283target-based verification
283safety- and security-critical standards
281software integrity level (SIL)
271array-out-of-bounds error
285cyclomatic complexity derivation
285,
289fdynamic behavior prediction
275–276GCC/Microsoft Visual Studio
285International Obfuscated C Code Contest
283test-driven development (TDD)
300traceability solutions, high-level requirements
279–280,
279fvalidation and verification tasks
278Spiral software development model ,
4fSprint backlog grooming
68–69floating-point unit (FPU) registers
163Drug and Device Accountability Act
303ISO 26262 recognized process standard
305–308technical safety requirements
304internal process standard
requirements traceability matrix (RTM)
312–313object code verification (OCV)
aerospace DO-178B standard
323requirements traceability
322process/coding standards
312software development quality
302software development life cycle (SDLC)
517array-out-of-bounds error
285cyclomatic complexity derivation
285,
289fdynamic behavior prediction
275–276GCC/Microsoft Visual Studio
285International Obfuscated C Code Contest
283Stochastic gradient descent (SGD)
Super loop architecture
25,
26fSupport vector machine (SVM) algorithm
quadratic programming
565Symmetric multiprocessing (SMP)
341f,
342Synchronous real-time events
17T
Target system configuration
SDK I/O helper routines
116“C” programing language
111Task Control Block (TCB)
159central processing unit (CPU)
158run-to-completion loop
160signaling and message-passing mechanisms
161–162“sleep”/“time delay” services
161Task Control Block (TCB)
159Test-driven development (TDD)
300Test solution environment, implementation
automated code review
333“V” development model
332side-channel attacks (SCAs)
521–522branch target injection
527Timer/PWM Module (TPM)
123Time-shared systems
15,
15tTire-pressure monitoring system (TPMS)
9–10Transport Layer Security (TLS)
545Trusted Computing Group (TCG)
528Trusted execution environment (TEE)
ARM TrustZone technology
530Trustworthy Embedded System
530Two-core multicore processor
348,
348fU
code and directory organization
233environment variables
231multiple boot source support
230–231operating system boot commands
232“sandbox” architecture
232shell (user interface)
231stand-alone applications
232open-source community
238secure boot/chain-of-trust boot
237“shell”-like interface
230supported architectures and operating systems
238Unified Modeling Language (UML)
45–46,
45fapplication and test environment
295safety-critical standards
296,
304ftest-driven development (TDD)
300Unsupervised learning
553V
Variable-length instruction encoding
260–261Virtual I/O layer and HugePages
439–440W
Waterfall software development model ,
4fX
Z
Zephyr™ real-time operating system
application peripheral interface (API)
607