Beställningsvara. Skickas inom 7-10 vardagar. Fri frakt för medlemmar vid köp för minst 249 kr.
ARM designs the cores of microcontrollers which equip most "embedded systems" based on 32-bit processors. Cortex M3 is one of these designs, recently developed by ARM with microcontroller applications in mind. To conceive a particularly optimized piece of software (as is often the case in the world of embedded systems) it is often necessary to know how to program in an assembly language.This book explains the basics of programming in an assembly language, while being based on the architecture of Cortex M3 in detail and developing many examples.It is written for people who have never programmed in an assembly language and is thus didactic and progresses step by step by defining the concepts necessary to acquiring a good understanding of these techniques.
Vincent Mahout is a teacher at INSA of Toulouse (Grande Ecole d'Ingénieurs) under the authority of the Ministry of Education and Research. He is also a researcher at CNRS/LAAS (www.laas.fr), Toulouse, France.
Preface ixChapter 1. Overview of Cortex-M3 Architecture 11.1. Assembly language versus the assembler 11.2. The world of ARM 2Chapter 2. The Core of Cortex-M3 152.1. Modes, privileges and states 152.2. Registers 17Chapter 3. The Proper Use of Assembly Directives 253.1. The concept of the directive 253.2. Structure of a program 273.3. A section of code 293.4. The data section 363.5. Is that all? 39Chapter 4. Operands of Instructions 474.1. The constant and renaming 484.2. Operands for common instructions 494.3. Memory access operands: addressing modes 57Chapter 5. Instruction Set 635.1. Reading guide 635.2. Arithmetic instructions 665.3. Logical and bit manipulation instructions 705.4. Internal transfer instructions 755.5. Test instructions 765.6. Branch instructions 775.7. Load/store instructions 805.8. “System” instructions and others 85Chapter 6. Algorithmic and Data Structures 876.1. Flowchart versus algorithm 876.2. Alternative structures 896.3. Iterative structures 986.4. Compound conditions 1066.5. Data structure 111Chapter 7. Internal Modularity 1197.1. Detailing the concept of procedure 1197.2. Procedure arguments 1237.3. Local data 136Chapter 8. Managing Exceptions 1478.1. What happens during Reset? 1488.2. Possible exceptions 1518.3. Priority management 1618.4. Entry and return in exception processing 167Chapter 9. From Listing to Executable: External Modularity 1739.1. External modularity 1759.2. The role of the assembler 1829.3. The role of the linker 1889.4. The loader and the debugging unit 196Appendices 199Appendix A. Instruction Set – Alphabetical List 201Appendix B. The SysTick Timer 209Appendix C. Example of a “Bootstrap” File 217Appendix D. The GNU Assembler 227Bibliography 239Index 241