My Account Log in

1 option

Programming embedded systems : with C and GNU development tools / by Michael Barr and Anthony Massa.

Van Pelt Library TK7895.E42 B37 2007
Loading location information...

Available This item is available for access.

Log in to request item
Format:
Book
Author/Creator:
Barr, Michael, 1971-
Contributor:
Massa, Anthony J.
Sabin W. Colton, Jr., Memorial Fund.
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.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account