Preface xxix Acknowledgments xxxi Trademarks and Copyrights xxxiii Copyright Permissions xxxv About the Companion Website xxxix Chapter 1 Introduction to Microcontrollers and This Book 1 1.1 Microcontroller Configuration and Structure 2 1.2 The ARM® Cortex®M4 Microcontroller System 3 1.3 The TM4C123GH6PM Microcontroller Development Tools and Kits 4 1.4 Outstanding Features About This Book 5 1.5 Who This Book Is For 5 1.6 What This Book Covers 6 1.7 How This Book Is Organized and How to Use This Book 8 1.
8 How to Use the Source Code and Sample Projects 9 1.9 Instructors and Customers Supports 11 Chapter 2 ARM® Microcontroller Architectures 13 2.1 Overview and Introduction 13 2.2 Introduction to ARM ® Cortex®-M4 MCU 15 2.2.1 The Architecture of ARM® Cortex®-M4 MCU 17 2.3 The Memory Architecture 27 2.3.
1 The Memory Map 28 2.3.2 The Stack Memory 29 2.3.3 The Program Models and States 32 2.3.4 The Memory Protection Unit (MPU) 33 2.4 The Nested Vectored Interrupt Controller (NVIC) Architecture 34 2.
4.1 The Nested Vectored Interrupt Controller (NVIC) Features 35 2.4.2 Exception and Interrupt Sources 35 2.4.3 Exception Priority Levels and Mask Registers 35 2.4.4 Respond and Process Exceptions and Interrupts 36 2.
4.5 Exception and Interrupt Vector Table 37 2.5 The Debug Architecture 37 2.6 Introduction to TivaTM C Series ARM® Cortex®-M4 MCU-TM4C123GH6PM 38 2.6.1 TM4C123GH6PM Microcontroller Overview 39 2.6.2 TM4C123GH6PM Microcontroller On-Chip Memory Map 40 2.
6.3 TM4C123GH6PM Microcontroller General-Purpose Input-Output (GPIO) Module 44 2.6.4 TM4C123GH6PM Microcontroller System Controls 57 2.7 Introduction to TivaTM C Series LaunchPadTM TM4C123GXL Evaluation Board 72 2.8 Introduction to EduBASE ARM® Trainer 77 2.9 Chapter Summary 77 Homework 79 Chapter 3 ARM® Microcontroller Development Kits 83 3.1 Overview and Introduction 83 3.
2 The Entire TivaTM TM4C123G-based Development System 84 3.3 Download and Install Development Suite and Specified Firmware 86 3.4 Introduction to the Integrated Development Environment--Keil ® MDK μVersion5 87 3.4.1 The Keil® MDK-ARM® for the MDK-Cortex-M Family 88 3.4.2 General Development Flow with MDK-ARM® 89 3.4.
3 Warming Up Keil® MDK Cortex-M Kit with Example Projects 91 3.4.4 The Functions of the Keil® MDK-ARM® μVersion®5 GUI 95 3.5 Embedded Software Development Procedure 127 3.6 The Keil® ARM ® -MDK μVision5 Debugger and Debug Process 128 3.6.1 The ARM ® μVision5 Debug Architecture 129 3.6.
2 The ARM® Debug Adaptor and Debug Adaptor Driver 130 3.6.3 TivaTMCSeries LaunchPadTM Debug Adaptor and Debug Adaptor Driver 132 3.6.4 The ARM® μVersion5 Debug Process 133 3.6.5 The ARM® Trace Feature 134 3.6.
6 The ARM® Instruction Set Simulator 136 3.6.7 The ARM® Programs Running from SRAM 137 3.6.8 ARM® Optimizations 139 3.7 The TivaWareTM for C Series Software Suite 140 3.7.1 The TivaWareTM C Series Software Package 142 3.
7.2 TivaWareTM C Series for TM4C123G LaunchPadTM Evaluation Kit 145 3.8 The TivaWareTM for C Series Utilities and Other Supports 147 3.8.1 Additional Utilities Provided by TivaWareTM for C Series 148 3.9 Program Examples 151 3.10 Chapter Summary 152 Homework 152 Chapter 4 ARM® Microcontroller Software and Instruction Set 155 4.1 Overview and Introduction 155 4.
2 Introduction to ARM® Cortex ® -M4 Software Development Structure 156 4.3 Introduction to ARM® Cortex ® -M4 Assembly Instruction Set 157 4.3.1 The ARM ® Cortex®-M4 Assembly Language Syntax 158 4.3.2 The ARM ® Cortex®-M4 Pseudo Instructions 160 4.3.3 The ARM ® Cortex®-M4 Addressing Modes 161 4.
3.4 The ARM ® Cortex®-M4 Instruction Set Categories 172 4.4 ARM ® Cortex®-M4 Software Development Procedures 196 4.5 Using C Language to Develop ARM ® Cortex ® -M4 Microcontroller Applications 197 4.5.1 The Standard Data Types Used in Intrinsic Functions 198 4.5.2 The CMSIS-Core-Specific Intrinsic Functions 200 4.
5.3 The Keil® ARM® Compiler-Specific Intrinsic Functions 202 4.5.4 Inline Assembler 204 4.5.5 Idiom Recognition 205 4.5.6 C Programming Development Guideline and Procedure 206 4.
5.7 The TivaWareTM Peripheral Driver Library 213 4.6 Chapter Summary 243 Homework 244 Chapter 5 ARM® Microcontroller Interrupts and Exceptions 261 5.1 Overview and Introduction 261 5.2 Exceptions and Interrupts in the ARM® Cortex®-M4 MCU System 263 5.2.1 Exception and Interrupt Types 265 5.2.
2 Exceptions and Interrupts Management 265 5.2.3 Exception and Interrupt Processing 268 5.3 Exceptions and Interrupts in the TM4C123GH6PM Microcontroller System 273 5.3.1 Local Interrupt Configurations and Controls for GPIO Pins 273 5.3.2 Local Interrupt Configurations and Controls for GPIO Ports 276 5.
3.3 Global Interrupt Configurations and Controls 281 5.3.4 The Vector Table and Vectors Used in the TM4C123GH6PM MCU 282 5.3.5 The GPIO Interrupt Handling and Processing Procedure 284 5.4 Developing GPIO Port Interrupt Projects to Handle GPIO Interrupts 285 5.4.
1 Two Software Packages Used in the TM4C123GH6PM MCU System 286 5.4.2 Using DRA Programming Model to Handle GPIO Interrupts 290 5.4.3 Using CMSIS Core Macros for NVIC Registers to Handle GPIO Interrupts 294 5.4.4 Using TivaWareTM Peripheral Driver Library API Functions to Handle GPIO Interrupts 306 5.4.
5 Using CMSIS Core Access Functions to Handle GPIO Interrupts 313 5.5 Comparison Among Four Interrupt Programming Methods 317 5.6 Chapter Summary 318 Homework 319 Chapter 6 ARM® Microcontroller Memory System 333 6.1 Overview and Introduction 333 6.2 Memory Architecture in the TM4C123GH6PM MCU System 334 6.2.1 Static Random Access Memory (SRAM) 336 6.2.
2 Flash Memory 336 6.2.3 Flash Memory Protection Control 349 6.2.4 Internal Read-Only Memory (ROM) 351 6.2.5 Electrical Erased Programmable Read-Only Memory (EEPROM) 354 6.3 Memory Map in TM4C123GH6PM MCU System 361 6.
4 Bit-Band Operations 362 6.4.1 The Mapping Relationship Between the Bit-Band Region and the Bit-Band Alias Region 365 6.4.2 The Advantages of Using the Bit-Band Operations 365 6.4.3 An Illustration Example of Using Bit-Band Alias Addresses 367 6.4.
4 Bit-Band Operations for Different Data Sizes 369 6.4.5 Bit-Band Operations Built in C Programs 369 6.5 Memory Requirements and Memory Properties 370 6.5.1 Memory Requirements 371 6.5.2 Memory Access Attributes 372 6.
5.3 Memory Endianness 373 6.6 Memory System Programming Methods 375 6.6.1 The API Functions Used for Flash Memory Programming 376 6.6.2 The API Functions Used for EEPROM Programming 378 6.7 Memory System Programming Projects 380 6.
7.1 Flash Memory Programming 380 6.7.2 EEPROM Programming 401 6.7.3 Three Kinds of System Header Files in the TM4C123GH6PM MCU System 405 6.7.4 Build Example EEPROM Programming Projects 408 6.
8 Chapter Summary 420 Homework 421 Chapter 7 ARM® Cortex®-M4 Parallel I/O Ports Programming 433 7.1 Overview and Introduction 433 7.2 GPIO Module Architecture and GPIO Port Configuration 434 7.3 GPIO Port Control Registers 437 7.3.1 GPIO Port Initialization and Configuration 438 7.4 On-Board Keypad Interface Programming Project 440 7.4.
1 The Keypad Interfacing Programming Structure 441 7.4.2 Create the Keypad Interfacing Programming Project (Polling-Driven) 442 7.4.3 Set Up the Environment to Build and Run the Project 446 7.5 Analog-to-Digital Converter Programming Project 446 7.5.1 ADC Modules in the TM4C123GH6PM MCU System 446 7.
5.2 ADC Module Architecture and Functional Block Diagram 447 7.5.3 ADC Module Components and Signal Descriptions 448 7.5.4 Analog-to-Digital Converter 470 7.5.5 Initialization and Configuration 473 7.
5.6 Build the Analog-to-Digital Converter Programming Project 475 7.5.7 ADC Module API Functions Provided in the TivaWareTM Peripheral Driver Library 480 7.6 PWM-Controlled DC and Step Motors Programming Project 486 7.6.1 The PWM Principle and Implementations 487 7.6.
2 PWM Modules in the TM4C123GH6PM MCU System 487 7.6.3 PWM Generator Functional Block Diagram 490 7.6.4 PWM Module Architecture and Functional Block Diagram 502 7.6.5 PWM Module Components and Signal Descriptions 509 7.6.
6 PWM Module Initialization and Configuration 513 7.6.7 PWM Module Architecture in the EduBASE ARM ® Trainer 515 7.6.8 Build an Example PWM Programming Project 516 7.7 The PWM API Functions in the TivaWareTM Peripheral Driver Library 521 7.7.1 PWM Modules and Generators Configuration and Set Up Control Functions 521 7.
7.2 PWM Output Control Functions 523 7.7.3 PWM Interrupt and Fault Control Functions 523 7.8 Chapter Summary 525 Homework 527 Chapter 8 ARM® Cortex®-M.