Software engineering for embedded systems methods, practical techniques, and applications
Gespeichert in:
Format: | Buch |
---|---|
Sprache: | English |
Veröffentlicht: |
Amsterdam [u.a.]
Newnes
2013
|
Ausgabe: | 1. ed. |
Schriftenreihe: | Expert guide
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV041076366 | ||
003 | DE-604 | ||
005 | 20180409 | ||
007 | t| | ||
008 | 130607s2013 xx ad|| |||| 00||| eng d | ||
020 | |a 9780124159174 |9 978-0-12-415917-4 | ||
035 | |a (OCoLC)854724323 | ||
035 | |a (DE-599)BVBBV041076366 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-384 |a DE-473 |a DE-1050 |a DE-573 | ||
084 | |a ST 153 |0 (DE-625)143597: |2 rvk | ||
245 | 1 | 0 | |a Software engineering for embedded systems |b methods, practical techniques, and applications |c Robert Oshana, Mark Kraeling [ed.] |
250 | |a 1. ed. | ||
264 | 1 | |a Amsterdam [u.a.] |b Newnes |c 2013 | |
300 | |a XLIX, 1150 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Expert guide | |
650 | 4 | |a Software engineering | |
650 | 4 | |a Embedded computer systems | |
650 | 0 | 7 | |a Software Engineering |0 (DE-588)4116521-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Eingebettetes System |0 (DE-588)4396978-1 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Eingebettetes System |0 (DE-588)4396978-1 |D s |
689 | 0 | 1 | |a Software Engineering |0 (DE-588)4116521-4 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Oshana, Robert |e Sonstige |0 (DE-588)1079330119 |4 oth | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026053237&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-026053237 |
Datensatz im Suchindex
_version_ | 1819656946127470592 |
---|---|
adam_text | Contents
Software Engineering
for Embedded
Systems:
A
Roadmap...................................xxiii
Foreword to
Software Engineering
for Embedded
Systems................................xxxvii
Acknowledgments
.........................................................................................xxxix
About the Editors
.............................................................................................xli
About the Authors
..........................................................................................xliii
Chapter
1:
Software Engineering of Embedded and Real-Time Systems
.................... 1
Software engineering
....................................................................................................
I
Embedded systems
.......................................................................................................7
Embedded systems are reaetive systems
......................................................................9
Real-time systems
.......................................................................................................12
Types of real-time systems
—
soft and hard
..............................................................12
Examples of hard real-time
........................................................................................15
Real-lime event eharacteristics
...................................................................................17
Efficient execution and the execution environment
..................................................17
Challenges in real-time system design
.......................................................................18
Response time
.............................................................................................................19
Recovering
from
failures
............................................................................................20
The embedded system software build process
...........................................................21
Distributed and multi-processor architectures
...........................................................23
Software for embedded systems
.................................................................................24
Super loop architecture
...............................................................................................24
Hardware abstraction layers (HAL) for embedded systems
......................................27
Summary
.....................................................................................................................30
Chapter
2:
Embedded Systems Hardware/Software Co-Development
.....................33
Today s embedded systems
—
an example
................................................................33
HW/SW prototyping users
.........................................................................................37
HW/SW prototyping options
......................................................................................38
Prototyping decision criteria
......................................................................................41
Choosing the right prototype
......................................................................................43
Industry design chain
..................................................................................................44
The need to change the design flow
..,.,.,...................................................................45
vi
Contents
Different types of virtual prototypes
..........................................................................45
A brief history of virtual prototypes
..........................................................................46
The limits of proprietary offerings
.............................................................................47
What makes virtual prototypes fast
............................................................................48
Standardization: the era of SystemC TLM-2.0
..........................................................49
SystemC TLM-2 abstraction levels
............................................................................50
Architecture virtual prototypes
...................................................................................51
Software virtual prototypes
........................................................................................52
Summary
—
the growing importance of virtualization
.............................................56
Chapter
3:
Software Modeling for Embedded Systems
.........................................59
When and why should you model your embedded system?
.....................................59
Modeling
.....................................................................................................................60
What is a modeling language?
...................................................................................65
Examples of modeling languages
...............................................................................66
The V diagram promise
..............................................................................................69
So, why would you want to model your embedded system?
....................................72
When should you model your embedded system?
....................................................73
Mission- and safety-critical applications
...................................................................73
Highly complex applications and systems
.................................................................74
Operational complexity
..............................................................................................78
Cost of defect versus when detected
..........................................................................79
Large development teams require modeling
..............................................................80
Modeling is often the only choice
.............................................................................81
So
—
modeling is great, but aren t all models wrong?
.............................................83
You have your prototype
—
now what?
.....................................................................86
Conclusion
..................................................................................................................89
Next steps
-
try it!
.....................................................................................................89
Closed-loop control with a DC motor
.......................................................................90
Learn more about prototyping with a downloadable kit
...........................................90
Designing applications with the
N1 Statechart
Module
.............................................90
Design and simulate a brushed dc motor h-bridge circuit
........................................90
Multi-domain physical modeling with open-source
Modélica
models
.....................91
References
...................................................................................................................91
Chapter
4:
Software Design Architecture and Patterns for
Embedded Systems
...........................................................................................93
Overview of architecture and design
.........................................................................93
Architecture is about system-wide optimization
.......................................................94
Three levels of design
................................................................................................96
What are design patterns?
..........................................................................................97
Must I use object-oriented techniques to use design patterns?
.................................98
An architectural example
.........................................................................................100
Contents
vii
Using patterns
...........................................................................................................103
Making trade-off decisions
.......................................................................................106
Software architecture categories and views
.............................................................107
Primary architectural views
......................................................................................107
Secondary viewpoints
...............................................................................................121
Summary
...................................................................................................................121
References
.................................................................................................................122
Chapter
5:
Real-Time
Building Blocks: Events and Triggers
................................ 123
Events and triggers
...................................................................................................
1
24
Room temperature unit
.............................................................................................
1
24
Event system
.............................................................................................................
1
26
Event handle
.............................................................................................................
1
27
Event methods
..........................................................................................................
1
29
Event data structure
..................................................................................................
1
30
Reentrancy
................................................................................................................
1
31
Disable and enable interrupts
...................................................................................132
EnterCritical and ExitCritical
...................................................................................132
Semaphores
...............................................................................................................132
Implementation with Enter/ExitCritical
...................................................................133
Event processing
.......................................................................................................133
Integration
.................................................................................................................134
Triggers
.....................................................................................................................136
Blinking LED
...........................................................................................................136
Design idea
...............................................................................................................137
Tick timer
.................................................................................................................138
Trigger interface
.......................................................................................................139
Trigger descriptor
.....................................................................................................140
Data allocation
..........................................................................................................141
SetTrigger
.................................................................................................................142
IncTicks
....................................................................................................................144
Making it reentrant
...................................................................................................148
Initialization
..............................................................................................................149
Blink!
........................................................................................................................150
Beep!
.........................................................................................................................151
Real-time aspects
......................................................................................................153
Summary and source code
.......................................................................................154
Chapter
6:
Hardware s Interface to Embedded Software
.................................... 155
Introduction
...............................................................................................................156
Collaborate with the hardware team
........................................................................157
Proactive collaboration
.............................................................................................157
Ambassadors
.............................................................................................................158
viii Contents
Register
design
tools
................................................................................................158
Co-development activities
........................................................................................160
System integration
....................................................................................................160
Useful hardware design aspects
...............................................................................161
Notification of hardware events
...............................................................................161
Launching tasks in hardware
....................................................................................162
Bit field alignment
....................................................................................................163
Fixed bit positions
....................................................................................................164
Block version number
..............................................................................................165
Debug hooks
.............................................................................................................165
Supporting multiple versions of hardware
...............................................................167
Compile-time switches
.............................................................................................167
Build-time switches
..................................................................................................171
Run-time switches
....................................................................................................174
Self-adapting switches
..............................................................................................174
Difficult hardware interactions
.................................................................................176
Atomic register access
..............................................................................................176
Mixed bit types in the same register
........................................................................178
Edge vs. level interrupts
...........................................................................................180
Testing and troubleshooting
.....................................................................................180
Temporary hooks
......................................................................................................180
Permanent hooks
.......................................................................................................181
Conclusion
................................................................................................................182
Best practices
............................................................................................................182
Chapter
7:
Embedded Software Programming and Implementation Guidelines
.........183
Introduction
...............................................................................................................
1
84
Principles of high-quality programming
..................................................................
1
85
What sets embedded apart from general programming
...........................................
1
87
Starting the embedded software project
...................................................................
]87
Hardware platform input
..........................................................................................
188
Project files/organization
..........................................................................................
1
89
Team programming guidelines
.................................................................................
1
90
Syntax standard
.........................................................................................................
1
92
Safety requirements in source code
.........................................................................
194
Variable structure
.....................................................................................................195
Variable declarations
................................................................................................195
Data types
.................................................................................................................199
Definitions
................................................................................................................201
Chapter
8:
Embedded Operating Systems
.........................................................205
Foreground/background systems
..............................................................................207
Real-time kernels
......................................................................................................208
Contents ix
RTOS
(real-time operating system)
.........................................................................210
Critical sections
........................................................................................................210
Task management
.....................................................................................................211
Assigning task priorities
...........................................................................................215
Determining the size of a stack
................................................................................216
The idle task
.............................................................................................................219
Priority levels
............................................................................................................219
The ready list
............................................................................................................220
Preemptive scheduling
..............................................................................................220
Scheduling points
.....................................................................................................221
Round-robin scheduling
...........................................................................................222
Context switching
.....................................................................................................222
Interrupt management
...............................................................................................225
Handling CPU interrupts
..........................................................................................226
Non-kernel-aware interrupt service routine (ISR)
...................................................229
Processors with multiple interrupt priorities
............................................................230
All interrupts vector to a common location
.............................................................231
Every interrupt vectors
toa
unique location
............................................................233
The clock tick (or system tick)
................................................................................233
Wait lists
...................................................................................................................234
Time management
....................................................................................................234
Resource management
..............................................................................................236
Resource management, disable/enable interrupts
....................................................238
Resource management, semaphores
.........................................................................239
Resource management, priority inversions
..............................................................244
Resource management, mutual-exclusion semaphores (mutex)
..............................245
Resource management, deadlocks (or deadly embrace)
..........................................247
Synchronization
........................................................................................................248
Synchronization, semaphores
...................................................................................249
Synchronization, credit tracking
..............................................................................250
Bilateral
rendez-vous
................................................................................................251
Message passing
.......................................................................................................252
Messages
...................................................................................................................253
Message queues
........................................................................................................253
Flow control
..............................................................................................................254
Clients and servers
....................................................................................................256
Memory management
...............................................................................................256
Summary
...................................................................................................................258
Chapter
9:
Software Reuse By Design in Embedded Systems
..............................267
Why does software reuse matter?
............................................................................262
What limits software reuse?
.....................................................................................264
χ
Contents
Kinds of software reuse
............................................................................................267
Implementing reuse by layers
..................................................................................268
Going to the next level
.............................................................................................270
Introducing the component factory
..........................................................................271
Factory hardware configuration
...............................................................................272
Factory software configuration
................................................................................273
How the factory aids reusability
..............................................................................275
RTOS agnosticism
....................................................................................................276
Arbitrary extensibility
...............................................................................................278
Conclusion
................................................................................................................278
References
.................................................................................................................279
Chapter
10:
Software Performance Engineering for Embedded Systems
...............281
Example: latency vs. throughput in an eNodeB application
...................................296
Performance patterns and anti-patterns
....................................................................304
References
.................................................................................................................311
Chapter
11:
Optimizing Embedded Software for Performance
.............................313
The code optimization process
.................................................................................
314
Using the development tools
....................................................................................314
Compiler optimization
..............................................................................................315
Basic compiler configuration
...................................................................................316
Enabling optimizations
.............................................................................................316
Additional optimization configurations
...................................................................317
Using the profiler
......................................................................................................317
Background
—
understanding the embedded architecture
.......................................317
Resources
..................................................................................................................317
Basic
С
optimization techniques
..............................................................................318
Choosing the right data types
...................................................................................318
Functions calling conventions
..................................................................................319
Pointers and memory access
....................................................................................321
Restrict and pointer aliasing
.....................................................................................322
Loops
.........................................................................................................................324
Additional tips and tricks
.........................................................................................326
General loop transformations
...................................................................................327
Loop unrolling
..........................................................................................................327
Multisampling
...........................................................................................................328
Partial summation
.....................................................................................................329
Software pipelining
...................................................................................................331
Example application of optimization techniques: cross-correlation
.......................333
Setup
.........................................................................................................................334
Original implementation
...........................................................................................334
Contents xi
Step
1:
use intrinsics for fractional operations and specify loop counts
................336
Step
2:
specify data alignment and modify for multisampling algorithm
..............336
Step
3:
assembly-language optimization
..................................................................338
Chapter
12:
Optimizing Embedded Software for Memory
...................................343
Introduction
...............................................................................................................343
Code size optimizations
............................................................................................344
Compiler flags and flag mining
...............................................................................344
Target ISA for size and performance tradeoffs
.......................................................345
Tuning the
ABI
for code size
...................................................................................347
Caveat emptor: compiler optimization orthogonal to code size!
............................354
Memory layout optimization
....................................................................................356
Overview of memory optimization
..........................................................................357
Focusing optimization efforts
...................................................................................357
Vectorization and the dynamic code: compute ratio
...............................................358
Pointer aliasing in
С
.................................................................................................360
Data structures, arrays of data structures, and adding it all up!
..............................361
Loop optimizations for memory performance
.........................................................364
Data alignment s rippling effects
.............................................................................364
Selecting data types for big payoffs
.........................................................................365
Chapter
13:
Optimizing Embedded Software for Power
.....................................367
Introduction
...............................................................................................................368
Understanding power consumption
..........................................................................369
Basics of power consumption
..................................................................................369
Static vs. dynamic power consumption
...................................................................370
Maximum, average, worst-case, and typical power
................................................371
Measuring power consumption
................................................................................372
Measuring power using an ammeter
........................................................................372
Measuring power using a hall sensor type
1С.........................................................373
VRMs (voltage regulator module power supply ICs)
.............................................374
Static power measurement
........................................................................................375
Dynamic power measurement
..................................................................................375
Profiling your application s power consumption
.....................................................376
Minimizing power consumption
..............................................................................377
Hardware support
......................................................................................................378
Clock and voltage control
........................................................................................382
Low-power example
.................................................................................................383
Optimizing data flow
................................................................................................388
Reducing power consumption for memory accesses
...............................................388
DDR overview
..........................................................................................................389
DDR data flow optimization for power
...................................................................392
xii Contents
Optimizing power by timing
....................................................................................393
Optimizing with interleaving
...................................................................................394
Optimizing memory software data organization
.....................................................394
Optimizing general DDR configuration
...................................................................394
Optimizing DDR burst accesses
...............................................................................394
SRAM and cache data flow optimization for power
...............................................395
SRAM (all memory) and code size
.........................................................................396
SRAM power consumption and parallelization
.......................................................397
Data transitions and power consumption
.................................................................397
Cache utilization and SoC memory layout
..............................................................397
Explanation of locality
.............................................................................................398
Explanation of set-associativity
...............................................................................399
Memory layout for cache
.........................................................................................401
Write-back vs. write-through caches
........................................................................401
Cache coherency functions
.......................................................................................402
Compiler cache optimizations
..................................................................................403
Peripheral/communication utilization
......................................................................403
DMA of data vs. CPU
..............................................................................................405
Coprocessors
.............................................................................................................406
System bus configuration
.........................................................................................406
Peripheral speed grades and bus width
....................................................................407
Peripheral to core communication
...........................................................................407
Algorithmic
...............................................................................................................408
Compiler optimization levels
...................................................................................408
Instruction packing
...................................................................................................409
Loop unrolling revisited
...........................................................................................409
Software pipelining
...................................................................................................410
Eliminating recursion
...............................................................................................412
Reducing accuracy
....................................................................................................415
Low-power code sequences and data patterns
.........................................................416
Summary and closing remarks
.................................................................................416
Chapter
14:
Human Factors and User Interface Design for
Embedded Systems
......................................................................477
Analysis phase of user interface design
...................................................................422
First design iteration
.................................................................................................422
Develop a second prototype (high-fidelity tool-drawn mockup)
............................423
Essential use cases
....................................................................................................424
Scenarios for user analysis
.......................................................................................424
Hierarcha!
task analysis
............................................................................................424
Design approaches to overcome user limitations of cognition, perception,
and learning
..............................................................................................................424
Error messages
..........................................................................................................425
Contents xiii
Virtual
windows........................................................................................................
426
Data
models using entity relationship diagrams (ERD)
..........................................427
Analysis of virtual windows using a CREDO matrix
.............................................429
Hueristic evaluation
..................................................................................................430
Gestalts
......................................................................................................................431
Designing user interfaces with Model View Controller (MVC) architecture
.........432
Context of the MVC software architecture
..............................................................433
Problems and forces for the MVC software architecture
........................................433
Solution using the MVC
...........................................................................................434
Safety-critical user interfaces
...................................................................................434
Process (or designing a safer HMI
...........................................................................435
Guidelines ( or sale human-machine interface design
..............................................438
References
.................................................................................................................440
Bibliography
.............................................................................................................440
Chapter
15:
Embedded Software Quality, Integration and
Testing Techniques
.......................................................................447
What is software test?
..............................................................................................442
Why should we test software?
.................................................................................443
How much testing is enough?
..................................................................................443
When should testing take place?
..............................................................................444
Who makes the decisions?
.......................................................................................445
Available techniques
.................................................................................................445
Static and dynamic analysis
.....................................................................................445
Requirements traceability
.........................................................................................450
Static analysis
—
adherence to a coding standard
...................................................455
Essential knots
&
essential cyclomatic complexity
—
case study
..........................459
Understanding dynamic analysis
..............................................................................461
The legacy from high-integrity systems
..................................................................465
Defining unit, module and integration tests
.............................................................465
Defining structural coverage analysis
......................................................................466
Achieving code coverage with unit test and system test in tandem
.......................467
Retaining the functionality through regression test
.................................................471
Unit test and test-driven development
.....................................................................471
Automatically generating test cases
.........................................................................473
Setting the standard
..................................................................................................475
The terminology of standards
...................................................................................475
The evolution of a recognized process standard
......................................................476
Freedom to choose adequate standards
....................................................................481
Dealing with the unusual
..........................................................................................490
Working with auto-generated code
..........................................................................490
Working with legacy code
.......................................................................................491
Tracing requirements through to object code verification (OCV)
..........................495
xiv Contents
Implementing a test solution environment
...............................................................506
Pragmatic considerations
..........................................................................................506
Considering the alternatives
.....................................................................................506
Summary and conclusions
........................................................................................510
Chapter
16:
Software Development Tools for Embedded Systems
........................57 7
Introduction to debugging tools
...............................................................................512
GDB debugging
........................................................................................................514
Configure the GDB debugger
..................................................................................515
Starting GDB
............................................................................................................515
Compiling the application
........................................................................................517
Debugging the application
........................................................................................518
Examining data
.........................................................................................................520
Using breakpoints
.....................................................................................................521
Stepping
....................................................................................................................521
Changing the program
..............................................................................................522
Analyzing core dumps
..............................................................................................523
Debug agent design
..................................................................................................523
Use cases
...................................................................................................................524
Debug agent overview
..............................................................................................528
Starting the application
.............................................................................................530
Context switch
..........................................................................................................531
Position-independent
exécutables
............................................................................533
Debug event from the application
............................................................................535
Multicore
...................................................................................................................538
Starting the debug agent
...........................................................................................539
Debugging using JTAG
............................................................................................540
Benefits of using JTAG
............................................................................................541
Board bring-up using JTAG
.....................................................................................542
Comparison with the debug agent
............................................................................543
GDB and JTAG
........................................................................................................544
Debugging tools using Eclipse and GDB
................................................................545
Linux application debug with GDB
.........................................................................546
Linux kernel debug with KGDB
..............................................................................547
Instrumented code
.....................................................................................................548
Practical example
......................................................................................................550
Analysis tools
............................................................................................................553
Strace
........................................................................................................................553
Mtrace
.......................................................................................................................554
Valgrind
....................................................................................................................557
Hardware capabilities
...............................................................................................558
Hardware breakpoints
...............................................................................................559
Contents xv
Hardware watchpoints..............................................................................................560
Debugging tips
and tricks.........................................................................................560
Chapter
17: Multicore Software Development
for Embedded
Systems..................563
Part 1:
Analysis and high-level design....................................................................
565
Analysis
....................................................................................................................565
Improving serial performance
..................................................................................565
Understand the application
.......................................................................................572
High-level design
......................................................................................................577
Parallel decomposition
.............................................................................................577
Data dependencies
....................................................................................................580
Communication and synchronization
.......................................................................581
Load balancing
.........................................................................................................583
Choice of algorithm
..................................................................................................584
Decomposition approaches
.......................................................................................585
Summary of Part
1....................................................................................................586
Part
2:
Implementation and low-level design
..........................................................586
Thread-based implementations
.................................................................................587
Kernel scheduling
.....................................................................................................588
Pthreads
.....................................................................................................................588
Using PPthreads
........................................................................................................589
Dealing with thread safety
.......................................................................................590
Implementing synchronizations and mutual exclusion
............................................591
Mutexes, locks, nested locks
....................................................................................592
Mutex
........................................................................................................................593
Condition variables
...................................................................................................593
Granularity
................................................................................................................595
Fine-grained
..............................................................................................................595
Coarse-grained
..........................................................................................................595
Approach
...................................................................................................................595
Implementing task parallelism
.................................................................................596
Creation and join
......................................................................................................596
Parallel-pipeline computation
...................................................................................597
Divide-and-conquer scheme
.....................................................................................599
Task scheduling considerations
................................................................................599
Thread pooling
..........................................................................................................600
Affinity scheduling
...................................................................................................600
Event-based parallel programs
.................................................................................601
Implementing loop parallelism
.................................................................................601
Aligning computation and locality
...........................................................................602
Message-passing implementations
...........................................................................604
MCAPI
.....................................................................................................................605
xvi Contents
MRAPI
......................................................................................................................609
MCAPI and MRAPI in multicore
systems
..............................................................609
Playing-card recognition and sorting example
........................................................610
Using a hybrid approach
..........................................................................................611
References
.................................................................................................................612
Chapter
18:
Safety-Critical Software Development
............................................673
Introduction
...............................................................................................................614
Which safety requirements?
.....................................................................................615
Certification killers
...................................................................................................616
Project planning strategies
........................................................................................617
Strategy
1:
determine the project certification scope early
.....................................617
Strategy
2:
determine feasibility of certification
.....................................................617
Strategy
3:
select an independent assessor (if used)
...............................................617
Strategy
4:
understand your assessor s role (if used)
..............................................617
Strategy
5:
assessment communication is key
.........................................................618
Strategy
6:
establish a basis of certification
............................................................618
Strategy
7:
establish a fit and purpose for your product
.....................................618
Strategy
8:
establish a certification block diagram
.................................................618
Strategy
9:
establish communication integrity objectives
.......................................619
Strategy
10:
identify all interfaces along the certification boundary
......................619
Strategy
1 1:
identify the key safety defensive strategies
........................................619
Strategy
12:
define built in test (BIT) capability
....................................................619
Strategy
13:
define fault annunciation coverage
.....................................................619
Strategy
14:
define reliance and expectation of the operator/user
..........................620
Strategy
15:
define plan for developing software to appropriate
integrity level
............................................................................................................620
Strategy
16:
define artifacts to be used as evidence of compliance
.......................620
Strategy
17:
plan for labor-intensive analyses
.........................................................620
Strategy
18:
create user-level documentation
..........................................................620
Strategy
19:
plan on residual activity
......................................................................621
Strategy
20:
publish a well-defined certification plan
.............................................621
Faults, failures, hazards, and risk analysis
...............................................................621
Faults, errors, and failures
........................................................................................621
Availability and reliability
.......................................................................................622
Fault handling
...........................................................................................................623
Hazard analysis
.........................................................................................................624
Risk analysis
.............................................................................................................626
Safety-critical architectures
......................................................................................628
Do-er
/
check-er
.................................................................................................628
Two processors
.........................................................................................................629
Voter
......................................................................................................................630
Contents xvii
Software
implementation strategies
.........................................................................631
Strategy
1:
have
a well-deľined,
repeatable peer-review process
...........................631
Strategy
2:
consider using existing safety coding standards
...................................632
Strategy
3:
handle all combinations of input data
...................................................633
Strategy
4:
specific variable value checking
...........................................................634
Strategy
5:
mark safety-critical code sections
.........................................................635
Strategy
6:
timing execution checking
.....................................................................637
Strategy
7:
stale data
................................................................................................637
Strategy
8:
comparison of outputs
...........................................................................638
Strategy
9:
initialize
dala lo
least permissive state
..................................................639
Strategy
10:
order ol execution
................................................................................640
Strategy I
1:
volatile data checking
..........................................................................641
Strategy
12:
non-volali le
data checking
...................................................................642
Strategy
13:
make sure the entire system can run
...................................................642
Strategy
14:
remove dead code
............................................................................644
Strategy
15:
fill unused memory
..............................................................................645
Strategy
16:
static code analysis
..............................................................................645
Chapter
19:
Intellectual Property
....................................................................647
Background
...............................................................................................................647
Is that software yours ?
..............................................................................................649
Obtaining software
...................................................................................................649
Copyright protection
.................................................................................................650
Getting copyright
......................................................................................................651
Patents
.......................................................................................................................652
What is a patent?
......................................................................................................652
Why do patents exist?
..............................................................................................655
Deciding what to patent
...........................................................................................655
Applying for a patent
...............................................................................................657
What s in a patent?
...................................................................................................657
Licensing patents
......................................................................................................662
Problems
...................................................................................................................663
Open-source software
...............................................................................................663
Licensing and selling software
.................................................................................664
Getting acquired
.......................................................................................................665
Discovering infringement
.........................................................................................665
Avoiding copyright infringement
.............................................................................667
Avoiding patent infringement
..................................................................................669
Chapter
20:
Managing Embedded Software Development
...................................671
Capability maturity model integration
.....................................................................674
The
OSI
model
.........................................................................................................678
Software development
..............................................................................................681
xviii Contents
V-model
....................................................................................................................681
Waterfall model
........................................................................................................686
Agile model
..............................................................................................................689
Organization
..............................................................................................................690
Program charter
........................................................................................................693
Stakeholders and the core team
................................................................................694
Product life-cycle management
................................................................................696
Portfolio management
...............................................................................................698
Project management life-cycle
.................................................................................701
Project life-cycle
.......................................................................................................711
Problem-solving
........................................................................................................724
Communications
.......................................................................................................725
Abbreviations, symbols, acronyms
..........................................................................728
Copyright acknowledgments
....................................................................................729
References
.................................................................................................................730
Chapter
21:
Agile Development for Embedded Systems
......................................731
Introduction
...............................................................................................................732
What s special about embedded systems?
...............................................................734
Fits into a system whose requirements are allocated to different engineering
disciplines of which software is only one
................................................................735
Uses specialized hardware
........................................................................................736
Is often co-developed with the hardware
.................................................................736
Constrains the selection of programming languages and tools
...............................736
Has a more challenging testing environment
..........................................................737
Must often be highly predictable
.............................................................................737
Is often subject to tight timeliness constraints
.........................................................737
Often has severe resource constraints (such as memory)
........................................737
Must often be very highly reliable and safety-critical
............................................738
Is often subject to rigorous external regulation
.......................................................738
Is delivered in a shipped, stand-alone product
........................................................739
Is often subject to fixed-price bids
...........................................................................739
Agile project planning for embedded software
.......................................................739
Project vision
............................................................................................................740
Initial safety/reliability risk assessment
...................................................................741
Initial project risk assessment
..................................................................................744
Estimating
.................................................................................................................745
Scheduling
................................................................................................................746
Project governance for embedded software
.............................................................747
Stand up! (meetings)
................................................................................................748
Performance metrics
.................................................................................................748
Iteration retrospective (party phase)
........................................................................750
Contents xix
Agile
development practices for embedded
.............................................................751
Incremental development
.........................................................................................751
High-fidelity modeling
.............................................................................................752
Executable requirements
..........................................................................................754
Test-driven development (TDD)
..............................................................................754
Continuous integration
.............................................................................................756
Change management
.................................................................................................756
Dynamic planning
.....................................................................................................757
Risk management
.....................................................................................................758
Scaling factors lor agile
...........................................................................................759
Can agile methods help you adhere to standards?
...................................................760
Summary
...................................................................................................................764
References
.................................................................................................................765
Bibliography
.............................................................................................................766
Chapter
22:
Embedded Software for Automotive Applications
............................767
A bit of history to set the scene
...............................................................................769
Auto electronics:
191 1-2000..................................................................................769
Electronic content growth drivers
............................................................................770
The resultant embedded SW growth
........................................................................772
Automotive programming languages
.......................................................................774
Summary of implications
.........................................................................................775
Automotive segments and how they differ
..............................................................775
Body
..........................................................................................................................776
Chassis and safety
.....................................................................................................777
Driver assistance
.......................................................................................................778
Powertrain and transmission
....................................................................................779
Infotainment and telematics
.....................................................................................780
Automotive
subsegment
summary
...........................................................................782
Automotive quality
...................................................................................................782
Planning for Murphy s law
......................................................................................782
Fault-tolerant communications
.................................................................................783
Fault-tolerant software
..............................................................................................784
Zero-defect software
.................................................................................................785
Risk management and failure modes
.......................................................................785
Failure modes and effects analysis
..........................................................................786
Development and test
...............................................................................................788
Subsystem interoperability
.......................................................................................788
Software specifications
.............................................................................................791
Software architecture
................................................................................................791
Modeling
...................................................................................................................794
Autocoding and drivers
............................................................................................794
xx Contents
Bench testing
............................................................................................................795
Trace and debug
.......................................................................................................796
Final-phase testing
....................................................................................................797
Calibration
................................................................................................................799
Maintenance/product lifetime support
.....................................................................800
Automotive diagnostics
............................................................................................800
MIL
...........................................................................................................................800
Data logger
...............................................................................................................801
OBD II
......................................................................................................................802
Automotive standards
...............................................................................................803
MISRA
......................................................................................................................803
AUTOSAR
................................................................................................................803
AEC
...........................................................................................................................807
Automotive safety
.....................................................................................................808
ISO
26262.................................................................................................................808
ASIL
..........................................................................................................................809
Automotive security
.................................................................................................810
What it used to mean: car alarms etc
.......................................................................810
What it means today: hacking
..................................................................................811
What it will mean tomorrow: counterfeiting
...........................................................811
The near future of the automotive market
...............................................................812
Performance
..............................................................................................................812
The emergence of multicore
....................................................................................812
The connected vehicle
..............................................................................................813
The automated vehicle
.............................................................................................814
Conclusion
................................................................................................................815
Chapter
23:
Programming for I/O and Storage
.................................................817
I/O device and I/O controller
...................................................................................819
Category of I/O devices
...........................................................................................819
I/O controller
............................................................................................................821
Memory-mapped I/O and DMA
...............................................................................822
Flash, SD/SDHC and disk drive
..............................................................................825
Network-attached storage
.........................................................................................828
I/O programming
......................................................................................................829
I/O software goals
.....................................................................................................834
I/O software layer
.....................................................................................................835
Case study: device driver in Linux
..........................................................................838
Storage programming
...............................................................................................844
I/O for block devices
................................................................................................845
Flash device programming
.......................................................................................850
SATA
device driver
..................................................................................................864
Contents xxi
Performance
improvement
ol
storage systems
........................................................865
Case study
1:
performance optimization on SDHC
................................................866
Case study
2:
performance
optimization on
NAS
...................................................868
Summary
...................................................................................................................875
Bibliography
.............................................................................................................877
Chapter
24:
Embedded Software for Networking Applications
............................879
Introduction
...............................................................................................................880
System architecture of network devices
..................................................................881
Data, control, service and management planes
........................................................882
Multicore SoCs
l or
networking
................................................................................884
Cores
.........................................................................................................................884
Packet engine hardware
(Р1-:Н)
block
......................................................................885
Network programming models
.................................................................................888
Pipeline programming model
...................................................................................889
Run-to-complelion program
m
ing
.............................................................................890
Structure of packet-processing software
..................................................................891
Data-plane infrastructure (DP-Infra)
........................................................................893
Structure ol the forwarding engine
..........................................................................893
Packet-processing application requirements
............................................................894
Network application programming techniques
........................................................895
Multicore performance techniques for network application
programmers
.............................................................................................................895
Avoid locks while looking for flow context
............................................................895
Avoid reference counting
.........................................................................................901
Safe reference mechanism
........................................................................................904
Flow parallelization
..................................................................................................906
Reducing cache thrashing associated with updating statistics
................................910
Statistics acceleration
...............................................................................................914
General performance techniques for network application programmers
................914
Use cache effectively
................................................................................................914
Software-directed prefetching
..................................................................................915
Use likely/unlikely compiler built-ins
......................................................................915
Locking critical piece of code in caches
.................................................................916
General coding guidelines
........................................................................................916
Linux operating system for embedded network devices
.........................................916
Translation lookaside buffer (TLB) misses associated with user-space
programming
.............................................................................................................917
Access to hardware peripherals and hardware accelerators
....................................918
Deterministic performance
.......................................................................................918
Summary
...................................................................................................................919
xx/7
Contents
Chapter
25:
Linux for Embedded Systems
........................................................921
Introduction
...............................................................................................................92
1
Why Linux for embedded?
.......................................................................................922
Linux distributions
....................................................................................................923
Embedded platforms suitable for Linux
..................................................................924
Licensing
...................................................................................................................926
Getting started with Embedded Linux
.....................................................................927
Memory management unit
........................................................................................927
Bootstrapper..............................................................................................................927
Bootloader
.................................................................................................................929
Kernel
........................................................................................................................93
1
Applications
..............................................................................................................950
Running Linux on a reference board
.......................................................................953
Reference platforms
..................................................................................................953
Starting with BeagleBonc
.........................................................................................953
■·&
Appendix
1:
C Syntax Coding Standard: Source Code Development
...................961
Appendix
2:
On the
C + +
Programming Language for Embedded Software,
Systems, and Platforms
.............................................................. 1019
Case Study
1:
Software Performance Engineering
............................................ 1027
Case Study
2:
A User Interface: Police Command and Control System
............... 7043
Case Study
3:
Transitioning to Multicore
........................................................ 1089
Case Study
4:
Software Engineering for Embedded Systems Quality
and Metrics Program
............................................................... 1101
Index
.......................................................................................................... 1125
|
any_adam_object | 1 |
author_GND | (DE-588)1079330119 |
building | Verbundindex |
bvnumber | BV041076366 |
classification_rvk | ST 153 |
ctrlnum | (OCoLC)854724323 (DE-599)BVBBV041076366 |
discipline | Informatik |
edition | 1. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01553nam a2200385 c 4500</leader><controlfield tag="001">BV041076366</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20180409 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">130607s2013 xx ad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780124159174</subfield><subfield code="9">978-0-12-415917-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)854724323</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV041076366</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-384</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-573</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 153</subfield><subfield code="0">(DE-625)143597:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Software engineering for embedded systems</subfield><subfield code="b">methods, practical techniques, and applications</subfield><subfield code="c">Robert Oshana, Mark Kraeling [ed.]</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Amsterdam [u.a.]</subfield><subfield code="b">Newnes</subfield><subfield code="c">2013</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XLIX, 1150 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Expert guide</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Software engineering</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Embedded computer systems</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Eingebettetes System</subfield><subfield code="0">(DE-588)4396978-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Eingebettetes System</subfield><subfield code="0">(DE-588)4396978-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Oshana, Robert</subfield><subfield code="e">Sonstige</subfield><subfield code="0">(DE-588)1079330119</subfield><subfield code="4">oth</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026053237&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-026053237</subfield></datafield></record></collection> |
id | DE-604.BV041076366 |
illustrated | Illustrated |
indexdate | 2024-12-24T03:19:20Z |
institution | BVB |
isbn | 9780124159174 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-026053237 |
oclc_num | 854724323 |
open_access_boolean | |
owner | DE-384 DE-473 DE-BY-UBG DE-1050 DE-573 |
owner_facet | DE-384 DE-473 DE-BY-UBG DE-1050 DE-573 |
physical | XLIX, 1150 S. Ill., graph. Darst. |
publishDate | 2013 |
publishDateSearch | 2013 |
publishDateSort | 2013 |
publisher | Newnes |
record_format | marc |
series2 | Expert guide |
spellingShingle | Software engineering for embedded systems methods, practical techniques, and applications Software engineering Embedded computer systems Software Engineering (DE-588)4116521-4 gnd Eingebettetes System (DE-588)4396978-1 gnd |
subject_GND | (DE-588)4116521-4 (DE-588)4396978-1 |
title | Software engineering for embedded systems methods, practical techniques, and applications |
title_auth | Software engineering for embedded systems methods, practical techniques, and applications |
title_exact_search | Software engineering for embedded systems methods, practical techniques, and applications |
title_full | Software engineering for embedded systems methods, practical techniques, and applications Robert Oshana, Mark Kraeling [ed.] |
title_fullStr | Software engineering for embedded systems methods, practical techniques, and applications Robert Oshana, Mark Kraeling [ed.] |
title_full_unstemmed | Software engineering for embedded systems methods, practical techniques, and applications Robert Oshana, Mark Kraeling [ed.] |
title_short | Software engineering for embedded systems |
title_sort | software engineering for embedded systems methods practical techniques and applications |
title_sub | methods, practical techniques, and applications |
topic | Software engineering Embedded computer systems Software Engineering (DE-588)4116521-4 gnd Eingebettetes System (DE-588)4396978-1 gnd |
topic_facet | Software engineering Embedded computer systems Software Engineering Eingebettetes System |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=026053237&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT oshanarobert softwareengineeringforembeddedsystemsmethodspracticaltechniquesandapplications |