HomeHelpSearchVideo SearchAudio SearchMarc DisplayReserveMy AccountLibrary Map
Professional embedded arm development / James A. Langbridge.

Author: Langbridge, James A.

Imprint:Hoboken : Wiley, c2011.

Descriptionxxv, 259 p. : ill. ; 24 cm.

Note:Introduction -- Part 1: Arm Systems and Development -- Chapter 1: The History of ARM -- The Origin of ARM -- Why Acorn Decided to Create a New Processor -- Why Acorn Became ARM -- Why ARM Doesn't Actually Produce Microprocessors -- ARM Naming Conventions -- How to Tell What Processor You Are Dealing With -- Differences between ARM7TDMI and ARM926EJ-S -- Differences between ARM7 and ARMv7 -- Differences between Cortex-M and Cortex-A -- Manufacturer Documentation -- What Is ARM Doing Today? -- Summary -- Chapter 2: ARM Embedded Systems -- ARM Embedded Systems Defined -- What Is a System on Chip? -- What's the Difference between Embedded Systems and System Programming? -- Why Is Optimization So Important? -- What Is the Advantage of a R ISC Architecture? --Choosing the Right Processor --What Should You Start With? --What Boards Are Available? --What Operating Systems Exist? -- Which Compiler Is Best Suited to My Purpose? -- Getting Ready for Debugging -- Are There Any Complete Development Environments? -- Is There Anything Else I Need to Know? -- Summary -- Chapter 3: ARM Architecture -- Understanding the Basics -- Register -- Stack -- Internal RAM -- Cache -- Getting to Know the Different ARM Subsystems -- Presenting the Processor Registers -- Presenting the CPSR -- Calculation Unit -- Pipeline -- Tightly Coupled Memory -- Coprocessors -- Understanding the Different Concepts -- What Is an Exception? -- Handling Different Exceptions -- Modes of Operation -- Vector Table -- Memory Management -- Presenting Different Technologies -- JTAG Debug (D). Enhanced DSP (E) -- Vector Floating Point (F) -- EmbeddedICE (I) -- Jazelle (J) -- Long Multiply (M) -- Thumb (T) -- Synthesizable (S) -- TrustZone -- NEON -- big. LITTLE -- Summary -- Chapter 4: ARM Assembly Language -- Introduction to Assembly Language -- Talking to a Computer -- Why Learn Assembly? -- Speed -- Size -- Fun! -- Compilers Aren't Perfect -- Understanding Computer Science through Assembly -- Shouldn't You Just Write in Assembly? -- Uses of Assembly -- Writing Bootloaders -- Reverse Engineering -- Optimization -- ARM Assembly Language -- Layout -- Instruction Format -- Condition Codes -- Updating Condition Flags -- Addressing Modes -- ARM Assembly Primer -- Loading and Storing -- Setting Values -- Branching -- Mathematics -- Understanding an Example Program -- Summary -- Chapter 5: First Steps -- Hello World! -- Taking the World Apart -- Hello World, for Real This Time! -- Software Implementation -- Memory Mapping -- Real World Examples -- Silicon Labs STK3800 -- Silicon Labs STK3200 -- Atmel D20 Xplained Pro -- Case Study: U-Boot -- Machine Study: Raspberry Pi -- Boot Procedure -- Compiling Programs for the Raspberry Pi -- What's Next? -- Summary -- Chapter 6: Thumb Instruction Set -- Thumb -- Thumb-2 Technology -- How Thumb Is Executed -- Advantages of Using Thumb -- Cores Using Thumb -- ARM-Thumb Interworking -- Introduction to Thumb-1 -- Register Availability -- Removed Instructions -- No Conditionals -- Set Flags -- No Barrel Shifter -- Reduced Immediates -- Stack Operations -- Introduction to Thumb-2 -- New Instructions -- Coprocessor -- DSP -- FPU -- Writing for Thumb -- Summary -- Chapter 7: Assembly Instructions -- Movement -- MOV -- MVN -- MOVW -- MOVT -- NEG -- Example: Loading a 32-Bit Constant from the Instruction Stream -- Arithmetic -- ADD -- ADC -- SUB -- SBC -- RSB -- RSC -- Example: Basic Math -- Saturating Arithmetic. QADD -- QSUB -- QDADD -- QDSUB -- Data Transfer -- LDR -- STR -- Example: memcpy -- Logical -- AND -- EOR -- ORR -- BIC -- CLZ -- Compare -- CMP -- CMN -- TST -- TEQ -- Branch -- B -- BL -- BX -- BLX -- Example: Counting to Zero -- Example: Thumb Interworking -- What Is MOV pc, lr? -- Multiply -- MUL -- MLA -- UMULL -- UMLAL -- SMULL -- SMLAL -- Divide -- SDIV -- UDIV -- Multiple Register Data Transfer -- STM -- LDM -- Barrel Shifter -- LSL -- LSR -- ASR -- ROR -- RRX -- Stack Operations -- PUSH -- POP -- Example: Returning from a Subroutine -- Coprocessor Instructions -- MRC -- MCR -- Miscellaneous Instructions -- SVC -- NOP -- MRS -- MSR -- Summary -- Chapter 8: NEON -- What Are the Advantages of NEON? -- What Data Types Does NEON Support? -- Using NEON in Assembly -- Presenting the Registers -- Loading and Storing Data -- Optimized memcpy -- NEON Instructions -- Using NEON in C -- Presenting Intrinsics -- Using NEON Intrinsics -- Converting an Image to Grayscale -- Summary -- Chapter 9: Debugging -- What Is a Debugger? -- What Can a Debugger Do? -- ARM Debugging Capabilities -- Types of Debugging -- Loops -- Routines -- Interrupt Controllers -- Bootloaders -- Debuggers -- GNU Debugger -- J-Link GDB Debugger -- Example Debugging -- Infinite Loop -- Unknown Exception -- Dividing by Zero -- In-Depth Analysis -- Data Abort -- Corrupted Serial Line -- 64-Bit Calculations -- A Timely Response -- Summary -- Chapter 10: Writing Optimized C -- Rules for Optimized Code -- Don't Start with Optimization -- Know Your Compiler -- Profiling -- Profiling Inside an Operating System -- Profiling on a Bare Metal System -- C Optimizations -- Basic Example -- Count Down, Not Up -- Integers -- Division -- Don't Use Too Many Parameters -- Pointers, Not Objects -- Don't Frequently Update System Memory -- Alignment -- Assembly Optimizations -- Specialized Routines. Handling Interrupts -- Hardware Configuration Optimizations -- Frequency Scaling -- Configuring Cache -- Summary -- Part 2: Reference -- Appendix A: Terminology -- Branch Prediction -- Cache -- Cache Hit -- Cache Line -- Cache Miss -- Coprocessors -- CP10 -- CP11 -- CP14 -- CP15 -- Cycle -- Exception -- Interrupt -- Jazelle -- JTAG -- MIPS -- NEON -- Out-of-Order Execution -- Pipeline -- Register -- SIMD -- SOC -- Synthesizable -- Trustzone -- Vector Tables -- Appendix B: ARM Architecture Versions -- ARMV1 -- ARMV2 -- ARMV3 -- ARMV4 -- ARMV5 -- ARMV6 -- ARMV6-M -- ARMV7-A/R -- ARMV7-M -- ARMV8 -- Appendix C: ARM Core Versions -- ARM6 -- ARM7 -- ARM7TDMI -- ARM8 -- StrongARM -- ARM9TDMI -- ARM9E -- ARM10 -- XSCALE -- ARM11 -- Cortex -- Cortex-A -- Cortex-R -- Cortex-M -- Appendix D: NEON Intrinsics and Instructions -- Data Types -- Lane Types -- Assembly Instructions -- Intrinsic Naming Conventions -- Appendix E: Assembly Instructions -- ARM Instructions -- Arithmetic Instructions -- Parallel Arithmetic -- Movement -- Load -- Store -- Logical -- Comparison -- Saturate -- Branch -- Extend -- Miscellaneous -- Thumb Instructions on Cortex-M Cores -- Index.

Note:A practical WROX guide to ERM programming for mobile devices with more than 90 percent of mobile phones sold in recent years using ERM-based processors, developers are eager to master this embedded technology. If you know the basics of C programming, this guide will ease you into the world of embedded ARM technology. With clear explanations of the systems common to alll ARM processors and step by step instructions for creating an embedded application, it prepares you for this popular specialty. While ARM technology is not new , existing books on the topic predate the current e.

Library Shelf Location Call Number Item Status
Buhl LibraryBuhl - Open Stacks TK7874 .L384 2013 Available

This item has been checked out 2 time(s)
and currently has 0 hold request(s).

Related Searches
Author:
Langbridge, James A.
Subject:
Embedded computer systems.
Integrated circuits.
Microprocessors.
Mobile computing.
Computer programming.
Application software -- Development.
Technology & Engineering. Mechanical.