Fundamentals of embedded software : Where C and assembly meet / (Record no. 2406)
[ view plain ]
000 -LEADER | |
---|---|
fixed length control field | 07932cam a22001934a 4500 |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER | |
International Standard Book Number | 0130615897 (alk. paper) |
040 ## - CATALOGING SOURCE | |
Transcribing agency | CUS |
082 00 - DEWEY DECIMAL CLASSIFICATION NUMBER | |
Classification number | 005.133 |
Item number | LEW/F |
100 1# - MAIN ENTRY--PERSONAL NAME | |
Personal name | Lewis, D. W. |
245 10 - TITLE STATEMENT | |
Title | Fundamentals of embedded software : Where C and assembly meet / |
Statement of responsibility, etc. | Daniel W. Lewis. |
260 ## - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT) | |
Place of publication, distribution, etc. | Upper Saddle River, NJ : |
Name of publisher, distributor, etc. | Prentice Hall, |
Date of publication, distribution, etc. | c2002. |
300 ## - PHYSICAL DESCRIPTION | |
Extent | xvi, 266 p. : |
Other physical details | ill. ; |
Dimensions | 25 cm. + |
Accompanying material | 1 CD-ROM (4 3/4 in.) |
500 ## - GENERAL NOTE | |
General note | Includes index. |
505 ## - FORMATTED CONTENTS NOTE | |
Formatted contents note | Chapter 1 Introduction 1<br/>1.1 What is an Embedded System? 1<br/>1.2 What's Unique About the Design Goals for Embedded Software?<br/>1.3 What Does "Real-Ume" Mean? 5<br/>1.4 What Does "Multitasking" Mean? 6<br/>1.5 How Powerful Are Embedded Processors? 7<br/>1.6 What Programming Languages Are Used? 7<br/>1.7 What Is a "Real-Time Kernel"? 8<br/>1.8 How Is Btiilding an Embedded Application Unique? 9<br/>1.9 How Big Are Typical Embedded Programs? 11<br/>1.10 The Software Used in This Book 12<br/>Problems 14<br/>Chapter 2 Data Representation 15<br/>2.1 Fixed-Precision Binary Numbers 15<br/>2.1.1 Positional Number Systems 16<br/>2.1.2 Binary-to-Decimal Conversion 17<br/>2.1.3 Decimal-to-Binary Conversion 17<br/>2.1.4 Counting 19<br/>2.1.5 Fixed Precision and Rollover 19<br/>2.1.6 Hexadecimal Representation 20<br/>2.2 Binary Representation of Integers 21<br/>2.2.1 Signed Integers 21<br/>2.2.2 Positive and Negative Representations of the Same<br/>Magnitude 22<br/>2.2.3 Interpreting the Value of a 2's-Complement Number 23<br/>2.2.4 More on Range and Overflow 24<br/>2.2.5 2's Complement and Hardware Complexity 25<br/>2.3 Binary Representation of Real Numbers 28<br/>2.3.1 Fixed-Point Representation 28<br/>2.3.2 Fixed-Point Using a Universal 16.16 Format 30<br/>2.3.3 Fixed-Point Using a Universal 32.32 Format 32<br/>2.3.4 Floating-Point Representation 35<br/>2.4 ASCQ Representation of Text 37<br/>2.5 Binary-Coded Dedmai (BCD) 39<br/>Problems 40<br/>C3upter 3 Getting the Most Out of C 43<br/>3.1 Integer Data lypes 43<br/>32 Mixing Data lypes 46<br/>3.3 Usefuliypedefe and Defines 47<br/>3.4 Manipulating Bits in Memory 48<br/>3.4.1 Testing Bits 50<br/>3.4.2 Setting, Clearing, and Inverting Bits 51<br/>3.4.3 Extracting Bits 52<br/>3.4.4 Inserting Bits 52<br/>3.5 Manipulating Bits in I/O Ports 53<br/>3.5.1 Write-Only I/O Ports 53<br/>3.5.2 PortsDifferentiatedby Reads Versus Writes 54<br/>3.5.3 Pbrts Differentiated by Sequential Access 54<br/>3.5.4 Ports Differentiated by Bits in the Written Data 55<br/>3.6 Accessing Memory-Mapped I/O Devices 55<br/>3.6.1 Accessing Data Through a Pointer 55<br/>3.6.2 Arrays, Pointers, and the "Address Or Operator 56<br/>3.7 Structures 58<br/>3.7.1 Packed Structures 59<br/>3.7.2 Bit Fields 60<br/>3.8 Variant Access 61<br/>3.8.1 Casting the Address of an Object 61<br/>3.8.2 Using Unions 63<br/>Problems 63<br/>Chapter 4 A Programmer's View of Computer Organization 65<br/>4.1 Memory 65<br/>4.2 The Central Processing Unit (CPU) 67<br/>4.2.1 The Arithmetic and Logic Unit (ALU) 67<br/>4.2.2 Other Registers 68<br/>4.2.3 The Control Unit 69<br/>4.3 Input/Output (I/O) 70<br/>4.4 Introduction to the Intel Architecture 71<br/>4.4.1 Instruction Formats 72<br/>4.4.2 Instruction Operands 73<br/>4.4.3 Operand Restrictions 74<br/>4.4.4 Registers 75<br/>4.4.5 Ibe Stack 77<br/>4.5 Hie Intel Real Mode Architecture 78<br/>4.5.1 Segmented Addressing 79<br/>4.5.2 Addressing Modes 81<br/>4.6 The Intel Protected Mode Architecture 83<br/>4.6.1 Segment Registers and Hie Global Descriptor Ihble 84<br/>4.6.2 The Flat Memory Model 85<br/>4.6.3 Addressing Modes 85<br/>4.7 Operand and Address-Size Override Prefixes 86<br/>4.8 Hie Intel Data Manipulation Instructions 86<br/>4.8.1 Data Movement, Stack, and I/O Instructions 87<br/>4.8.2 Arithmetic Instructions 89<br/>4.8.3 Bitwise Instructions 91<br/>4.8.4 Shift Instructions 91<br/>Problems 93<br/>Chapter 5 Mixing C and Assembly 96<br/>5.1 Programming in Assembly 96<br/>5.2 Register Usage Conventions 98<br/>5.3 Typical Use of Addressing Options 98<br/>5.3.1 Accessing Data Whose Address is a Constant 99<br/>5.3.2 Accessing Data Whose Address is a Variable 100<br/>5.4 Instruction Sequendng 101<br/>5.4.1 Compound Conditionals 102<br/>5.42 If-Ihen-Else Statements 104<br/>5.4.3 Building Loops 105<br/>5.4.4 Faster Loops with String Instructions 106<br/>5.5 Procedure Call and Return 1(77<br/>5.6 Parameter Passing 108<br/>5.7 Retrieving Parameters 110<br/>5.8 Everything is Pass by Value 112<br/>5.9 Tbmporary Variables 112<br/>Problems 115<br/>Chapter 6 Input/Output Programming 117<br/>6.1 Hie Intel I/O Instructions 118<br/>6.2 Synchronization, Tlransfer Rate, and Latency 118<br/>6.3 Polled Waiting Loops 119<br/>6.4 Intemxpt-Driven I/O 121<br/>6.4.1 The Hardware Response 121<br/>6.4.2 The Interrupt Service Routine 124<br/>6.4.3 Programmable Interrupt Controllers 125<br/>6.4.4 Buffers and Queues 126<br/>6.4.5 Writing Interrupt Service Routines in Assembly 128<br/>6.4.6 Writing Interrupt Service Routines in C 129<br/>6.4.7 Nonmaskable Interrupts 130<br/>6.4.8 Software Interrupts 130<br/>6.4.9 Exceptions 132<br/>6.5 Direct Memory Access 132<br/>6.5.1 Double Buffering 133<br/>6.6 Comparison of Methods 134<br/>Problems 135<br/>Chapter 7 Concurrent Software 138<br/>7.1 Foreground/Background Systems 138<br/>7.1.1 Thread State and Serialization 139<br/>7.1.2 Managing Latency 139<br/>7.1.3 Preventing Interrupt Overrun 143<br/>7.1.4 Moving Work into the Background 144<br/>12 Multithreaded Programming 145<br/>7.2.1 Concurrent Execution of Independent Threads 145<br/>122 Context Switching 146<br/>123 Nonpreemptive (Cooperative) Multitasking 147<br/>12A Preemptive Multitasking 147<br/>13 Shared Resources and Critical Sections 148<br/>7.3.1 Disabling Interrupts 150<br/>132 Disabling Task Switching 150<br/>133 Spin Locks 151<br/>13 A Mutex Objects 152<br/>7.3.5 Semaphores 152<br/>Problems 153<br/>Chapter 8 Sdieduling ISS<br/>8.1 Thread States 155<br/>8.2 Pending Threads 156<br/>8.3 Context Switching 157<br/>8.4 Round-Robin Scheduling 158<br/>8.5 Priority-Based Scheduling 159<br/>8.5.1 Priority Inversion 159<br/>8.5.2 The Priority Inheritance Protocol 160<br/>8.5.3 Hie Priority Ceiling Protocol 161<br/>8.6 Assigning Priorities 161<br/>8.6.1 Deadline-Driven Scheduling 161<br/>8.6.2 Rate-Monotonic Scheduling 162<br/>8.7 Deadlock 163<br/>8.8 Watchdog Hmers 164<br/>Problems 166<br/>Chapter 9 Memory Management 168<br/>9.1 Objects in C 168<br/>9.2 Scope 169<br/>9.2.1 RelBning Local Scope 169<br/>9.2.2 Refining Global Scope 170<br/>9.3 Lifetime 171<br/>9.4 Automatic Allocation 172<br/>9.4.1 Storage Class "Register" 173<br/>9.5 Static Allocation 174<br/>9.6 Three Programs to Distinguish Static from Automatic 174<br/>9.6.1 Object Creation 175<br/>9.6.2 Object Initialization 175<br/>9.6.3 Object Destruction 176<br/>9.7 Dynamic Allocation 177<br/>9.7.1 Fragmentation 178<br/>9.7.2 Memory Allocation Pools 179<br/>9.8 Automatic Allocation with Variable Size (alloca) 179<br/>9.8.1 Variable-Size Arrays 180<br/>9.9 Recursive Functions and Memory Allocation 181<br/>Problems 182<br/>Chapter 10 Shared Memory 189<br/>10.1 Recognizing Shared Objects 189<br/>10.1.1 Shared Global Data 190<br/>10.1.2 Shared Private Data 190<br/>10.1.3 Shared Functions 190<br/>10.2 Reentrant Fimctions 190<br/>10.3 Read-Only Data 191<br/>10.3.1 Type Qualifier "const" 191<br/>10.4 Coding Practices to Avoid 192<br/>10.4.1 Functions That Keep Internal State in Local Static Objects 192<br/>10.4.2 Functions That Return the Address of a Local Static Object 194<br/>10.5 Accessing Shared Memory 195<br/>10.5.1 The Effect of Processor Word Size 196<br/>10.5.2 Read-Only and Write-Only Access 197<br/>10.5.3 Type Qualifier "volatile" 198<br/>Problems 2(H)<br/>Chapter 11 System Initializatioii 203<br/>11.1 Memory Layout 203<br/>11.2 The CPU 204<br/>11.2.1 Setting Up a Flat Memory Model 204<br/>11.2.2 Switching into Protected Mode 207<br/>11.3 C Run-Ume Environment 207<br/>11.3.1 Copying from ROM to RAM 208<br/>11.3.2 Zeroing Uninitialized Statics 208<br/>11.3.3 Setting Up a Heap 209<br/>11.4 System Timer 211<br/>11.4.1 Timer 0: Timer Tick 211<br/>11.4.2 Timer 1: Memory Refresh 212<br/>11.4.3 Timer 2: Speaker Frequency 212<br/>11.5 Interrupt System 213<br/>11.5.1 Initializing the IDT 213<br/>11.5.2 Initializing the 8259 PICs 215<br/>11.5.3 Installing a New Interrupt Service Routine 216 |
650 #0 - SUBJECT | |
Keyword | Embedded Computer Systems |
General subdivision | Programming. |
650 #0 - SUBJECT | |
Keyword | C (Computer program language) |
650 #0 - SUBJECT | |
Keyword | Assembly languages (Electronic computers) |
942 ## - ADDED ENTRY ELEMENTS (KOHA) | |
Koha item type | General Books |
Withdrawn status | Lost status | Damaged status | Not for loan | Home library | Current library | Shelving location | Date acquired | Full call number | Accession number | Date last seen | Koha item type |
---|---|---|---|---|---|---|---|---|---|---|---|
Central Library, Sikkim University | Central Library, Sikkim University | General Book Section | 07/06/2016 | 005.133 LEW/F | P20827 | 07/06/2016 | General Books | ||||
Central Library, Sikkim University | Central Library, Sikkim University | General Book Section | 07/06/2016 | 005.133 LEW/F | P20826 | 07/06/2016 | General Books |