Software engineering for embedded systems methods, practical techniques, and applications

Gespeichert in:
Bibliographische Detailangaben
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&amp;doc_library=BVB01&amp;local_base=BVB01&amp;doc_number=026053237&amp;sequence=000002&amp;line_number=0001&amp;func_code=DB_RECORDS&amp;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