Fundamentals of Embedded Software

ISBN-10: 0132916541

ISBN-13: 9780132916547

Edition: 2nd 2013 (Revised)

Authors: Daniel W. Lewis
List price: $96.99 Buy it from $12.08
eBook available
This item qualifies for FREE shipping

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy

Description: For sophomore-level courses in Assembly Language Programming in Computer Science, Embedded Systems Design, Real-Time Analysis, Computer Engineering, or Electrical Engineering curricula. Requires prior knowledge of C, C++, or Java. This text is useful for Computer Scientists, Computer Engineers, and Electrical Engineers involved with embedded software applications.This book is intended to provide a highly motivating context in which to learn procedural programming language. Using a non-product specific approach and a programming (versus hardware) perspective, this text lays a foundation that supports the multi-threaded style of programming and high-reliability requirements of embedded software. Reflecting current industrial applications and programming practice, it focuses on the more modern 32-bit protected mode processors and on C as the dominant programming language with coverage of assembly and how it can be used in conjunction with, and support of, C.

Used Starting from $103.25
New Starting from $152.87
eBooks Starting from $34.99
Rent eBooks
Buy eBooks
what's this?
Rush Rewards U
Members Receive:
coins
coins
You have reached 400 XP and carrot coins. That is the daily max!

Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
SQL Online content $4.95 $1.99
Add to cart
Study Briefs
MS Excel® 2010 Online content $4.95 $1.99
Add to cart
Study Briefs
MS Word® 2010 Online content $4.95 $1.99
Add to cart
Study Briefs
MS PowerPoint® 2010 Online content $4.95 $1.99

Customers also bought

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

Book details

List price: $96.99
Edition: 2nd
Copyright year: 2013
Publisher: Pearson Education, Limited
Publication date: 2/2/2012
Binding: Hardcover
Pages: 256
Size: 7.00" wide x 9.20" long x 0.80" tall
Weight: 1.430
Language: English

Preface
Introduction
What is an Embedded System?
What Is Unique about the Design Goals for Embedded Software?
What Does "Real-Time" Mean?
What Does "Multithreading" Mean?
How Powerful are Embedded Processors?
What Programming Languages are Used?
How Is Building an Embedded Application Different?
How Big are Typical Embedded Programs?
Problems
Data Representation
Fixed-Precision Binary Numbers
Positional Number Systems
Binary-to-Decimal Conversion
Decimal-to-Binary Conversion
Hexadecimal: A Shorthand for Binary
Fixed Precision, Rollover, and Overflow
Binary Representation of Integers
Signed Integers
Positive and Negative Representations of the Same Magnitude
Interpreting the Value of a 2's-Complement Number
Changing the Sign of Numbers with Integer and Fractional Parts
Binary Addition and Subtraction
Range and Overflow
Binary Representation of Real Numbers
Floating-Point Real Numbers
Fixed-Point Real Numbers
ASCII Representation of Text
Binary-Coded Decimal (BCD)
Problems
Implementing Arithmetic
2'S-Complement and Hardware Complexity
Multiplication and Division
Signed Versus Unsigned Multiplication
Shifting Instead of Multiplying or Dividing by Powers of 2
Multiplying by an Arbitrary Constant
Dividing by an Arbitrary Constant
Arithmetic for Fixed-Point Reals
Fixed-Point Using a Universal 16.16 Format
Fixed-Point Using a Universal 32.32 Format
Multiplication of 32.32 Fixed-Point Reals
Example: Multiplying two 4.4 Fixed-Point Reals
Problems
Getting the Most out of C
Integer Data Types
Integer Range and the Standard Header File LIMITS.H
Boolean Data Types
Mixing Data Types
Manipulating Bits In Memory
Testing Bits
Setting, Clearing, and Inverting Bits
Extracting Bits
Inserting Bits
Manipulating Bits In Input/Output Ports
Write-Only I/O Devices
I/O Devices Differentiated by Reads Versus Writes
I/O Devices Differentiated by Sequential Access
I/O Devices Differentiated by Bits in the Written Data
Accessing Memory-Mapped I/O Devices
Accessing Data Using a Pointer
Arrays, Pointers, and the "Address of" Operator
Structures
Packed Structures
Bit Fields
Variant Access
Casting the Address of an Object
Using Unions
Problems
Programming in Assembly Part 1: Computer Organization
Memory
Data Alignment
The Central Processing Unit (CPU)
Other Registers
The Fetch-Execute Cycle
Input/Output
Introduction to the ARM� Cortex™-M3 v7M Architecture
Internal Organization
Instruction Pipelining
Memory Model
Bit-Banding
ARM Assembly Language
Instruction Formats and Operands
Translating Assembly into Binary
Problems
Programming in Assembly Part 2: Data Manipulation
Loading Constants into Registers
Loading Memory Data into Registers
Storing Data from Registers to Memory
Converting Simple C Assignment Statements into ARM Assembly
Memory Address Calculations
Memory Addressing Examples
Translating C Pointer Expressions to Assembly
Translating C Subscript Expressions to Assembly
Translating Structure References to Assembly
Stack Instructions
Data Processing Instructions
Updating the Flags in the APSR
Arithmetic Instructions
Bit Manipulation Instructions
Shift Instructions
Bit Field Manipulation Instructions
Miscellaneous Bit, Byte, and Half-Word Instructions
Problems
Programming in Assembly Part 3: Control Structures
Instruction Sequencing
Implementing Decisions
Conditional Branch Instructions
If-Then and If-Then-Else Statements
Compound Conditionals
The "If-Then" (IT) Instruction
Implementing Loops
Speeding Up Array Access
Implementing Functions
Function Call and Return
Register Usage
Parameter Passing
Return Values
Temporary Variables
Preserving Registers
Problems
Programming in Assembly Part 4: I/O Programming
The Cortex-M3 I/O Hardware
Interrupts and Exceptions
Thread and Handler Modes
Entering the Exception Handler
Returning from the Exception Handler
Latency Reduction
Priorities and Nested Exceptions
Synchronization, Transfer Rate, and Latency
Buffers and Queues
Double Buffering
Estimating I/O Performance Capability
Polled Waiting Loops
Interrupt-Driven I/O
Direct Memory Access
Comparison of Methods
Problems
Concurrent Software
Foreground/Background Systems
Thread State and Serialization
Managing Latency
Interrupt Overrun
Moving Work into the Background
Multithreaded Programming
Concurrent Execution of Independent Threads
Context Switching
Non-preemptive (Cooperative) Multithreading
Preemptive Multithreading
Shared Resources and Critical Sections
Disabling Interrupts
Disabling Task Switching
Spin Locks
Mutex Objects
Semaphores
Problems
Scheduling
Thread States
Pending Threads
Context Switching
Round-Robin Scheduling
Priority-Based Scheduling
Resource Starvation
Priority Inversion
The Priority Ceiling Protocol
The Priority Inheritance Protocol
Assigning Priorities
Deadline-Driven Scheduling
Rate-Monotonic Scheduling
Deadlock
Watchdog Timers
Problems
Memory Management
Objects in C
Scope
Refining Local Scope
Refining Global Scope
Lifetime
Automatic Allocation
Storage Class "Register"
Static Allocation
Three Programs to Distinguish Static from Automatic
Object Creation
Object Initialization
Object Destruction
Dynamic Allocation
Fragmentation
Memory Allocation Pools
Automatic Allocation with Variable Size (alloca)
Variable-Size Arrays
Recursive Functions and Memory Allocation
Problems
Shared Memory
Recognizing Shared Objects
Shared Global Data
Shared Private Data
Shared Functions
Reentrant Functions
Read-Only Data
Type Qualifier "const"
Coding Practices to Avoid
Functions That Keep Internal State in Local Static Objects
Functions That Return the Address of a Local Static Object
Accessing Shared Memory
The Effect of Processor Architecture
Read-Only and Write-Only Access
Type Qualifier "volatile"
Problems
System Initialization
Memory Layout
The CPU and Vector Table
C Run-Time Environment
Copying Initial Values from Non-Volatile Memory into the Data Region
Zeroing Uninitialized Statics
Setting Up a Heap
System Timer
Other Peripheral Devices
Answers to Selected Problems
Index
×
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.

×