新书报道
当前位置: 首页 >> 电类优秀教材 >> 正文
Embedded Software : The Works
发布日期:2015-12-31  浏览

Embedded Software : The Works

[Book Description]
As the embedded world expands, developers must have a strong grasp of many complex topics in order to make faster, more efficient and more powerful microprocessors to meet the public's growing demand. "Embedded Software: The Works" covers all the key subjects embedded engineers need to understand in order to succeed, including Design and Development, Programming, Languages including C/C++, and UML, Real Time Operating Systems Considerations, Networking, and much more. New material on Linux, Android, and multi-core gives engineers the up-to-date practical know-how they need in order to succeed. Colin Walls draws upon his experience and insights from working in the industry, and covers the complete cycle of embedded software development: its design, development, management, debugging procedures, licensing, and reuse. For those new to the field, or for experienced engineers looking to expand their skills, Walls provides the reader with detailed tips and techniques, and rigorous explanations of technologies. This title includes: new chapters on Linux, Android, and multi-core - the cutting edge of embedded software development. An introductory roadmap that guides readers through the book provides a route through the separate chapters and showing how they are linked. Accompanying source code and PowerPoint slides provide helpful training material and real-world experience for readers. About the Author: Colin Walls has over twenty-five years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, he is a member of the marketing team of the Mentor Graphics Embedded Software Division. He writes a regular blog on the Mentor website (blogs.mentor.com/colinwalls).
[Table of Contents]
Foreword                                           xix
Preface to the First Edition                       xxiii
Preface to the Second Edition                      xxix
What's on the Website?                             xxxi
Roadmap to Embedded Software Development           xxxv
    Chapter 1 Embedded Software                    1    (46)
      1.1 What Makes an Embedded Application       1    (7)
      Tick?
        1.1.1 Development Challenges               2    (1)
        1.1.2 Reusable Software                    3    (1)
        1.1.3 Real-Time Operating System           4    (1)
        1.1.4 File System                          5    (1)
        1.1.5 USB                                  5    (1)
        1.1.6 Graphics                             5    (1)
        1.1.7 Networking                           6    (2)
        1.1.8 Conclusion                           8    (1)
      1.2 Memory in Embedded Systems               8    (4)
        1.2.1 Memory                               9    (1)
        1.2.1 Implementation Challenges            10   (1)
        1.2.3 When All Goes Wrong                  11   (1)
        1.2.4 When All Goes Right                  11   (1)
      1.3 Memory Architectures                     12   (6)
        1.3.1 The Options                          12   (1)
        1.3.2 Flat Single-Space Memory             13   (1)
        1.3.3 Segmented Memory                     13   (1)
        1.3.4 Bank-Switched Memory                 14   (1)
        1.3.5 Multiple-Space Memory                15   (2)
        1.3.6 Virtual Memory                       17   (1)
        1.3.7 Cache Memory                         17   (1)
        1.3.8 Memory Management Units              17   (1)
        1.3.9 Conclusions                          18   (1)
      1.4 How Software Influences Hardware         18   (4)
      Design
        1.4.1 Who Designs the Hardware?            18   (1)
        1.4.2 Software Leading Hardware            19   (1)
        1.4.3 Software/Hardware Trade-Offs         19   (1)
        1.4.4 Debug Hardware                       20   (1)
        1.4.5 Self-Test Support                    21   (1)
        1.4.6 Conclusions                          22   (1)
      1.5 Migrating Your Software to a New         22   (7)
      Processor Architecture
        1.5.1 Target Specifics                     22   (3)
        1.5.2 RTOS Issues                          25   (1)
        1.5.3 Processor Migration and Open         26   (3)
        Standards
        1.5.4 Conclusions                          29   (1)
      1.6 Embedded Software for Transportation     29   (4)
      Applications
        1.6.1 Introduction                         29   (1)
        1.6.2 Transportation System                29   (1)
        Characteristics
        1.6.3 Programming Issues                   30   (1)
        1.6.4 Real-Time Operating System Factors   31   (1)
        1.6.5 Conclusions                          32   (1)
      1.7 How to Choose a CPU for Your System      33   (3)
      on Chip Design
        1.7.1 Design Complexity                    33   (1)
        1.7.2 Design Reuse                         33   (1)
        1.7.3 Memory Architecture and Protection   34   (1)
        1.7.4 CPU Performance                      34   (1)
        1.7.5 Power Consumption                    35   (1)
        1.7.6 Costs                                35   (1)
        1.7.7 Software Issues                      35   (1)
        1.7.8 Multicore SoCs                       35   (1)
        1.7.9 Conclusions                          36   (1)
      1.8 An Introduction to USB Software          36   (4)
        1.8.1 What Is USB?                         36   (1)
        1.8.2 A USB Peripheral                     37   (1)
        1.8.3 USB Communications                   37   (1)
        1.8.4 USB Software                         38   (1)
        1.8.5 USB and Embedded Systems             39   (1)
        1.8.6 Conclusions                          40   (1)
      1.9 Toward USB 3.0                           40   (7)
        1.9.1 Introduction                         41   (1)
        1.9.2 Bus Architecture                     41   (1)
        1.9.3 Cables and Connectors                41   (1)
        1.9.4 Packet Routing                       41   (1)
        1.9.5 Bidirectional Protocol Flow          41   (1)
        1.9.6 Bulk Streaming                       42   (1)
        1.9.7 USB 3.0 Power Management             43   (1)
        1.9.8 USB 3.0 Hubs                         43   (1)
        1.9.9 xHCI---New Host Controller           43   (1)
        Interface
        1.9.10 Future Applications for USB         43   (1)
        1.9.11 Conclusions                         44   (1)
        Further Reading                            45   (2)
    Chapter 2 Design and Development               47   (54)
      2.1 Emerging Technology for Embedded         47   (7)
      Systems Software Development
        2.1.1 Microprocessor Device Technology     48   (1)
        2.1.2 System Architecture                  48   (2)
        2.1.3 Design Composition                   50   (1)
        2.1.4 Software Content                     51   (1)
        2.1.5 Programming Languages                52   (1)
        2.1.6 Software Team Size and               52   (1)
        Distribution
        2.1.7 UML and Modeling                     53   (1)
        2.1.8 Key Technologies                     53   (1)
        2.1.9 Conclusions                          54   (1)
      2.2 Making Development Tool Choices          54   (11)
        2.2.1 The Development Tool Chain           54   (1)
        2.2.2 Compiler Features                    55   (1)
        2.2.3 Extensions for Embedded Systems      56   (2)
        2.2.4 Optimizations                        58   (1)
        2.2.5 Build Tools: Key Issues Recapped     59   (1)
        2.2.6 Debugging                            59   (4)
        2.2.7 Debug Tools: Key Issues Recapped     63   (1)
        2.2.8 Standards and Development Tool       63   (1)
        Integration
        2.2.9 Implications of Selections           64   (1)
        2.2.10 Conclusions                         65   (1)
      2.3 Eclipse---Bringing Embedded Tools        65   (4)
      Together
        2.3.1 Introduction                         65   (1)
        2.3.2 Eclipse Platform Philosophy          66   (1)
        2.3.3 Platform                             66   (1)
        2.3.4 How Eclipse Gets Embedded            67   (2)
        2.3.5 Conclusions                          69   (1)
      2.4 A Development System That Crosses        69   (4)
      RTOS Boundaries
        2.4.1 Are Standards the Solution?          69   (1)
        2.4.2 The Eclipse Solution                 70   (1)
        2.4.3 Eclipse Plug-Ins                     70   (1)
        2.4.4 Eclipse Licensing                    71   (1)
        2.4.5 Eclipse User Advantages              71   (1)
        2.4.6 Perspectives                         71   (1)
        2.4.7 Nonembedded Plug-Ins                 72   (1)
      2.5 Embedded Software and UML                73   (12)
        2.5.1 Why Model in UML?                    73   (4)
        2.5.2 Separating Application from          77   (4)
        Architecture
        2.5.3 xtUML Code Generation                81   (3)
        2.5.4 Conclusions                          84   (1)
      2.6 User Interface Development               85   (5)
        2.6.1 User Interface Diversity             85   (1)
        2.6.2 Implementing a User Interface        86   (2)
        2.6.3 A Rationalized UI Solution           88   (2)
        2.6.4 Conclusions                          90   (1)
      2.7 Software and Power Consumption           90   (11)
        2.7.1 Introduction                         90   (2)
        2.7.2 Software Issues                      92   (2)
        2.7.3 Power Control in Software            94   (2)
        2.7.4 Multicore                            96   (1)
        2.7.5 Hardware Issues                      97   (2)
        2.7.6 Virtual Programming                  99   (1)
        2.7.7 Conclusions                          99   (2)
    Chapter 3 Programming                          101  (24)
      3.1 Programming for Exotic Memories          101  (4)
        3.1.1 Exotic Memories                      101  (1)
        3.1.2 Nonvolatile RAM                      102  (2)
        3.1.3 Shared Memory                        104  (1)
        3.1.4 Conclusions                          105  (1)
      3.2 Self-Testing in Embedded Systems         105  (4)
        3.2.1 Memory Testing                       105  (3)
        3.2.2 Input/Output Devices                 108  (1)
        3.2.3 Multithreading Issues                108  (1)
        3.2.4 Watchdogs                            109  (1)
        3.2.5 Self-Test Failures                   109  (1)
        3.2.6 Final Points                         109  (1)
      3.3 A Command-Line Interpreter               109  (9)
        3.3.1 Embedded Systems Diagnostics         110  (1)
        3.3.2 An Embedded System Comes Alive       111  (1)
        3.3.3 A Command-Line                       111  (1)
        Interpreter---Requirements
        3.3.4 Designing a Command-Line             111  (1)
        Interpreter
        3.3.5 A CLI Implementation                 112  (1)
        3.3.6 CLI Prototype Code                   113  (5)
        3.3.7 Conclusions                          118  (1)
      3.4 Traffic Lights: An Embedded Software     118  (7)
      Application
        3.4.1 The Application                      119  (1)
        3.4.2 Hardware Configuration               119  (1)
        3.4.3 Program Implementation               119  (1)
        3.4.4 Main Loop                            120  (1)
        3.4.5 Interrupts                           121  (1)
        3.4.6 Time Delays                          122  (1)
        3.4.7 Lights                               122  (1)
        3.4.8 Using Global Variables               123  (2)
    Chapter 4 C Language                           125  (52)
      4.1 C Common                                 125  (3)
      4.2 Using C Function Prototypes              128  (2)
        4.2.1 Before Prototypes                    128  (1)
        4.2.2 Applying Prototypes                  129  (1)
        4.2.3 Prototypes in Use                    129  (1)
      4.3 Interrupt Functions and ANSI Keywords    130  (4)
        4.3.1 Interrupt Functions                  130  (2)
        4.3.2 ANSI C const Keyword                 132  (1)
        4.3.3 ANSI C Volatile Keyword              133  (1)
      4.4 Bit by Bit                               134  (4)
        4.4.1 Bitwise Operators                    135  (1)
        4.4.2 Binary Constants                     135  (1)
        4.4.3 Bit Fields in Structures             135  (1)
        4.4.4 Microprocessor Bit-Field             136  (1)
        Instructions
        4.4.5 I/O Devices and Bit Fields           137  (1)
        4.4.6 Conclusions                          138  (1)
      4.5 Programming Floating-Point               138  (3)
      Applications
        4.5.1 A Test Case                          138  (1)
        4.5.2 Running the Test Case                139  (1)
        4.5.3 Troubleshooting                      140  (1)
        4.5.4 Lessons Learned                      140  (1)
      4.6 Looking at C---A Different Perspective   141  (3)
        4.6.1 Static Things                        141  (1)
        4.6.2 All Those Semicolons                 142  (1)
        4.6.3 Pointers and Pointer Arithmetic      142  (1)
        4.6.4 When Being Clever Is Not Being       142  (1)
        Smart
        4.6.5 Conclusions                          143  (1)
      4.7 Reducing Function Call Overhead          144  (4)
        4.7.1 Compilers and Structured Code        144  (1)
        4.7.2 Inline Functions                     145  (1)
        4.7.3 Function Calls                       145  (1)
        4.7.4 Parameter Passing                    145  (1)
        4.7.5 Local Storage                        146  (1)
        4.7.6 Stack Frame Generation               146  (2)
        4.7.7 Return Values                        148  (1)
        4.7.8 Conclusions                          148  (1)
      4.8 Structure Layout---Become an Expert      148  (14)
        4.8.1 Key Concepts                         149  (4)
        4.8.2 Bit Fields                           153  (1)
        4.8.3 Tips and Techniques                  154  (8)
      4.9 Memory and Programming in C              162  (2)
        4.9.1 Memory                               163  (1)
        4.9.2 Sections                             163  (1)
        4.9.3 Conclusions                          163  (1)
      4.10 Pointers and Arrays in C and C++        164  (2)
        4.10.1 Pointers and Pointer Arithmetic     164  (1)
        4.10.2 Arrays and Pointers                 165  (1)
        4.10.3 Conclusions                         166  (1)
      4.11 Using Dynamic Memory in C and C++       166  (11)
        4.11.1 C/C++ Memory Spaces                 166  (2)
        4.11.2 Dynamic Memory in C                 168  (1)
        4.11.3 Dynamic Memory in C++               169  (1)
        4.11.4 Issues and Problems                 170  (1)
        4.11.5 Memory Fragmentation                171  (2)
        4.11.6 Memory with an RTOS                 173  (1)
        4.11.7 Real-Time Memory Solutions          174  (1)
        4.11.8 Conclusions                         175  (2)
    Chapter 5 C++                                  177  (52)
      5.1 C++ in Embedded Systems---A              177  (2)
      Management Perspective
        5.1.1 Embedded Systems Development Teams   177  (1)
        5.1.2 Object-Oriented Programming          178  (1)
        5.1.3 Team Management and                  178  (1)
        Object-Oriented Techniques
        5.1.4 C++ as an Object-Oriented Language   178  (1)
        5.1.5 Overheads                            179  (1)
        5.1.6 The Way Forward                      179  (1)
      5.2 Why Convert from C to C++?               179  (6)
        5.2.1 Hide Implementation Details          180  (1)
        5.2.2 Reuse Class Code                     180  (1)
        5.2.3 Reuse Generic Classes                181  (1)
        5.2.4 Extend Operators                     181  (1)
        5.2.5 Derive Classes from Base Classes     181  (1)
        5.2.6 Avoid Errors Through Function        182  (1)
        Prototyping
        5.2.7 Add Parameters Without Changing      182  (1)
        Function Calls
        5.2.8 Using Safer, Simpler I/O             182  (1)
        5.2.9 Improve Performance with Fast        183  (1)
        Inline Functions
        5.2.10 Overload Function Names             183  (1)
        5.2.11 Embedded System Support             184  (1)
        5.2.12 Change Involves Effort              184  (1)
        5.2.13 Massage C Code into C++             184  (1)
        5.2.14 The Hard Part: Designing Objects    185  (1)
        5.2.15 If It Ain't Broke, Don't Fix it     185  (1)
      5.3 Clearing the Path to C++                 185  (9)
        5.3.1 A Strategy for Transition            186  (1)
        5.3.2 Evolutionary Steps                   186  (1)
        5.3.3 Applying Reusability                 186  (1)
        5.3.4 Writing Clean C                      187  (4)
        5.3.5 C+---Nearly C++                      191  (3)
        5.3.6 Conclusions---The Path Ahead         194  (1)
      5.4 C++ Templates---Benefits and Pitfalls    194  (6)
        5.4.1 What Are Templates?                  195  (2)
        5.4.2 Template Instantiation               197  (1)
        5.4.3 Problems with Templates              197  (1)
        5.4.4 Multiple Template Parameters         198  (1)
        5.4.5 Other Template Applications          199  (1)
        5.4.6 Conclusions                          199  (1)
        5.4.7 Postscript                           199  (1)
      5.5 Exception Handling in C++                200  (7)
        5.5.1 Error Handling in C                  200  (1)
        5.5.2 Does Not Involve Interrupts          200  (1)
        5.5.3 C++ Exception Handling               201  (2)
        5.5.4 Special Cases                        203  (3)
        5.5.5 EHS and Embedded Systems             206  (1)
        5.5.6 Conclusions                          206  (1)
      5.6 Looking at Code Size and Performance     207  (7)
      with C++
        5.6.1 How Efficient Is C++ Compared to     207  (1)
        C?
        5.6.2 How C++ Affects Application          208  (4)
        Memory Requirements
        5.6.3 Doing C++ Right                      212  (1)
        5.6.4 Conclusions                          213  (1)
      5.7 Write-Only Ports in C++                  214  (9)
        5.7.1 Encapsulating Expertise              214  (1)
        5.7.2 Defining the Problem                 214  (2)
        5.7.3 A Solution in C                      216  (1)
        5.7.4 A First Attempt in C++               216  (1)
        5.7.5 Using Overloaded Operators           217  (1)
        5.7.6 Enhancing the wop Class              218  (1)
        5.7.7 Addressing Reentrancy                219  (2)
        5.7.8 Using an RTOS                        221  (1)
        5.7.9 Expertise Encapsulated               222  (1)
        5.7.10 Other Possibilities                 223  (1)
        5.7.11 The Way Forward                     223  (1)
      5.8 Using Nonvolatile RAM with C++           223  (6)
        5.8.1 Requirements of Using Nonvolatile    223  (1)
        RAM with C++
        5.8.2 NVRAM Implementation                 224  (1)
        5.8.3 A C++ nvram Class                    224  (3)
        5.8.4 Enhancing the nvram Class            227  (1)
        5.8.5 Conclusions                          227  (1)
        Further Reading                            228  (1)
    Chapter 6 Real Time                            229  (14)
      6.1 Real-Time Systems                        229  (3)
        6.1.1 Implementing an RTS                  230  (1)
        6.1.2 A Processing Loop                    230  (1)
        6.1.3 Interrupts                           230  (1)
        6.1.4 Multitasking                         231  (1)
        6.1.5 Using an RTOS                        232  (1)
      6.2 Visualizing Program Models of            232  (4)
      Embedded Systems
        6.2.1 Which Programming Model Is Best      232  (1)
        for Building Real-Time Systems?
        6.2.2 What Purpose Do Models Serve for     232  (1)
        a Real-Time System?
        6.2.3 What Differences Exist Between       233  (1)
        Models, and What Gains Require What
        Sacrifices?
        6.2.4 What Is the Single-Threaded          233  (1)
        Programming Model?
        6.2.5 What Are the Advantages and          233  (1)
        Disadvantages of the Single-Threaded
        Programming Model?
        6.2.6 Is a Polling Loop a                  233  (1)
        Single-Threaded Program?
        6.2.7 Is a State Machine a                 234  (1)
        Single-Threaded Program?
        6.2.8 What Is a Multi-Threaded System?     234  (1)
        6.2.9 What Are the Advantages and          234  (1)
        Disadvantages of the Multi-Threaded
        Programming Model?
        6.2.10 Can Multiple Threads of             235  (1)
        Execution Really Run Simultaneously on
        One CPU?
        6.2.11 How Can a Multi-Threaded            235  (1)
        Environment for a Real-Time System Be
        Acquired?
      6.3 Event Handling in Embedded Systems       236  (3)
        6.3.1 What Is an Event?                    236  (1)
        6.3.2 Is a Signal the Same Thing as an     237  (1)
        Event?
        6.3.3 What Events Are the Most Time        237  (1)
        Critical?
        6.3.4 What Does the Microprocessor Do      237  (1)
        When it Detects an Exception?
        6.3.5 Are All Exceptions the Same?         237  (1)
        6.3.6 What Is a Synchronous Exception?     237  (1)
        6.3.7 What Is an Asynchronous Exception?   238  (1)
        6.3.8 How Do Interrupts Get Generated      238  (1)
        and Serviced?
        6.3.9 What State Gets Saved by the CPU?    238  (1)
        6.3.10 Is the Machine State the Same as    238  (1)
        the Thread State?
        6.3.11 Should I Write Exception            239  (1)
        Handlers in Assembly Language or in C?
        6.3.12 How Do I Avoid Doing Work in the    239  (1)
        Exception Handler?
      6.4 Programming for Interrupts               239  (4)
        6.4.1 Setting up Interrupts                240  (1)
        6.4.2 Interrupt Service Routines           240  (1)
        6.4.3 Interrupt Vector                     241  (1)
        6.4.4 Initialization                       241  (1)
        6.4.5 Conclusions                          241  (2)
    Chapter 7 Real-Time Operating Systems          243  (44)
      7.1 Debugging Techniques with an RTOS        243  (11)
        7.1.1 Introduction                         243  (1)
        7.1.2 Multiprocess Concept                 244  (1)
        7.1.3 Execution Environment                245  (1)
        7.1.4 Target Connection                    246  (1)
        7.1.5 Debugging Modes                      247  (1)
        7.1.6 RTOS-Aware Debugging Functionality   248  (2)
        7.1.7 Shared Code                          250  (1)
        7.1.8 Task-Aware Breakpoints               250  (1)
        7.1.9 Dependent Tasks                      251  (1)
        7.1.10 Memory Management Units             252  (1)
        7.1.11 Multiple Processors                 253  (1)
        7.1.12 Conclusions                         254  (1)
      7.2 A Debugging Solution for a Custom        254  (4)
      Real-Time Operating System
        7.2.1 Implementing Task-Aware Debugging    255  (1)
        7.2.2 Task-Awareness Facilities            256  (2)
        7.2.3 Conclusions                          258  (1)
      7.3 Debugging---Stack Overflows              258  (1)
        7.3.1 Conclusions                          259  (1)
      7.4 Bring in the Pros---When to Consider     259  (6)
      a Commercial RTOS
        7.4.1 Commercial and Custom RTOSes         260  (1)
        7.4.2 Advantages of a Commercial RTOS      260  (1)
        7.4.3 Commercial RTOS Downsides            260  (1)
        7.4.4 Why Write a Custom RTOS?             261  (1)
        7.4.5 Reasons Not to Create a Custom       262  (1)
        RTOS
        7.4.6 Conclusions                          263  (2)
      7.5 On the Move                              265  (6)
        7.5.1 Migrating from One RTOS to Another   265  (1)
        7.5.2 Code Migration                       265  (1)
        7.5.3 Wrappers                             266  (3)
        7.5.4 Drivers and More                     269  (1)
        7.5.5 Debugging Issues                     269  (1)
        7.5.6 Conclusions                          269  (2)
      7.6 Introduction to RTOS Driver              271  (3)
      Development
        7.6.1 The Two Sides of a Device Driver     272  (1)
        7.6.2 Data Corruption                      272  (1)
        7.6.3 Thread Control                       272  (1)
        7.6.4 Program Logic                        273  (1)
        7.6.5 Conclusions                          274  (1)
      7.7 Scheduling Algorithms and Priority       274  (4)
      Inversion
        7.7.1 Introduction                         274  (1)
        7.7.2 Real-Time Requirements               274  (1)
        7.7.3 Scheduling Algorithms                275  (1)
        7.7.4 Implications for Operating           275  (2)
        Systems and Applications
        7.7.5 Conclusions                          277  (1)
      7.8 Time Versus Priority Scheduling          278  (3)
        7.8.1 RTOS Scheduling                      278  (1)
        7.8.2 Perfect World                        278  (1)
        7.8.3 Real World with Priority             279  (1)
        Scheduling
        7.8.4 Time Domain Bounded Without          279  (1)
        Relinquish
        7.8.5 Time Domain Bounded With             280  (1)
        Relinquish
        7.8.6 Conclusions                          280  (1)
      7.9 An Embedded File System                  281  (2)
        7.9.1 Requirements of an Embedded File     282  (1)
        System
        7.9.2 MS-DOS File System Overview          282  (1)
        7.9.3 Long Filenames                       283  (1)
        7.9.4 Formatting                           283  (1)
        7.9.5 Partitioning                         283  (1)
        7.9.6 Devices                              283  (1)
      7.10 OSEK---An RTOS Standard                 283  (4)
        7.10.1 About OSEK                          284  (1)
        7.10.2 OSEK Requirements                   284  (1)
        7.10.3 OSEK Tasks                          285  (1)
        7.10.4 Alarms                              286  (1)
        7.10.5 Error Treatment                     286  (1)
    Chapter 8 Networking                           287  (50)
      8.1 What's Wi-Fi?                            287  (5)
        8.1.1 Wireless Datacom                     288  (1)
        8.1.2 IEEE 802.11                          289  (1)
        8.1.3 802.11 Basics                        289  (1)
        8.1.4 Wi-Fi and Bluetooth                  290  (1)
        8.1.5 Where Next?                          291  (1)
      8.2 Who Needs a Web Server?                  292  (6)
        8.2.1 Introduction                         292  (1)
        8.2.2 Three Primary Capabilities           292  (2)
        8.2.3 Web Servers at Work                  294  (2)
        8.2.4 Brief Summary of the Web Server's    296  (1)
        Capabilities
        8.2.5 What Else Should You Consider?       297  (1)
        8.2.6 Conclusion                           297  (1)
      8.3 Introduction to SNMP                     298  (4)
        8.3.1 Why SNMP?                            298  (1)
        8.3.2 The Role of Network Manager          299  (1)
        8.3.3 Architectural Model                  299  (1)
        8.3.4 A Common Misperception               299  (1)
        8.3.5 Application-Level Manager-Agents     299  (1)
        8.3.6 How to Write Your MIB                300  (1)
        8.3.7 Terminology                          301  (1)
        8.3.8 Conclusions                          302  (1)
      8.4 IPv6---The Next Generation Internet      302  (7)
      Protocol
        8.4.1 Limitations of the Internet          303  (1)
        Protocol
        8.4.2 Introduction to IP Version 6         303  (1)
        8.4.3 Dual Stack Eases Transition          304  (1)
        8.4.4 How IPv6 Works                       304  (4)
        8.4.5 RFC Support                          308  (1)
      8.5 The Basics of DHCP                       309  (6)
        8.5.1 A DHCP Server                        309  (1)
        8.5.2 Theory of Operation                  310  (4)
        8.5.3 RFC Support                          314  (1)
      8.6 NAT Explained                            315  (3)
        8.6.1 NAT Explained                        315  (2)
        8.6.2 RFC Support                          317  (1)
        8.6.3 Protocol Support                     317  (1)
        8.6.4 Application Level Gateways           318  (1)
        8.6.5 The Private Network Address          318  (1)
        Assignment
      8.7 PPP---Point-to-Point Protocol            318  (6)
        8.7.1 Introduction                         318  (1)
        8.7.2 How PPP Works                        319  (2)
        8.7.3 PPP Details                          321  (3)
        8.7.4 RFC Support                          324  (1)
      8.8 Introduction to SSL                      324  (4)
        8.8.1 Introduction                         325  (1)
        8.8.2 How SSL Works                        325  (2)
        8.8.3 Some SSL Details                     327  (1)
      8.9 DHCP Debugging Tips                      328  (3)
      8.10 IP Multicasting                         331  (6)
        8.10.1 Initializing Multicasting           332  (1)
        8.10.2 IGMP Protocol                       333  (1)
        8.10.3 Implementing Multicasting           333  (2)
        8.10.4 Bringing it All Together            335  (2)
    Chapter 9 Open Source, Embedded Linux, and     337  (28)
    Android
      9.1 GNU Toolchain for Embedded               337  (13)
      Development: Build or Buy
        9.1.1 Introduction                         337  (1)
        9.1.2 Toolchain Components                 338  (2)
        9.1.3 Building the Toolchain               340  (4)
        9.1.4 Validating the Toolchain             344  (3)
        9.1.5 Testing Multiple Options             347  (2)
        9.1.6 Conclusions                          349  (1)
      9.2 Introduction to Linux for Embedded       350  (5)
      Systems
        9.2.1 Introduction                         350  (1)
        9.2.2 Challenges Using Open Source         350  (2)
        9.2.3 OpenEmbedded                         352  (1)
        9.2.4 Understanding Metadata               353  (2)
        9.2.5 Project Workflow                     355  (1)
        9.2.6 Summary                              355  (1)
      9.3 Android Architecture and Deployment      355  (5)
        9.3.1 What Is Android?                     355  (1)
        9.3.2 Android Architecture                 356  (1)
        9.3.3 Application Development              357  (2)
        9.3.4 The Android UI                       359  (1)
        9.3.5 Extending Android Beyond Mobile      359  (1)
        9.3.6 Conclusion                           360  (1)
      9.4 Android, MeeGo, and Embedded Linux in    360  (5)
      Vertical Markets
        9.4.1 Introduction                         360  (1)
        9.4.2 How Vertical Markets Are Different   360  (1)
        9.4.3 The Appeal of Android                361  (1)
        9.4.4 The Promise of MeeGo                 362  (1)
        9.4.5 The Versatility of Embedded Linux    363  (1)
        9.4.6 Conclusion                           363  (2)
    Chapter 10 Multicore Embedded Systems          365  (18)
      10.1 Introduction to Multicore               365  (2)
        10.1.1 System Architecture                 365  (1)
        10.1.2 Power                               366  (1)
        10.1.3 Challenges                          367  (1)
      10.2 Multiple Cores: Multiple Operating      367  (7)
      Systems
        10.2.1 SMP Hardware for AMP                368  (1)
        10.2.2 AMP Hardware Architecture           368  (1)
        10.2.3 AMP Software Architecture           369  (1)
        10.2.4 The Importance of Inter-Process     370  (1)
        Communication
        10.2.5 AMP Development Tools               370  (1)
        10.2.6 Difficulties                        371  (1)
        10.2.7 AMP Use Cases                       372  (1)
        10.2.8 The Use of a Hypervisor             373  (1)
        10.2.9 Conclusions                         374  (1)
      10.3 Selecting Multiple Operating Systems    374  (4)
      for Multiple Cores
        10.3.1 Introduction                        374  (1)
        10.3.2 Types of OS                         375  (1)
        10.3.3 OS Selection                        375  (2)
        10.3.4 Multicore Systems                   377  (1)
        10.3.5 Conclusions                         378  (1)
      10.4 CPU to CPU Communication: MCAPI         378  (5)
        10.4.1 Introduction                        378  (1)
        10.4.2 Multicore                           379  (1)
        10.4.3 The MCAPI                           379  (3)
        10.4.4 Conclusion                          382  (1)
Afterword                                          383  (2)
Index                                              385
 

关闭


版权所有:西安交通大学图书馆      设计与制作:西安交通大学数据与信息中心  
地址:陕西省西安市碑林区咸宁西路28号     邮编710049

推荐使用IE9以上浏览器、谷歌、搜狗、360浏览器;推荐分辨率1360*768以上