1 option
Programming embedded systems : with C and GNU development tools / by Michael Barr and Anthony Massa.
Van Pelt Library TK7895.E42 B37 2007
Available
- Format:
- Book
- Author/Creator:
- Barr, Michael, 1971-
- Language:
- English
- Subjects (All):
- Embedded computer systems--Programming.
- Embedded computer systems.
- C (Computer program language).
- C++ (Computer program language).
- Physical Description:
- xxi, 301 pages : illustrations ; 24 cm
- Edition:
- Second edition.
- Other Title:
- Programming embedded systems with C and GNU development tools
- Place of Publication:
- Sebastopol, CA : O'Reilly, [2007]
- Summary:
- If you have programming experience and a familiarity with C, Programming Embedded Systems, Second Edition, is exactly what you need to get started writing embedded software. The first edition of Programming Embedded Systems taught the subject to tens of thousands of people and is now considered the bible of embedded programming. This second edition has been updated to cover the latest hardware designs and development methodologies.
- The techniques and code examples presented here are directly applicable to real-world embedded software projects of all kinds. Examples use the free GNU software programming tools, the eCos and Linux operating systems, and a low-cost hardware platform specially developed for this book. If you obtain these tools along with Programming Embedded Systems, Second Edition, you'll have a full environment for exploring embedded systems in depth. But even if you work with different hardware and software, the principles covered in this book apply.
- Whether you are new to embedded systems or have done embedded work before, you'll benefit from the topics in this book, which include: Basic debugging techniques-a critical skill when working with minimally endowed embedded systems, Interrupts, and the monitoring and control of on-chip and external peripherals, Determining whether you have real-time requirements, and whether your operating system and application can meet those requirements, Task synchronization with real-time operating systems and embedded Linux, Optimizing embedded software for size, speed, and power consumption.
- So, whether you're writing your first embedded program, designing the latest generation of hand-held whatchamacallits, or managing the people who do, Programming Embedded Systems, Second Edition, will help you develop the knowledge and skills you need to achieve proficiency with embedded software.
- Contents:
- What Is an Embedded System? 1
- Variations on a Theme 4
- Embedded Design Examples 8
- Life As an Embedded Software Developer 11
- The C Language: The Lowest Common Denominator 13
- A Few Words About Hardware 15
- 2 Getting to Know the Hardware 19
- Understanding the Big Picture 19
- Hardware Basics 21
- Examine the Landscape 28
- Learn How to Communicate 32
- Getting to Know the Processor 34
- Study the External Peripherals 38
- Initialize the Hardware 39
- 3 Your First Embedded Program 43
- Hello, World! 43
- The Blinking LED Program 44
- The Role of the Infinite Loop 51
- 4 Compiling, Linking, and Locating 53
- The Build Process 54
- Building the Blinking LED Program 61
- A Quick Look at Makefiles 66
- 5 Downloading and Debugging 70
- Downloading the Blinking LED Program 70
- Remote Debuggers 77
- Emulators 84
- Other Useful Tools 86
- Dig into the Hardware 92
- 6 Memory 93
- Types of Memory 93
- Direct Memory Access 98
- Endian Issues 98
- Memory Testing 102
- Validating Memory Contents 114
- Using Flash Memory 118
- 7 Peripherals 122
- Control and Status Registers 122
- The Device Driver Philosophy 130
- Device Driver Design 140
- 8 Interrupts 142
- Interrupt Map 148
- Interrupt Service Routine 150
- The Improved Blinking LED Program 155
- Summary of Interrupt Issues 161
- Application Overview 164
- Working with Serial Ports 166
- Command-Line Interface Processing 167
- 10 Operating Systems 173
- History and Purpose 173
- The Scheduler 174
- Tasks 180
- Task Synchronization 185
- Message Passing 190
- Other Functionality 191
- Interrupt Handling 191
- Real-Time Characteristics 192
- To Use or Not to Use an RTOS 194
- 11 eCos Examples 198
- Task Mechanics 199
- Mutex Task Synchronization 202
- Semaphore Task Synchronization 205
- Message Passing 210
- eCos Interrupt Handling 213
- 12 Embedded Linux Examples 219
- Accessing Hardware in Linux 220
- Task Mechanics 220
- Mutex Task Synchronization 222
- Semaphore Task Synchronization 224
- Message Passing 227
- 13 Extending Functionality 232
- Common Peripherals 232
- Networking for All Devices Great and Small 242
- 14 Optimization Techniques 248
- Increasing Code Efficiency 249
- Decreasing Code Size 252
- Problems with Optimizing Compilers 254
- Reducing Memory Usage 255
- Power-Saving Techniques 256
- Limiting the Impact of C++ 259
- A The Arcom Viper-Lite Development Kit 263
- B Setting Up Your Software Development Environment 266
- C Building the GNU Software Tools 271
- D Setting Up the eCos Development Environment 274
- E Setting Up the Embedded Linux Development Environment 277.
- Notes:
- "Includes Real-Time and Linux examples"--Cover.
- Previous ed.: published as Programming embedded systems in C and C++. Sebastopol, CA.: O'Reilly, 1999.
- Includes bibliographical references and index.
- Local Notes:
- Acquired for the Penn Libraries with assistance from the Sabin W. Colton, Jr., Memorial Fund.
- ISBN:
- 0596009836
- 9780596009830
- OCLC:
- 150324066
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.