Example: bankruptcy

ARM System Developers Guide-Designing and Optimizing ...

For more Free E-books Visit ARM System Developer's guide Designing and Optimizing System Software About the Authors Andrew N. Sloss Andrew Sloss received a in Computer Science from the University of Herefordshire (UK). in 1992 and was certi ed as a Chartered Engineer by the British Computer Society ( , MBCS). He has worked in the computer industry for over 16 years and has been involved with the ARM. processor since 1987. He has gained extensive experience developing a wide range of applications running on the ARM processor. He designed the rst editing systems for both Chinese and Egyptian Hieroglyphics executing on the ARM2 and ARM3 processors for Emerald Publishing (UK).

1.3 Embedded System Hardware 6 1.4 Embedded System Software 12 1.5 Summary 15 Chapter 2 ARM Processor Fundamentals 19 2.1 Registers 21 2.2 Current Program Status Register 22 2.3 Pipeline 29 2.4 Exceptions, Interrupts, and the Vector Table 33 2.5 Core Extensions 34 2.6 Architecture Revisions 37 2.7 ARM Processor Families 38 2.8 Summary 43 Chapter

Tags:

  Guide, System, Interrupts

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of ARM System Developers Guide-Designing and Optimizing ...

1 For more Free E-books Visit ARM System Developer's guide Designing and Optimizing System Software About the Authors Andrew N. Sloss Andrew Sloss received a in Computer Science from the University of Herefordshire (UK). in 1992 and was certi ed as a Chartered Engineer by the British Computer Society ( , MBCS). He has worked in the computer industry for over 16 years and has been involved with the ARM. processor since 1987. He has gained extensive experience developing a wide range of applications running on the ARM processor. He designed the rst editing systems for both Chinese and Egyptian Hieroglyphics executing on the ARM2 and ARM3 processors for Emerald Publishing (UK).

2 Andrew Sloss has worked at ARM Inc. for over six years. He is currently a Technical Sales Engineer advising and supporting companies developing new products. He works within the Sales Organization and is based in Los Gatos, California. Dominic Symes Dominic Symes is currently a software engineer at ARM Ltd. in Cambridge, England, where he has worked on ARM-based embedded software since 1995. He received his and in Mathematics from Oxford University. He rst programmed the ARM in 1989 and is particularly interested in algorithms and optimization techniques. Before joining ARM, he wrote commercial and public domain ARM software. Chris Wright Chris Wright began his embedded systems career in the early 80s at Lockheed Advanced Marine Systems.

3 While at Advanced Marine Systems he wrote small software control systems for use on the Intel 8051 family of microcontrollers. He has spent much of his career working at the Lockheed Palo Alto Research Laboratory and in a software development group at Dow Jones Telerate. Most recently, Chris Wright spent several years in the Customer Support group at ARM Inc., training and supporting partner companies developing new ARM-based products. Chris Wright is currently the Director of Customer Support at Ultimodule Inc. in Sunnyvale, California. John Ray eld John Ray eld, an independent consultant, was formerly Vice President of Marketing, , at ARM. In this role he was responsible for setting ARM's strategic marketing direction in the , and identifying opportunities for new technologies to serve key market segments.

4 John joined ARM. in 1996 and held various roles within the company, including Director of Technical Marketing and R&D, which were focused around new product/technology development. Before joining ARM, John held several engineering and management roles in the eld of digital signal processing, software, hardware, ASIC and System design. John holds an in Signal Processing from the University of Surrey (UK) and a in Electronic Engineering from Brunel University (UK). ARM System Developer's guide Designing and Optimizing System Software Andrew N. Sloss Dominic Symes Chris Wright With a contribution by John Ray eld AMSTERDAM BOSTON HEIDELBERG LONDON. NEW YORK OXFORD PARIS SAN DIEGO.

5 SAN FRANCISCO SINGAPORE SYDNEY TOKYO. Morgan Kaufmann is an imprint of Elsevier Senior Editor Denise Penrose Publishing Services Manager Simon Crump Project Manager Sarah M. Hajduk Developmental Editor Belinda Breyer Editorial Assistant Summer Block Cover Design Dick Hannus Cover Image Red Wing by Charles Biederman Collection Walker Art Center, Minneapolis Gift of the artist through the Ford Foundation Purchase Program, 1964. Technical Illustration Dartmouth Publishing Composition Cepha Imaging, Ltd. Copyeditor Ken Dellapenta Proofreader Jan Cocker Indexer Ferreira Indexing Interior printer The Maple-Vail Book Manufacturing Group Cover printer Phoenix Color Morgan Kaufmann Publishers is an imprint of Elsevier.

6 500 Sansome Street, Suite 400, San Francisco, CA 94111. This book is printed on acid-free paper. 2004 by Elsevier Inc. All rights reserved. The programs, examples, and applications presented in this book and on the publisher's Web site have been included for their instructional value. The publisher and the authors offer no warranty implied or express, including but not limited to implied warranties of tness or merchantability for any particular purpose and do not accept any liability for any loss or damage arising from the use of any information in this book, or any error or omission in such information, or any incorrect use of these programs, procedures, and applications.

7 Designations used by companies to distinguish their products are often claimed as trademarks or registered trademarks. In all instances in which Morgan Kaufmann Publishers is aware of a claim, the product names appear in initial capital or all capital letters. Readers, however, should contact the appropriate companies for more complete information regarding trademarks and registration. No part of this publication may be reproduced, stored in a retrieval System , or transmitted in any form or by any means electronic, mechanical, photocopying, scanning, or otherwise without prior written permission of the publisher. Permissions may be sought directly from Elsevier's Science & Technology Rights Department in Oxford, UK: phone: (+44) 1865 843830, fax: (+44) 1865 853333, e-mail: You may also complete your request on-line via the Elsevier homepage ( ) by selecting Customer Support and then Obtaining Permissions.

8 Library of Congress Cataloging-in-Publication Data Sloss, Andrew N. ARM System developer's guide : designing and Optimizing System software/Andrew N. Sloss, Dominic Symes, Chris Wright. p. cm. Includes bibliographical references and index. ISBN 1-55860-874-5 (alk. paper). 1. Computer software Development. 2. RISC microprocessors. 3. Computer architecture. I. Symes, Dominic. II. Wright, Chris, 1953- III. Title. 2004. dc22. 2004040366. ISBN: 1-55860-874-5. For information on all Morgan Kaufmann publications, visit our Web site at Printed in the United States of America 08 07 06 05 04 5 4 3 2 1. Contents About the Authors ii Preface xi Chapter 1 ARM Embedded Systems 3.

9 The RISC Design Philosophy 4. The ARM Design Philosophy 5. Embedded System Hardware 6. Embedded System Software 12. Summary 15. Chapter 2 ARM Processor Fundamentals 19. Registers 21. Current Program Status Register 22. Pipeline 29. Exceptions, interrupts , and the Vector Table 33. Core Extensions 34. Architecture Revisions 37. ARM Processor Families 38. Summary 43. Chapter 3 Introduction to the ARM Instruction Set 47. Data Processing Instructions 50. Branch Instructions 58. Load-Store Instructions 60. Software Interrupt Instruction 73. Program Status Register Instructions 75. Loading Constants 78. ARMv5E Extensions 79. Conditional Execution 82. Summary 84.

10 V vi Contents Chapter 4 Introduction to the Thumb Instruction Set 87. Thumb Register Usage 89. ARM-Thumb Interworking 90. Other Branch Instructions 92. Data Processing Instructions 93. Single-Register Load-Store Instructions 96. Multiple-Register Load-Store Instructions 97. Stack Instructions 98. Software Interrupt Instruction 99. Summary 100. Chapter 5 Efficient C Programming 103. Overview of C Compilers and Optimization 104. Basic C Data Types 105. C Looping Structures 113. Register Allocation 120. Function Calls 122. Pointer Aliasing 127. Structure Arrangement 130. Bit- elds 133. Unaligned Data and Endianness 136. Division 140. Floating Point 149.


Related search queries