电子工程世界电子工程世界电子工程世界

型号

产品描述

搜索

LM3S3634-IQR50-A0T

器件型号:LM3S3634-IQR50-A0T
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:Texas Instruments
厂商官网:http://www.ti.com/
标准:
下载文档 在线购买

LM3S3634-IQR50-A0T在线购买

供应商 器件名称 价格 最低购买 库存  
LM3S3634-IQR50-A0T ¥64.27 1000 点击查看 点击购买

文档预览

LM3S3634-IQR50-A0T器件文档内容

                                 TEXAS INSTRUMENTS-PRODUCTION DATA

Stellaris LM3S3634 Microcontroller

                                                          DATA SHEET

D S - L M 3 S 3 6 3 4 - 111 0 7               Copyright 2007-2011
                                 Te xa s In stru me n ts In co r porated
Copyright

Copyright 2007-2011 Texas Instruments Incorporated All rights reserved. Stellaris and StellarisWare are registered trademarks of Texas Instruments
Incorporated. ARM and Thumb are registered trademarks and Cortex is a trademark of ARM Limited. Other names and brands may be claimed as the
property of others.

PRODUCTION DATA information is current as of publication date. Products conform to specifications per the terms of Texas Instruments standard
warranty. Production processing does not necessarily include testing of all parameters.

       Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas Instruments semiconductor
products and disclaimers thereto appears at the end of this data sheet.

Texas Instruments Incorporated
108 Wild Basin, Suite 350
Austin, TX 78746
http://www.ti.com/stellaris
http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm

2                                     November 17, 2011

   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Table of Contents

Revision History ............................................................................................................................. 25

About This Document .................................................................................................................... 31
Audience .............................................................................................................................................. 31
About This Manual ................................................................................................................................ 31
Related Documents ............................................................................................................................... 31
Documentation Conventions .................................................................................................................. 32

1      Architectural Overview .......................................................................................... 34
1.1    Product Features .......................................................................................................... 34
1.2    Target Applications ........................................................................................................ 42
1.3    High-Level Block Diagram ............................................................................................. 43
1.4    Functional Overview ...................................................................................................... 45
1.4.1  ARM CortexTM-M3 ......................................................................................................... 45
1.4.2  Motor Control Peripherals .............................................................................................. 46
1.4.3  Analog Peripherals ........................................................................................................ 46
1.4.4  Serial Communications Peripherals ................................................................................ 47
1.4.5  System Peripherals ....................................................................................................... 48
1.4.6  Memory Peripherals ...................................................................................................... 49
1.4.7  Additional Features ....................................................................................................... 49
1.4.8  Hardware Details .......................................................................................................... 50

2      The Cortex-M3 Processor ...................................................................................... 51
2.1    Block Diagram .............................................................................................................. 52
2.2    Overview ...................................................................................................................... 53
2.2.1  System-Level Interface .................................................................................................. 53
2.2.2  Integrated Configurable Debug ...................................................................................... 53
2.2.3  Trace Port Interface Unit (TPIU) ..................................................................................... 54
2.2.4  Cortex-M3 System Component Details ........................................................................... 54
2.3    Programming Model ...................................................................................................... 55
2.3.1  Processor Mode and Privilege Levels for Software Execution ........................................... 55
2.3.2  Stacks .......................................................................................................................... 55
2.3.3  Register Map ................................................................................................................ 56
2.3.4  Register Descriptions .................................................................................................... 57
2.3.5  Exceptions and Interrupts .............................................................................................. 70
2.3.6  Data Types ................................................................................................................... 70
2.4    Memory Model .............................................................................................................. 70
2.4.1  Memory Regions, Types and Attributes ........................................................................... 72
2.4.2  Memory System Ordering of Memory Accesses .............................................................. 72
2.4.3  Behavior of Memory Accesses ....................................................................................... 72
2.4.4  Software Ordering of Memory Accesses ......................................................................... 73
2.4.5  Bit-Banding ................................................................................................................... 74
2.4.6  Data Storage ................................................................................................................ 76
2.4.7  Synchronization Primitives ............................................................................................. 77
2.5    Exception Model ........................................................................................................... 78
2.5.1  Exception States ........................................................................................................... 79
2.5.2  Exception Types ............................................................................................................ 79
2.5.3  Exception Handlers ....................................................................................................... 82

November 17, 2011                                     3

                   Texas Instruments-Production Data
Table of Contents

   2.5.4  Vector Table .................................................................................................................. 82
   2.5.5  Exception Priorities ....................................................................................................... 83
   2.5.6  Interrupt Priority Grouping .............................................................................................. 84
   2.5.7  Exception Entry and Return ........................................................................................... 84
   2.6    Fault Handling .............................................................................................................. 86
   2.6.1  Fault Types ................................................................................................................... 87
   2.6.2  Fault Escalation and Hard Faults .................................................................................... 87
   2.6.3  Fault Status Registers and Fault Address Registers ........................................................ 88
   2.6.4  Lockup ......................................................................................................................... 88
   2.7    Power Management ...................................................................................................... 88
   2.7.1  Entering Sleep Modes ................................................................................................... 89
   2.7.2  Wake Up from Sleep Mode ............................................................................................ 89
   2.8    Instruction Set Summary ............................................................................................... 90

   3      Cortex-M3 Peripherals ........................................................................................... 93
   3.1    Functional Description ................................................................................................... 93
   3.1.1  System Timer (SysTick) ................................................................................................. 93
   3.1.2  Nested Vectored Interrupt Controller (NVIC) .................................................................... 94
   3.1.3  System Control Block (SCB) .......................................................................................... 96
   3.1.4  Memory Protection Unit (MPU) ....................................................................................... 96
   3.2    Register Map .............................................................................................................. 101
   3.3    System Timer (SysTick) Register Descriptions .............................................................. 103
   3.4    NVIC Register Descriptions .......................................................................................... 107
   3.5    System Control Block (SCB) Register Descriptions ........................................................ 120
   3.6    Memory Protection Unit (MPU) Register Descriptions .................................................... 147

   4      JTAG Interface ...................................................................................................... 157
   4.1    Block Diagram ............................................................................................................ 158
   4.2    Signal Description ....................................................................................................... 158
   4.3    Functional Description ................................................................................................. 159
   4.3.1  JTAG Interface Pins ..................................................................................................... 159
   4.3.2  JTAG TAP Controller ................................................................................................... 160
   4.3.3  Shift Registers ............................................................................................................ 161
   4.3.4  Operational Considerations .......................................................................................... 161
   4.4    Initialization and Configuration ..................................................................................... 164
   4.5    Register Descriptions .................................................................................................. 164
   4.5.1  Instruction Register (IR) ............................................................................................... 164
   4.5.2  Data Registers ............................................................................................................ 166

   5      System Control ..................................................................................................... 169
   5.1    Signal Description ....................................................................................................... 169
   5.2    Functional Description ................................................................................................. 169
   5.2.1  Device Identification .................................................................................................... 169
   5.2.2  Reset Control .............................................................................................................. 169
   5.2.3  Non-Maskable Interrupt ............................................................................................... 173
   5.2.4  Power Control ............................................................................................................. 174
   5.2.5  Clock Control .............................................................................................................. 174
   5.2.6  System Control ........................................................................................................... 180
   5.3    Initialization and Configuration ..................................................................................... 181
   5.4    Register Map .............................................................................................................. 181
   5.5    Register Descriptions .................................................................................................. 183

4                                                     November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

6      Hibernation Module .............................................................................................. 236
6.1    Block Diagram ............................................................................................................ 237
6.2    Signal Description ....................................................................................................... 237
6.3    Functional Description ................................................................................................. 238
6.3.1  Register Access Timing ............................................................................................... 238
6.3.2  Clock Source .............................................................................................................. 238
6.3.3  Battery Management ................................................................................................... 240
6.3.4  Real-Time Clock .......................................................................................................... 240
6.3.5  Battery-Backed Memory .............................................................................................. 240
6.3.6  Power Control ............................................................................................................. 241
6.3.7  Initiating Hibernate ...................................................................................................... 241
6.3.8  Interrupts and Status ................................................................................................... 241
6.4    Initialization and Configuration ..................................................................................... 242
6.4.1  Initialization ................................................................................................................. 242
6.4.2  RTC Match Functionality (No Hibernation) .................................................................... 242
6.4.3  RTC Match/Wake-Up from Hibernation ......................................................................... 242
6.4.4  External Wake-Up from Hibernation .............................................................................. 243
6.4.5  RTC/External Wake-Up from Hibernation ...................................................................... 243
6.5    Register Map .............................................................................................................. 243
6.6    Register Descriptions .................................................................................................. 244

7      Internal Memory ................................................................................................... 258
7.1    Block Diagram ............................................................................................................ 258
7.2    Functional Description ................................................................................................. 258
7.2.1  SRAM Memory ............................................................................................................ 258
7.2.2  ROM Memory ............................................................................................................. 259
7.2.3  Flash Memory ............................................................................................................. 259
7.3    Flash Memory Initialization and Configuration ............................................................... 261
7.3.1  Flash Programming ..................................................................................................... 261
7.3.2  Nonvolatile Register Programming ............................................................................... 261
7.4    Register Map .............................................................................................................. 262
7.5    ROM Register Descriptions (System Control Offset) ...................................................... 263
7.6    Flash Register Descriptions (Flash Control Offset) ......................................................... 264
7.7    Flash Register Descriptions (System Control Offset) ...................................................... 272

8      Micro Direct Memory Access (DMA) ................................................................ 287

8.1 Block Diagram ............................................................................................................ 288

8.2 Functional Description ................................................................................................. 288

8.2.1 Channel Assigments .................................................................................................... 289

8.2.2 Priority ........................................................................................................................ 289

8.2.3 Arbitration Size ............................................................................................................ 289

8.2.4 Request Types ............................................................................................................ 290

8.2.5 Channel Configuration ................................................................................................. 290

8.2.6 Transfer Modes ........................................................................................................... 292

8.2.7 Transfer Size and Increment ........................................................................................ 300

8.2.8 Peripheral Interface ..................................................................................................... 300

8.2.9 Software Request ........................................................................................................ 300

8.2.10 Interrupts and Errors .................................................................................................... 301

8.3 Initialization and Configuration ..................................................................................... 301

8.3.1 Module Initialization ..................................................................................................... 301

November 17, 2011                                     5

                   Texas Instruments-Production Data
Table of Contents

   8.3.2  Configuring a Memory-to-Memory Transfer ................................................................... 301
   8.3.3  Configuring a Peripheral for Simple Transmit ................................................................ 303
   8.3.4  Configuring a Peripheral for Ping-Pong Receive ............................................................ 304
   8.4    Register Map .............................................................................................................. 307
   8.5    DMA Channel Control Structure ................................................................................. 308
   8.6    DMA Register Descriptions ........................................................................................ 314

   9      General-Purpose Input/Outputs (GPIOs) ........................................................... 348
   9.1    Signal Description ....................................................................................................... 348
   9.2    Functional Description ................................................................................................. 351
   9.2.1  Data Control ............................................................................................................... 352
   9.2.2  Interrupt Control .......................................................................................................... 353
   9.2.3  Mode Control .............................................................................................................. 354
   9.2.4  Commit Control ........................................................................................................... 354
   9.2.5  Pad Control ................................................................................................................. 354
   9.2.6  Identification ............................................................................................................... 355
   9.3    Initialization and Configuration ..................................................................................... 355
   9.4    Register Map .............................................................................................................. 356
   9.5    Register Descriptions .................................................................................................. 358

   10 General-Purpose Timers ...................................................................................... 395
   10.1 Block Diagram ............................................................................................................ 396
   10.2 Signal Description ....................................................................................................... 396
   10.3 Functional Description ................................................................................................. 397
   10.3.1 GPTM Reset Conditions .............................................................................................. 397
   10.3.2 32-Bit Timer Operating Modes ...................................................................................... 397
   10.3.3 16-Bit Timer Operating Modes ...................................................................................... 399
   10.4 Initialization and Configuration ..................................................................................... 402
   10.4.1 32-Bit One-Shot/Periodic Timer Mode ........................................................................... 402
   10.4.2 32-Bit Real-Time Clock (RTC) Mode ............................................................................. 403
   10.4.3 16-Bit One-Shot/Periodic Timer Mode ........................................................................... 403
   10.4.4 16-Bit Input Edge Count Mode ..................................................................................... 404
   10.4.5 16-Bit Input Edge Timing Mode .................................................................................... 404
   10.4.6 16-Bit PWM Mode ....................................................................................................... 405
   10.5 Register Map .............................................................................................................. 405
   10.6 Register Descriptions .................................................................................................. 406

   11 Watchdog Timer ................................................................................................... 429
   11.1 Block Diagram ............................................................................................................ 430
   11.2 Functional Description ................................................................................................. 430
   11.3 Initialization and Configuration ..................................................................................... 431
   11.4 Register Map .............................................................................................................. 431
   11.5 Register Descriptions .................................................................................................. 432

   12 Analog-to-Digital Converter (ADC) ..................................................................... 453
   12.1 Block Diagram ............................................................................................................ 453
   12.2 Signal Description ....................................................................................................... 454
   12.3 Functional Description ................................................................................................. 455
   12.3.1 Sample Sequencers .................................................................................................... 455
   12.3.2 Module Control ............................................................................................................ 455
   12.3.3 Hardware Sample Averaging Circuit ............................................................................. 456

6                                                     November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

12.3.4 Analog-to-Digital Converter .......................................................................................... 456
12.3.5 Differential Sampling ................................................................................................... 457
12.3.6 Internal Temperature Sensor ........................................................................................ 459
12.4 Initialization and Configuration ..................................................................................... 460
12.4.1 Module Initialization ..................................................................................................... 460
12.4.2 Sample Sequencer Configuration ................................................................................. 460
12.5 Register Map .............................................................................................................. 461
12.6 Register Descriptions .................................................................................................. 462

13 Universal Asynchronous Receivers/Transmitters (UARTs) ............................. 488
13.1 Block Diagram ............................................................................................................ 489
13.2 Signal Description ....................................................................................................... 489
13.3 Functional Description ................................................................................................. 490
13.3.1 Transmit/Receive Logic ............................................................................................... 490
13.3.2 Baud-Rate Generation ................................................................................................. 490
13.3.3 Data Transmission ...................................................................................................... 491
13.3.4 Serial IR (SIR) ............................................................................................................. 491
13.3.5 FIFO Operation ........................................................................................................... 492
13.3.6 Interrupts .................................................................................................................... 493
13.3.7 Loopback Operation .................................................................................................... 494
13.3.8 DMA Operation ........................................................................................................... 494
13.3.9 IrDA SIR block ............................................................................................................ 494
13.4 Initialization and Configuration ..................................................................................... 494
13.5 Register Map .............................................................................................................. 495
13.6 Register Descriptions .................................................................................................. 496

14 Synchronous Serial Interface (SSI) .................................................................... 531
14.1 Block Diagram ............................................................................................................ 532
14.2 Signal Description ....................................................................................................... 532
14.3 Functional Description ................................................................................................. 533
14.3.1 Bit Rate Generation ..................................................................................................... 533
14.3.2 FIFO Operation ........................................................................................................... 533
14.3.3 Interrupts .................................................................................................................... 534
14.3.4 Frame Formats ........................................................................................................... 534
14.3.5 DMA Operation ........................................................................................................... 542
14.4 Initialization and Configuration ..................................................................................... 542
14.5 Register Map .............................................................................................................. 543
14.6 Register Descriptions .................................................................................................. 544
15 Inter-Integrated Circuit (I2C) Interface ................................................................ 571
15.1 Block Diagram ............................................................................................................ 572
15.2 Signal Description ....................................................................................................... 572
15.3 Functional Description ................................................................................................. 572
15.3.1 I2C Bus Functional Overview ........................................................................................ 573
15.3.2 Available Speed Modes ............................................................................................... 575
15.3.3 Interrupts .................................................................................................................... 576
15.3.4 Loopback Operation .................................................................................................... 576
15.3.5 Command Sequence Flow Charts ................................................................................ 577
15.4 Initialization and Configuration ..................................................................................... 584
15.5 Register Map .............................................................................................................. 585

November 17, 2011                                     7

                   Texas Instruments-Production Data
Table of Contents

   15.6 Register Descriptions (I2C Master) ............................................................................... 586
   15.7 Register Descriptions (I2C Slave) ................................................................................. 599

   16 Universal Serial Bus (USB) Controller ............................................................... 608
   16.1 Block Diagram ............................................................................................................ 609
   16.2 Signal Description ....................................................................................................... 609
   16.3 Functional Description ................................................................................................. 609
   16.3.1 Operation as a Device ................................................................................................. 610
   16.3.2 Operation as a Host .................................................................................................... 615
   16.3.3 DMA Operation ........................................................................................................... 619
   16.4 Initialization and Configuration ..................................................................................... 620
   16.4.1 Pin Configuration ......................................................................................................... 620
   16.4.2 Endpoint Configuration ................................................................................................ 620
   16.5 Register Map .............................................................................................................. 621
   16.6 Register Descriptions .................................................................................................. 624

   17 Pin Diagram .......................................................................................................... 702

   18 Signal Tables ........................................................................................................ 703
   18.1 Connections for Unused Signals ................................................................................... 712

   19 Operating Characteristics ................................................................................... 713

   20 Electrical Characteristics .................................................................................... 714
   20.1 DC Characteristics ...................................................................................................... 714
   20.1.1 Maximum Ratings ....................................................................................................... 714
   20.1.2 Recommended DC Operating Conditions ...................................................................... 714
   20.1.3 On-Chip Low Drop-Out (LDO) Regulator Characteristics ................................................ 715
   20.1.4 GPIO Module Characteristics ....................................................................................... 715
   20.1.5 Power Specifications ................................................................................................... 715
   20.1.6 Flash Memory Characteristics ...................................................................................... 717
   20.1.7 Hibernation ................................................................................................................. 717
   20.1.8 USB ........................................................................................................................... 717
   20.2 AC Characteristics ....................................................................................................... 718
   20.2.1 Load Conditions .......................................................................................................... 718
   20.2.2 Clocks ........................................................................................................................ 718
   20.2.3 JTAG and Boundary Scan ............................................................................................ 720
   20.2.4 Reset ......................................................................................................................... 721
   20.2.5 Sleep Modes ............................................................................................................... 723
   20.2.6 Hibernation Module ..................................................................................................... 723
   20.2.7 General-Purpose I/O (GPIO) ........................................................................................ 724
   20.2.8 Analog-to-Digital Converter .......................................................................................... 724
   20.2.9 Synchronous Serial Interface (SSI) ............................................................................... 725
   20.2.10 Inter-Integrated Circuit (I2C) Interface ........................................................................... 727
   20.2.11 Universal Serial Bus (USB) Controller ........................................................................... 728

   A      Boot Loader .......................................................................................................... 729
   A.1    Boot Loader ................................................................................................................ 729
   A.2    Interfaces ................................................................................................................... 729
   A.2.1  UART ......................................................................................................................... 729
   A.2.2  SSI ............................................................................................................................. 730
   A.2.3  I2C ............................................................................................................................. 730
   A.3
          Packet Handling .......................................................................................................... 730

8                                                     November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

A.3.1  Packet Format ............................................................................................................ 730
A.3.2  Sending Packets ......................................................................................................... 730
A.3.3  Receiving Packets ....................................................................................................... 731
A.4    Commands ................................................................................................................. 731
A.4.1  COMMAND_PING (0X20) ............................................................................................ 731
A.4.2  COMMAND_DOWNLOAD (0x21) ................................................................................. 731
A.4.3  COMMAND_RUN (0x22) ............................................................................................. 732
A.4.4  COMMAND_GET_STATUS (0x23) ............................................................................... 732
A.4.5  COMMAND_SEND_DATA (0x24) ................................................................................. 732
A.4.6  COMMAND_RESET (0x25) ......................................................................................... 733

B      ROM DriverLib Functions .................................................................................... 734
B.1    DriverLib Functions Included in the Integrated ROM ...................................................... 734

C      Register Quick Reference ................................................................................... 745

D      Ordering and Contact Information ..................................................................... 771
D.1    Ordering Information .................................................................................................... 771
D.2    Part Markings .............................................................................................................. 771
D.3    Kits ............................................................................................................................. 772
D.4    Support Information ..................................................................................................... 772

E      Package Information ............................................................................................ 773
E.1    64-Pin LQFP Package ................................................................................................. 773
E.1.1  Package Dimensions ................................................................................................... 773
E.1.2  Tray Dimensions ......................................................................................................... 775
E.1.3  Tape and Reel Dimensions .......................................................................................... 776

November 17, 2011                                     9

                   Texas Instruments-Production Data
Table of Contents

List of Figures

    Figure 1-1.    Stellaris LM3S3634 Microcontroller High-Level Block Diagram .............................. 44
    Figure 2-1.    CPU Block Diagram ............................................................................................. 53
    Figure 2-2.    TPIU Block Diagram ............................................................................................ 54
    Figure 2-3.    Cortex-M3 Register Set ........................................................................................ 56
    Figure 2-4.    Bit-Band Mapping ................................................................................................ 76
    Figure 2-5.    Data Storage ....................................................................................................... 77
    Figure 2-6.    Vector Table ........................................................................................................ 83
    Figure 2-7.    Exception Stack Frame ........................................................................................ 85
    Figure 3-1.    SRD Use Example ............................................................................................... 99
    Figure 4-1.    JTAG Module Block Diagram .............................................................................. 158
    Figure 4-2.    Test Access Port State Machine ......................................................................... 161
    Figure 4-3.    IDCODE Register Format ................................................................................... 167
    Figure 4-4.    BYPASS Register Format ................................................................................... 167
    Figure 4-5.    Boundary Scan Register Format ......................................................................... 168
    Figure 5-1.    Basic RST Configuration .................................................................................... 171
    Figure 5-2.    External Circuitry to Extend Power-On Reset ....................................................... 171
    Figure 5-3.    Reset Circuit Controlled by Switch ...................................................................... 172
    Figure 5-4.    Main Clock Tree ................................................................................................ 176
    Figure 6-1.    Hibernation Module Block Diagram ..................................................................... 237
    Figure 6-2.    Clock Source Using Crystal ................................................................................ 239
    Figure 6-3.    Clock Source Using Dedicated Oscillator ............................................................. 239
    Figure 7-1.    Flash Block Diagram .......................................................................................... 258
    Figure 8-1.    DMA Block Diagram ......................................................................................... 288
    Figure 8-2.    Example of Ping-Pong DMA Transaction ............................................................. 293
    Figure 8-3.    Memory Scatter-Gather, Setup and Configuration ................................................ 295
    Figure 8-4.    Memory Scatter-Gather, DMA Copy Sequence .................................................. 296
    Figure 8-5.    Peripheral Scatter-Gather, Setup and Configuration ............................................. 298
    Figure 8-6.    Peripheral Scatter-Gather, DMA Copy Sequence ............................................... 299
    Figure 9-1.    Digital I/O Pads ................................................................................................. 351
    Figure 9-2.    Analog/Digital I/O Pads ...................................................................................... 352
    Figure 9-3.    GPIODATA Write Example ................................................................................. 353
    Figure 9-4.    GPIODATA Read Example ................................................................................. 353
    Figure 10-1.   GPTM Module Block Diagram ............................................................................ 396
    Figure 10-2.   16-Bit Input Edge Count Mode Example .............................................................. 400
    Figure 10-3.   16-Bit Input Edge Time Mode Example ............................................................... 401
    Figure 10-4.   16-Bit PWM Mode Example ................................................................................ 402
    Figure 11-1.   WDT Module Block Diagram .............................................................................. 430
    Figure 12-1.   ADC Module Block Diagram ............................................................................... 454
    Figure 12-2.   Differential Sampling Range, VIN_ODD = 1.5 V ...................................................... 458
    Figure 12-3.   Differential Sampling Range, VIN_ODD = 0.75 V .................................................... 458
    Figure 12-4.   Differential Sampling Range, VIN_ODD = 2.25 V .................................................... 459
    Figure 12-5.   Internal Temperature Sensor Characteristic ......................................................... 460
    Figure 13-1.   UART Module Block Diagram ............................................................................. 489
    Figure 13-2.   UART Character Frame ..................................................................................... 490
    Figure 13-3.   IrDA Data Modulation ......................................................................................... 492
    Figure 14-1.   SSI Module Block Diagram ................................................................................. 532

10                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                                                                  Stellaris LM3S3634 Microcontroller

Figure 14-2. TI Synchronous Serial Frame Format (Single Transfer) ........................................ 535
Figure 14-3. TI Synchronous Serial Frame Format (Continuous Transfer) ................................ 536
Figure 14-4. Freescale SPI Format (Single Transfer) with SPO=0 and SPH=0 .......................... 536
Figure 14-5. Freescale SPI Format (Continuous Transfer) with SPO=0 and SPH=0 .................. 537
Figure 14-6. Freescale SPI Frame Format with SPO=0 and SPH=1 ......................................... 538
Figure 14-7. Freescale SPI Frame Format (Single Transfer) with SPO=1 and SPH=0 ............... 538
Figure 14-8. Freescale SPI Frame Format (Continuous Transfer) with SPO=1 and SPH=0 ........ 539
Figure 14-9. Freescale SPI Frame Format with SPO=1 and SPH=1 ......................................... 540
Figure 14-10. MICROWIRE Frame Format (Single Frame) ........................................................ 540
Figure 14-11. MICROWIRE Frame Format (Continuous Transfer) ............................................. 541
Figure 14-12. MICROWIRE Frame Format, SSIFss Input Setup and Hold Requirements ............ 542
Figure 15-1. I2C Block Diagram ............................................................................................. 572
Figure 15-2. I2C Bus Configuration ........................................................................................ 573
Figure 15-3. START and STOP Conditions ............................................................................. 573
Figure 15-4. Complete Data Transfer with a 7-Bit Address ....................................................... 574
Figure 15-5. R/S Bit in First Byte ............................................................................................ 574
Figure 15-6. Data Validity During Bit Transfer on the I2C Bus ................................................... 574
Figure 15-7. Master Single SEND .......................................................................................... 578
Figure 15-8. Master Single RECEIVE ..................................................................................... 579
Figure 15-9. Master Burst SEND ........................................................................................... 580
Figure 15-10. Master Burst RECEIVE ...................................................................................... 581
Figure 15-11. Master Burst RECEIVE after Burst SEND ............................................................ 582
Figure 15-12. Master Burst SEND after Burst RECEIVE ............................................................ 583
Figure 15-13. Slave Command Sequence ................................................................................ 584
Figure 16-1. USB Module Block Diagram ............................................................................... 609
Figure 17-1. 64-Pin LQFP Package Pin Diagram .................................................................... 702
Figure 20-1. Load Conditions ................................................................................................ 718
Figure 20-2. JTAG Test Clock Input Timing ............................................................................. 721
Figure 20-3. JTAG Test Access Port (TAP) Timing .................................................................. 721
Figure 20-4. External Reset Timing (RST) .............................................................................. 722
Figure 20-5. Power-On Reset Timing ..................................................................................... 722
Figure 20-6. Brown-Out Reset Timing .................................................................................... 722
Figure 20-7. Software Reset Timing ....................................................................................... 722
Figure 20-8. Watchdog Reset Timing ..................................................................................... 723
Figure 20-9. Hibernation Module Timing ................................................................................. 724
Figure 20-10. ADC Input Equivalency Diagram ......................................................................... 725
Figure 20-11. SSI Timing for TI Frame Format (FRF=01), Single Transfer Timing

                   Measurement .................................................................................................... 726
Figure 20-12. SSI Timing for MICROWIRE Frame Format (FRF=10), Single Transfer ................. 726
Figure 20-13. SSI Timing for SPI Frame Format (FRF=00), with SPH=1 ..................................... 727
Figure 20-14. I2C Timing ......................................................................................................... 728
Figure E-1. Stellaris LM3S3634 64-Pin LQFP Package .......................................................... 773
Figure E-2. 64-Pin LQFP Tray Dimensions ........................................................................... 775
Figure E-3. 64-Pin LQFP Tape and Reel Dimensions ............................................................. 776

November 17, 2011                                     11

                   Texas Instruments-Production Data
Table of Contents

List of Tables

    Table 1.       Revision History .................................................................................................. 25
    Table 2.       Documentation Conventions ................................................................................ 32
    Table 2-1.     Summary of Processor Mode, Privilege Level, and Stack Use ................................ 56
    Table 2-2.     Processor Register Map ....................................................................................... 57
    Table 2-3.     PSR Register Combinations ................................................................................. 62
    Table 2-4.     Memory Map ....................................................................................................... 70
    Table 2-5.     Memory Access Behavior ..................................................................................... 72
    Table 2-6.     SRAM Memory Bit-Banding Regions .................................................................... 74
    Table 2-7.     Peripheral Memory Bit-Banding Regions ............................................................... 75
    Table 2-8.     Exception Types .................................................................................................. 80
    Table 2-9.     Interrupts ............................................................................................................ 81
    Table 2-10.    Exception Return Behavior ................................................................................... 86
    Table 2-11.    Faults ................................................................................................................. 87
    Table 2-12.    Fault Status and Fault Address Registers .............................................................. 88
    Table 2-13.    Cortex-M3 Instruction Summary ........................................................................... 90
    Table 3-1.     Core Peripheral Register Regions ......................................................................... 93
    Table 3-2.     Memory Attributes Summary ................................................................................ 96
    Table 3-3.     TEX, S, C, and B Bit Field Encoding ..................................................................... 99
    Table 3-4.     Cache Policy for Memory Attribute Encoding ....................................................... 100
    Table 3-5.     AP Bit Field Encoding ........................................................................................ 100
    Table 3-6.     Memory Region Attributes for Stellaris Microcontrollers ........................................ 100
    Table 3-7.     Peripherals Register Map ................................................................................... 101
    Table 3-8.     Interrupt Priority Levels ...................................................................................... 126
    Table 3-9.     Example SIZE Field Values ................................................................................ 154
    Table 4-1.     JTAG_SWD_SWO Signals (64LQFP) ................................................................. 158
    Table 4-2.     JTAG Port Pins Reset State ............................................................................... 159
    Table 4-3.     JTAG Instruction Register Commands ................................................................. 165
    Table 5-1.     System Control & Clocks Signals (64LQFP) ........................................................ 169
    Table 5-2.     Reset Sources ................................................................................................... 170
    Table 5-3.     Clock Source Options ........................................................................................ 175
    Table 5-4.     Possible System Clock Frequencies Using the SYSDIV Field ............................... 177
    Table 5-5.     Examples of Possible System Clock Frequencies Using the SYSDIV2 Field .......... 177
    Table 5-6.     System Control Register Map ............................................................................. 181
    Table 5-7.     RCC2 Fields that Override RCC fields ................................................................. 199
    Table 6-1.     Hibernate Signals (64LQFP) ............................................................................... 237
    Table 6-2.     Hibernation Module Register Map ....................................................................... 243
    Table 7-1.     Flash Protection Policy Combinations ................................................................. 260
    Table 7-2.     User-Programmable Flash Memory Resident Registers ....................................... 262
    Table 7-3.     Flash Register Map ............................................................................................ 262
    Table 8-1.     DMA Channel Assignments ............................................................................... 289
    Table 8-2.     Request Type Support ....................................................................................... 290
    Table 8-3.     Control Structure Memory Map ........................................................................... 291
    Table 8-4.     Channel Control Structure .................................................................................. 291
    Table 8-5.     DMA Read Example: 8-Bit Peripheral ................................................................ 300
    Table 8-6.     DMA Interrupt Assignments .............................................................................. 301
    Table 8-7.     Channel Control Structure Offsets for Channel 30 ................................................ 302

12                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Table 8-8.         Channel Control Word Configuration for Memory Transfer Example ...................... 302
Table 8-9.         Channel Control Structure Offsets for Channel 7 .................................................. 303
Table 8-10.        Channel Control Word Configuration for Peripheral Transmit Example .................. 304
Table 8-11.        Primary and Alternate Channel Control Structure Offsets for Channel 8 ................. 305
Table 8-12.        Channel Control Word Configuration for Peripheral Ping-Pong Receive
                   Example ............................................................................................................ 306
Table 8-13.        DMA Register Map .......................................................................................... 307
Table 9-1.         GPIO Pins With Non-Zero Reset Values .............................................................. 349
Table 9-2.         GPIO Pins and Alternate Functions (64LQFP) ..................................................... 349
Table 9-3.         GPIO Signals (64LQFP) ..................................................................................... 350
Table 9-4.         GPIO Pad Configuration Examples ..................................................................... 355
Table 9-5.         GPIO Interrupt Configuration Example ................................................................ 356
Table 9-6.         GPIO Register Map ........................................................................................... 357
Table 10-1.        Available CCP Pins ............................................................................................ 396
Table 10-2.        General-Purpose Timers Signals (64LQFP) ......................................................... 397
Table 10-3.        16-Bit Timer With Prescaler Configurations ......................................................... 399
Table 10-4.        Timers Register Map .......................................................................................... 406
Table 11-1.        Watchdog Timer Register Map ............................................................................ 431
Table 12-1.        ADC Signals (64LQFP) ...................................................................................... 454
Table 12-2.        Samples and FIFO Depth of Sequencers ............................................................ 455
Table 12-3.        Differential Sampling Pairs ................................................................................. 457
Table 12-4.        ADC Register Map ............................................................................................. 461
Table 13-1.        UART Signals (64LQFP) .................................................................................... 489
Table 13-2.        UART Register Map ........................................................................................... 496
Table 14-1.        SSI Signals (64LQFP) ........................................................................................ 533
Table 14-2.        SSI Register Map .............................................................................................. 544
Table 15-1.        I2C Signals (64LQFP) ........................................................................................ 572
Table 15-2.        Examples of I2C Master Timer Period versus Speed Mode ................................... 575
Table 15-3.        Inter-Integrated Circuit (I2C) Interface Register Map ............................................. 585
Table 15-4.        Write Field Decoding for I2CMCS[3:0] Field (Sheet 1 of 3) .................................... 590
Table 16-1.        USB Signals (64LQFP) ...................................................................................... 609
Table 16-2.        Remainder (MAXLOAD/4) .................................................................................. 619
Table 16-3.        Actual Bytes Read ............................................................................................. 619
Table 16-4.        Packet Sizes That Clear RXRDY ........................................................................ 619
Table 16-5.        Universal Serial Bus (USB) Controller Register Map ............................................ 621
Table 18-1.        Signals by Pin Number ....................................................................................... 703
Table 18-2.        Signals by Signal Name ..................................................................................... 706
Table 18-3.        Signals by Function, Except for GPIO ................................................................. 709
Table 18-4.        GPIO Pins and Alternate Functions ..................................................................... 711
Table 18-5.        Connections for Unused Signals (64-pin LQFP) ................................................... 712
Table 19-1.        Temperature Characteristics ............................................................................... 713
Table 19-2.        Thermal Characteristics ..................................................................................... 713
Table 19-3.        ESD Absolute Maximum Ratings ........................................................................ 713
Table 20-1.        Maximum Ratings .............................................................................................. 714
Table 20-2.        Recommended DC Operating Conditions ............................................................ 714
Table 20-3.        LDO Regulator Characteristics ........................................................................... 715
Table 20-4.        GPIO Module DC Characteristics ........................................................................ 715
Table 20-5.        Detailed Power Specifications ............................................................................ 716

November 17, 2011                                     13

                   Texas Instruments-Production Data
Table of Contents

    Table 20-6.    Flash Memory Characteristics ............................................................................ 717
    Table 20-7.    Hibernation Module DC Characteristics ............................................................... 717
    Table 20-8.    USB Controller DC Characteristics ...................................................................... 717
    Table 20-9.    Phase Locked Loop (PLL) Characteristics ........................................................... 718
    Table 20-10.   Actual PLL Frequency ........................................................................................ 718
    Table 20-11.   Clock Characteristics ......................................................................................... 719
    Table 20-12.   Crystal Characteristics ....................................................................................... 719
    Table 20-13.   System Clock Characteristics with ADC Operation ............................................... 720
    Table 20-14.   System Clock Characteristics with USB Operation ............................................... 720
    Table 20-15.   JTAG Characteristics ......................................................................................... 720
    Table 20-16.   Reset Characteristics ......................................................................................... 721
    Table 20-17.   Sleep Modes AC Characteristics ......................................................................... 723
    Table 20-18.   Hibernation Module AC Characteristics ............................................................... 723
    Table 20-19.   GPIO Characteristics ......................................................................................... 724
    Table 20-20.   ADC Characteristics ........................................................................................... 724
    Table 20-21.   ADC Module Internal Reference Characteristics .................................................. 725
    Table 20-22.   SSI Characteristics ............................................................................................ 725
    Table 20-23.   I2C Characteristics ............................................................................................. 727
    Table D-1.     Part Ordering Information ................................................................................... 771

14                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

List of Registers

The Cortex-M3 Processor ............................................................................................................. 51
Register 1: Cortex General-Purpose Register 0 (R0) ........................................................................... 58
Register 2: Cortex General-Purpose Register 1 (R1) ........................................................................... 58
Register 3: Cortex General-Purpose Register 2 (R2) ........................................................................... 58
Register 4: Cortex General-Purpose Register 3 (R3) ........................................................................... 58
Register 5: Cortex General-Purpose Register 4 (R4) ........................................................................... 58
Register 6: Cortex General-Purpose Register 5 (R5) ........................................................................... 58
Register 7: Cortex General-Purpose Register 6 (R6) ........................................................................... 58
Register 8: Cortex General-Purpose Register 7 (R7) ........................................................................... 58
Register 9: Cortex General-Purpose Register 8 (R8) ........................................................................... 58
Register 10: Cortex General-Purpose Register 9 (R9) ........................................................................... 58
Register 11: Cortex General-Purpose Register 10 (R10) ....................................................................... 58
Register 12: Cortex General-Purpose Register 11 (R11) ........................................................................ 58
Register 13: Cortex General-Purpose Register 12 (R12) ....................................................................... 58
Register 14: Stack Pointer (SP) ........................................................................................................... 59
Register 15: Link Register (LR) ............................................................................................................ 60
Register 16: Program Counter (PC) ..................................................................................................... 61
Register 17: Program Status Register (PSR) ........................................................................................ 62
Register 18: Priority Mask Register (PRIMASK) .................................................................................... 66
Register 19: Fault Mask Register (FAULTMASK) .................................................................................. 67
Register 20: Base Priority Mask Register (BASEPRI) ............................................................................ 68
Register 21: Control Register (CONTROL) ........................................................................................... 69

Cortex-M3 Peripherals ................................................................................................................... 93
Register 1: SysTick Control and Status Register (STCTRL), offset 0x010 ........................................... 104
Register 2: SysTick Reload Value Register (STRELOAD), offset 0x014 .............................................. 106
Register 3: SysTick Current Value Register (STCURRENT), offset 0x018 ........................................... 107
Register 4: Interrupt 0-31 Set Enable (EN0), offset 0x100 .................................................................. 108
Register 5: Interrupt 32-47 Set Enable (EN1), offset 0x104 ................................................................ 109
Register 6: Interrupt 0-31 Clear Enable (DIS0), offset 0x180 .............................................................. 110
Register 7: Interrupt 32-47 Clear Enable (DIS1), offset 0x184 ............................................................ 111
Register 8: Interrupt 0-31 Set Pending (PEND0), offset 0x200 ........................................................... 112
Register 9: Interrupt 32-47 Set Pending (PEND1), offset 0x204 ......................................................... 113
Register 10: Interrupt 0-31 Clear Pending (UNPEND0), offset 0x280 ................................................... 114
Register 11: Interrupt 32-47 Clear Pending (UNPEND1), offset 0x284 .................................................. 115
Register 12: Interrupt 0-31 Active Bit (ACTIVE0), offset 0x300 ............................................................. 116
Register 13: Interrupt 32-47 Active Bit (ACTIVE1), offset 0x304 ........................................................... 117
Register 14: Interrupt 0-3 Priority (PRI0), offset 0x400 ......................................................................... 118
Register 15: Interrupt 4-7 Priority (PRI1), offset 0x404 ......................................................................... 118
Register 16: Interrupt 8-11 Priority (PRI2), offset 0x408 ....................................................................... 118
Register 17: Interrupt 12-15 Priority (PRI3), offset 0x40C .................................................................... 118
Register 18: Interrupt 16-19 Priority (PRI4), offset 0x410 ..................................................................... 118
Register 19: Interrupt 20-23 Priority (PRI5), offset 0x414 ..................................................................... 118
Register 20: Interrupt 24-27 Priority (PRI6), offset 0x418 ..................................................................... 118
Register 21: Interrupt 28-31 Priority (PRI7), offset 0x41C .................................................................... 118
Register 22: Interrupt 32-35 Priority (PRI8), offset 0x420 ..................................................................... 118

November 17, 2011                                     15

                   Texas Instruments-Production Data
Table of Contents

Register 23:  Interrupt 36-39 Priority (PRI9), offset 0x424 ..................................................................... 118
Register 24:  Interrupt 40-43 Priority (PRI10), offset 0x428 ................................................................... 118
Register 25:  Interrupt 44-47 Priority (PRI11), offset 0x42C ................................................................... 118
Register 26:  Software Trigger Interrupt (SWTRIG), offset 0xF00 .......................................................... 120
Register 27:  CPU ID Base (CPUID), offset 0xD00 ............................................................................... 121
Register 28:  Interrupt Control and State (INTCTRL), offset 0xD04 ........................................................ 122
Register 29:  Vector Table Offset (VTABLE), offset 0xD08 .................................................................... 125
Register 30:  Application Interrupt and Reset Control (APINT), offset 0xD0C ......................................... 126
Register 31:  System Control (SYSCTRL), offset 0xD10 ....................................................................... 128
Register 32:  Configuration and Control (CFGCTRL), offset 0xD14 ....................................................... 130
Register 33:  System Handler Priority 1 (SYSPRI1), offset 0xD18 ......................................................... 132
Register 34:  System Handler Priority 2 (SYSPRI2), offset 0xD1C ........................................................ 133
Register 35:  System Handler Priority 3 (SYSPRI3), offset 0xD20 ......................................................... 134
Register 36:  System Handler Control and State (SYSHNDCTRL), offset 0xD24 .................................... 135
Register 37:  Configurable Fault Status (FAULTSTAT), offset 0xD28 ..................................................... 139
Register 38:  Hard Fault Status (HFAULTSTAT), offset 0xD2C .............................................................. 145
Register 39:  Memory Management Fault Address (MMADDR), offset 0xD34 ........................................ 146
Register 40:  Bus Fault Address (FAULTADDR), offset 0xD38 .............................................................. 147
Register 41:  MPU Type (MPUTYPE), offset 0xD90 ............................................................................. 148
Register 42:  MPU Control (MPUCTRL), offset 0xD94 .......................................................................... 149
Register 43:  MPU Region Number (MPUNUMBER), offset 0xD98 ....................................................... 151
Register 44:  MPU Region Base Address (MPUBASE), offset 0xD9C ................................................... 152
Register 45:  MPU Region Base Address Alias 1 (MPUBASE1), offset 0xDA4 ....................................... 152
Register 46:  MPU Region Base Address Alias 2 (MPUBASE2), offset 0xDAC ...................................... 152
Register 47:  MPU Region Base Address Alias 3 (MPUBASE3), offset 0xDB4 ....................................... 152
Register 48:  MPU Region Attribute and Size (MPUATTR), offset 0xDA0 ............................................... 154
Register 49:  MPU Region Attribute and Size Alias 1 (MPUATTR1), offset 0xDA8 .................................. 154
Register 50:  MPU Region Attribute and Size Alias 2 (MPUATTR2), offset 0xDB0 .................................. 154
Register 51:  MPU Region Attribute and Size Alias 3 (MPUATTR3), offset 0xDB8 .................................. 154

System Control ............................................................................................................................ 169
Register 1: Device Identification 0 (DID0), offset 0x000 ..................................................................... 184
Register 2: Brown-Out Reset Control (PBORCTL), offset 0x030 ........................................................ 186
Register 3: LDO Power Control (LDOPCTL), offset 0x034 ................................................................. 187
Register 4: Raw Interrupt Status (RIS), offset 0x050 .......................................................................... 188
Register 5: Interrupt Mask Control (IMC), offset 0x054 ...................................................................... 189
Register 6: Masked Interrupt Status and Clear (MISC), offset 0x058 .................................................. 190
Register 7: Reset Cause (RESC), offset 0x05C ................................................................................ 191
Register 8: Run-Mode Clock Configuration (RCC), offset 0x060 ......................................................... 192
Register 9: XTAL to PLL Translation (PLLCFG), offset 0x064 ............................................................. 196
Register 10: GPIO High-Performance Bus Control (GPIOHBCTL), offset 0x06C ................................... 197
Register 11: Run-Mode Clock Configuration 2 (RCC2), offset 0x070 .................................................... 199
Register 12: Main Oscillator Control (MOSCCTL), offset 0x07C ........................................................... 201
Register 13: Deep Sleep Clock Configuration (DSLPCLKCFG), offset 0x144 ........................................ 202
Register 14: Device Identification 1 (DID1), offset 0x004 ..................................................................... 203
Register 15: Device Capabilities 0 (DC0), offset 0x008 ........................................................................ 205
Register 16: Device Capabilities 1 (DC1), offset 0x010 ........................................................................ 206
Register 17: Device Capabilities 2 (DC2), offset 0x014 ........................................................................ 208
Register 18: Device Capabilities 3 (DC3), offset 0x018 ........................................................................ 209

16                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Register 19:  Device Capabilities 4 (DC4), offset 0x01C ....................................................................... 210
Register 20:  Device Capabilities 5 (DC5), offset 0x020 ........................................................................ 211
Register 21:  Device Capabilities 6 (DC6), offset 0x024 ........................................................................ 212
Register 22:  Device Capabilities 7 (DC7), offset 0x028 ........................................................................ 213
Register 23:  Run Mode Clock Gating Control Register 0 (RCGC0), offset 0x100 ................................... 215
Register 24:  Sleep Mode Clock Gating Control Register 0 (SCGC0), offset 0x110 ................................. 217
Register 25:  Deep Sleep Mode Clock Gating Control Register 0 (DCGC0), offset 0x120 ....................... 219
Register 26:  Run Mode Clock Gating Control Register 1 (RCGC1), offset 0x104 ................................... 221
Register 27:  Sleep Mode Clock Gating Control Register 1 (SCGC1), offset 0x114 ................................. 223
Register 28:  Deep Sleep Mode Clock Gating Control Register 1 (DCGC1), offset 0x124 ....................... 225
Register 29:  Run Mode Clock Gating Control Register 2 (RCGC2), offset 0x108 ................................... 227
Register 30:  Sleep Mode Clock Gating Control Register 2 (SCGC2), offset 0x118 ................................. 229
Register 31:  Deep Sleep Mode Clock Gating Control Register 2 (DCGC2), offset 0x128 ....................... 231
Register 32:  Software Reset Control 0 (SRCR0), offset 0x040 ............................................................. 233
Register 33:  Software Reset Control 1 (SRCR1), offset 0x044 ............................................................. 234
Register 34:  Software Reset Control 2 (SRCR2), offset 0x048 ............................................................. 235

Hibernation Module ..................................................................................................................... 236
Register 1: Hibernation RTC Counter (HIBRTCC), offset 0x000 ......................................................... 245
Register 2: Hibernation RTC Match 0 (HIBRTCM0), offset 0x004 ....................................................... 246
Register 3: Hibernation RTC Match 1 (HIBRTCM1), offset 0x008 ....................................................... 247
Register 4: Hibernation RTC Load (HIBRTCLD), offset 0x00C ........................................................... 248
Register 5: Hibernation Control (HIBCTL), offset 0x010 ..................................................................... 249
Register 6: Hibernation Interrupt Mask (HIBIM), offset 0x014 ............................................................. 252
Register 7: Hibernation Raw Interrupt Status (HIBRIS), offset 0x018 .................................................. 253
Register 8: Hibernation Masked Interrupt Status (HIBMIS), offset 0x01C ............................................ 254
Register 9: Hibernation Interrupt Clear (HIBIC), offset 0x020 ............................................................. 255
Register 10: Hibernation RTC Trim (HIBRTCT), offset 0x024 ............................................................... 256
Register 11: Hibernation Data (HIBDATA), offset 0x030-0x12C ............................................................ 257

Internal Memory ........................................................................................................................... 258
Register 1: ROM Control (RMCTL), offset 0x0F0 .............................................................................. 264
Register 2: Flash Memory Address (FMA), offset 0x000 .................................................................... 265
Register 3: Flash Memory Data (FMD), offset 0x004 ......................................................................... 266
Register 4: Flash Memory Control (FMC), offset 0x008 ..................................................................... 267
Register 5: Flash Controller Raw Interrupt Status (FCRIS), offset 0x00C ............................................ 269
Register 6: Flash Controller Interrupt Mask (FCIM), offset 0x010 ........................................................ 270
Register 7: Flash Controller Masked Interrupt Status and Clear (FCMISC), offset 0x014 ..................... 271
Register 8: USec Reload (USECRL), offset 0x140 ............................................................................ 273
Register 9: Flash Memory Protection Read Enable 0 (FMPRE0), offset 0x130 and 0x200 ................... 274
Register 10: Flash Memory Protection Program Enable 0 (FMPPE0), offset 0x134 and 0x400 ............... 275
Register 11: User Debug (USER_DBG), offset 0x1D0 ......................................................................... 276
Register 12: User Register 0 (USER_REG0), offset 0x1E0 .................................................................. 277
Register 13: User Register 1 (USER_REG1), offset 0x1E4 .................................................................. 278
Register 14: User Register 2 (USER_REG2), offset 0x1E8 .................................................................. 279
Register 15: User Register 3 (USER_REG3), offset 0x1EC ................................................................. 280
Register 16: Flash Memory Protection Read Enable 1 (FMPRE1), offset 0x204 .................................... 281
Register 17: Flash Memory Protection Read Enable 2 (FMPRE2), offset 0x208 .................................... 282
Register 18: Flash Memory Protection Read Enable 3 (FMPRE3), offset 0x20C ................................... 283
Register 19: Flash Memory Protection Program Enable 1 (FMPPE1), offset 0x404 ............................... 284

November 17, 2011                                     17

                   Texas Instruments-Production Data
Table of Contents

Register 20: Flash Memory Protection Program Enable 2 (FMPPE2), offset 0x408 ............................... 285
Register 21: Flash Memory Protection Program Enable 3 (FMPPE3), offset 0x40C ............................... 286

Micro Direct Memory Access (DMA) ........................................................................................ 287
Register 1: DMA Channel Source Address End Pointer (DMASRCENDP), offset 0x000 ...................... 309
Register 2: DMA Channel Destination Address End Pointer (DMADSTENDP), offset 0x004 ................ 310
Register 3: DMA Channel Control Word (DMACHCTL), offset 0x008 .................................................. 311
Register 4: DMA Status (DMASTAT), offset 0x000 ............................................................................ 315
Register 5: DMA Configuration (DMACFG), offset 0x004 ................................................................... 317
Register 6: DMA Channel Control Base Pointer (DMACTLBASE), offset 0x008 .................................. 318
Register 7: DMA Alternate Channel Control Base Pointer (DMAALTBASE), offset 0x00C .................... 319
Register 8: DMA Channel Wait on Request Status (DMAWAITSTAT), offset 0x010 ............................. 320
Register 9: DMA Channel Software Request (DMASWREQ), offset 0x014 ......................................... 321
Register 10: DMA Channel Useburst Set (DMAUSEBURSTSET), offset 0x018 .................................... 322
Register 11: DMA Channel Useburst Clear (DMAUSEBURSTCLR), offset 0x01C ................................. 324
Register 12: DMA Channel Request Mask Set (DMAREQMASKSET), offset 0x020 .............................. 325
Register 13: DMA Channel Request Mask Clear (DMAREQMASKCLR), offset 0x024 ........................... 327
Register 14: DMA Channel Enable Set (DMAENASET), offset 0x028 ................................................... 328
Register 15: DMA Channel Enable Clear (DMAENACLR), offset 0x02C ............................................... 330
Register 16: DMA Channel Primary Alternate Set (DMAALTSET), offset 0x030 .................................... 331
Register 17: DMA Channel Primary Alternate Clear (DMAALTCLR), offset 0x034 ................................. 333
Register 18: DMA Channel Priority Set (DMAPRIOSET), offset 0x038 ................................................. 334
Register 19: DMA Channel Priority Clear (DMAPRIOCLR), offset 0x03C .............................................. 336
Register 20: DMA Bus Error Clear (DMAERRCLR), offset 0x04C ........................................................ 337
Register 21: DMA Peripheral Identification 0 (DMAPeriphID0), offset 0xFE0 ......................................... 339
Register 22: DMA Peripheral Identification 1 (DMAPeriphID1), offset 0xFE4 ......................................... 340
Register 23: DMA Peripheral Identification 2 (DMAPeriphID2), offset 0xFE8 ......................................... 341
Register 24: DMA Peripheral Identification 3 (DMAPeriphID3), offset 0xFEC ........................................ 342
Register 25: DMA Peripheral Identification 4 (DMAPeriphID4), offset 0xFD0 ......................................... 343
Register 26: DMA PrimeCell Identification 0 (DMAPCellID0), offset 0xFF0 ........................................... 344
Register 27: DMA PrimeCell Identification 1 (DMAPCellID1), offset 0xFF4 ........................................... 345
Register 28: DMA PrimeCell Identification 2 (DMAPCellID2), offset 0xFF8 ........................................... 346
Register 29: DMA PrimeCell Identification 3 (DMAPCellID3), offset 0xFFC ........................................... 347

General-Purpose Input/Outputs (GPIOs) ................................................................................... 348
Register 1: GPIO Data (GPIODATA), offset 0x000 ............................................................................ 359
Register 2: GPIO Direction (GPIODIR), offset 0x400 ......................................................................... 360
Register 3: GPIO Interrupt Sense (GPIOIS), offset 0x404 .................................................................. 361
Register 4: GPIO Interrupt Both Edges (GPIOIBE), offset 0x408 ........................................................ 362
Register 5: GPIO Interrupt Event (GPIOIEV), offset 0x40C ................................................................ 363
Register 6: GPIO Interrupt Mask (GPIOIM), offset 0x410 ................................................................... 364
Register 7: GPIO Raw Interrupt Status (GPIORIS), offset 0x414 ........................................................ 365
Register 8: GPIO Masked Interrupt Status (GPIOMIS), offset 0x418 ................................................... 366
Register 9: GPIO Interrupt Clear (GPIOICR), offset 0x41C ................................................................ 367
Register 10: GPIO Alternate Function Select (GPIOAFSEL), offset 0x420 ............................................ 368
Register 11: GPIO 2-mA Drive Select (GPIODR2R), offset 0x500 ........................................................ 370
Register 12: GPIO 4-mA Drive Select (GPIODR4R), offset 0x504 ........................................................ 371
Register 13: GPIO 8-mA Drive Select (GPIODR8R), offset 0x508 ........................................................ 372
Register 14: GPIO Open Drain Select (GPIOODR), offset 0x50C ......................................................... 373
Register 15: GPIO Pull-Up Select (GPIOPUR), offset 0x510 ................................................................ 374

18                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Register 16:  GPIO Pull-Down Select (GPIOPDR), offset 0x514 ........................................................... 375
Register 17:  GPIO Slew Rate Control Select (GPIOSLR), offset 0x518 ................................................ 376
Register 18:  GPIO Digital Enable (GPIODEN), offset 0x51C ................................................................ 377
Register 19:  GPIO Lock (GPIOLOCK), offset 0x520 ............................................................................ 379
Register 20:  GPIO Commit (GPIOCR), offset 0x524 ............................................................................ 380
Register 21:  GPIO Analog Mode Select (GPIOAMSEL), offset 0x528 ................................................... 382
Register 22:  GPIO Peripheral Identification 4 (GPIOPeriphID4), offset 0xFD0 ....................................... 383
Register 23:  GPIO Peripheral Identification 5 (GPIOPeriphID5), offset 0xFD4 ....................................... 384
Register 24:  GPIO Peripheral Identification 6 (GPIOPeriphID6), offset 0xFD8 ....................................... 385
Register 25:  GPIO Peripheral Identification 7 (GPIOPeriphID7), offset 0xFDC ...................................... 386
Register 26:  GPIO Peripheral Identification 0 (GPIOPeriphID0), offset 0xFE0 ....................................... 387
Register 27:  GPIO Peripheral Identification 1 (GPIOPeriphID1), offset 0xFE4 ....................................... 388
Register 28:  GPIO Peripheral Identification 2 (GPIOPeriphID2), offset 0xFE8 ....................................... 389
Register 29:  GPIO Peripheral Identification 3 (GPIOPeriphID3), offset 0xFEC ...................................... 390
Register 30:  GPIO PrimeCell Identification 0 (GPIOPCellID0), offset 0xFF0 .......................................... 391
Register 31:  GPIO PrimeCell Identification 1 (GPIOPCellID1), offset 0xFF4 .......................................... 392
Register 32:  GPIO PrimeCell Identification 2 (GPIOPCellID2), offset 0xFF8 .......................................... 393
Register 33:  GPIO PrimeCell Identification 3 (GPIOPCellID3), offset 0xFFC ......................................... 394

General-Purpose Timers ............................................................................................................. 395
Register 1: GPTM Configuration (GPTMCFG), offset 0x000 .............................................................. 407
Register 2: GPTM TimerA Mode (GPTMTAMR), offset 0x004 ............................................................ 408
Register 3: GPTM TimerB Mode (GPTMTBMR), offset 0x008 ............................................................ 410
Register 4: GPTM Control (GPTMCTL), offset 0x00C ........................................................................ 412
Register 5: GPTM Interrupt Mask (GPTMIMR), offset 0x018 .............................................................. 415
Register 6: GPTM Raw Interrupt Status (GPTMRIS), offset 0x01C ..................................................... 417
Register 7: GPTM Masked Interrupt Status (GPTMMIS), offset 0x020 ................................................ 418
Register 8: GPTM Interrupt Clear (GPTMICR), offset 0x024 .............................................................. 419
Register 9: GPTM TimerA Interval Load (GPTMTAILR), offset 0x028 ................................................. 421
Register 10: GPTM TimerB Interval Load (GPTMTBILR), offset 0x02C ................................................ 422
Register 11: GPTM TimerA Match (GPTMTAMATCHR), offset 0x030 ................................................... 423
Register 12: GPTM TimerB Match (GPTMTBMATCHR), offset 0x034 .................................................. 424
Register 13: GPTM TimerA Prescale (GPTMTAPR), offset 0x038 ........................................................ 425
Register 14: GPTM TimerB Prescale (GPTMTBPR), offset 0x03C ....................................................... 426
Register 15: GPTM TimerA (GPTMTAR), offset 0x048 ........................................................................ 427
Register 16: GPTM TimerB (GPTMTBR), offset 0x04C ....................................................................... 428

Watchdog Timer ........................................................................................................................... 429
Register 1: Watchdog Load (WDTLOAD), offset 0x000 ...................................................................... 433
Register 2: Watchdog Value (WDTVALUE), offset 0x004 ................................................................... 434
Register 3: Watchdog Control (WDTCTL), offset 0x008 ..................................................................... 435
Register 4: Watchdog Interrupt Clear (WDTICR), offset 0x00C .......................................................... 436
Register 5: Watchdog Raw Interrupt Status (WDTRIS), offset 0x010 .................................................. 437
Register 6: Watchdog Masked Interrupt Status (WDTMIS), offset 0x014 ............................................. 438
Register 7: Watchdog Test (WDTTEST), offset 0x418 ....................................................................... 439
Register 8: Watchdog Lock (WDTLOCK), offset 0xC00 ..................................................................... 440
Register 9: Watchdog Peripheral Identification 4 (WDTPeriphID4), offset 0xFD0 ................................. 441
Register 10: Watchdog Peripheral Identification 5 (WDTPeriphID5), offset 0xFD4 ................................. 442
Register 11: Watchdog Peripheral Identification 6 (WDTPeriphID6), offset 0xFD8 ................................. 443
Register 12: Watchdog Peripheral Identification 7 (WDTPeriphID7), offset 0xFDC ................................ 444

November 17, 2011                                     19

                   Texas Instruments-Production Data
Table of Contents

Register 13:  Watchdog Peripheral Identification 0 (WDTPeriphID0), offset 0xFE0 ................................. 445
Register 14:  Watchdog Peripheral Identification 1 (WDTPeriphID1), offset 0xFE4 ................................. 446
Register 15:  Watchdog Peripheral Identification 2 (WDTPeriphID2), offset 0xFE8 ................................. 447
Register 16:  Watchdog Peripheral Identification 3 (WDTPeriphID3), offset 0xFEC ................................. 448
Register 17:  Watchdog PrimeCell Identification 0 (WDTPCellID0), offset 0xFF0 .................................... 449
Register 18:  Watchdog PrimeCell Identification 1 (WDTPCellID1), offset 0xFF4 .................................... 450
Register 19:  Watchdog PrimeCell Identification 2 (WDTPCellID2), offset 0xFF8 .................................... 451
Register 20:  Watchdog PrimeCell Identification 3 (WDTPCellID3 ), offset 0xFFC .................................. 452

Analog-to-Digital Converter (ADC) ............................................................................................. 453
Register 1: ADC Active Sample Sequencer (ADCACTSS), offset 0x000 ............................................. 463
Register 2: ADC Raw Interrupt Status (ADCRIS), offset 0x004 ........................................................... 464
Register 3: ADC Interrupt Mask (ADCIM), offset 0x008 ..................................................................... 465
Register 4: ADC Interrupt Status and Clear (ADCISC), offset 0x00C .................................................. 466
Register 5: ADC Overflow Status (ADCOSTAT), offset 0x010 ............................................................ 467
Register 6: ADC Event Multiplexer Select (ADCEMUX), offset 0x014 ................................................. 468
Register 7: ADC Underflow Status (ADCUSTAT), offset 0x018 ........................................................... 471
Register 8: ADC Sample Sequencer Priority (ADCSSPRI), offset 0x020 ............................................. 472
Register 9: ADC Processor Sample Sequence Initiate (ADCPSSI), offset 0x028 ................................. 474
Register 10: ADC Sample Averaging Control (ADCSAC), offset 0x030 ................................................. 475
Register 11: ADC Sample Sequence Input Multiplexer Select 0 (ADCSSMUX0), offset 0x040 ............... 476
Register 12: ADC Sample Sequence Control 0 (ADCSSCTL0), offset 0x044 ........................................ 478
Register 13: ADC Sample Sequence Result FIFO 0 (ADCSSFIFO0), offset 0x048 ................................ 481
Register 14: ADC Sample Sequence Result FIFO 1 (ADCSSFIFO1), offset 0x068 ................................ 481
Register 15: ADC Sample Sequence Result FIFO 2 (ADCSSFIFO2), offset 0x088 ................................ 481
Register 16: ADC Sample Sequence Result FIFO 3 (ADCSSFIFO3), offset 0x0A8 ............................... 481
Register 17: ADC Sample Sequence FIFO 0 Status (ADCSSFSTAT0), offset 0x04C ............................. 482
Register 18: ADC Sample Sequence FIFO 1 Status (ADCSSFSTAT1), offset 0x06C ............................. 482
Register 19: ADC Sample Sequence FIFO 2 Status (ADCSSFSTAT2), offset 0x08C ............................ 482
Register 20: ADC Sample Sequence FIFO 3 Status (ADCSSFSTAT3), offset 0x0AC ............................ 482
Register 21: ADC Sample Sequence Input Multiplexer Select 1 (ADCSSMUX1), offset 0x060 ............... 483
Register 22: ADC Sample Sequence Input Multiplexer Select 2 (ADCSSMUX2), offset 0x080 ............... 483
Register 23: ADC Sample Sequence Control 1 (ADCSSCTL1), offset 0x064 ........................................ 484
Register 24: ADC Sample Sequence Control 2 (ADCSSCTL2), offset 0x084 ........................................ 484
Register 25: ADC Sample Sequence Input Multiplexer Select 3 (ADCSSMUX3), offset 0x0A0 ............... 486
Register 26: ADC Sample Sequence Control 3 (ADCSSCTL3), offset 0x0A4 ........................................ 487

Universal Asynchronous Receivers/Transmitters (UARTs) ..................................................... 488
Register 1: UART Data (UARTDR), offset 0x000 ............................................................................... 497
Register 2: UART Receive Status/Error Clear (UARTRSR/UARTECR), offset 0x004 ........................... 499
Register 3: UART Flag (UARTFR), offset 0x018 ................................................................................ 501
Register 4: UART IrDA Low-Power Register (UARTILPR), offset 0x020 ............................................. 503
Register 5: UART Integer Baud-Rate Divisor (UARTIBRD), offset 0x024 ............................................ 504
Register 6: UART Fractional Baud-Rate Divisor (UARTFBRD), offset 0x028 ....................................... 505
Register 7: UART Line Control (UARTLCRH), offset 0x02C ............................................................... 506
Register 8: UART Control (UARTCTL), offset 0x030 ......................................................................... 508
Register 9: UART Interrupt FIFO Level Select (UARTIFLS), offset 0x034 ........................................... 510
Register 10: UART Interrupt Mask (UARTIM), offset 0x038 ................................................................. 512
Register 11: UART Raw Interrupt Status (UARTRIS), offset 0x03C ...................................................... 514
Register 12: UART Masked Interrupt Status (UARTMIS), offset 0x040 ................................................. 515

20                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Register 13:  UART Interrupt Clear (UARTICR), offset 0x044 ............................................................... 516
Register 14:  UART DMA Control (UARTDMACTL), offset 0x048 .......................................................... 518
Register 15:  UART Peripheral Identification 4 (UARTPeriphID4), offset 0xFD0 ..................................... 519
Register 16:  UART Peripheral Identification 5 (UARTPeriphID5), offset 0xFD4 ..................................... 520
Register 17:  UART Peripheral Identification 6 (UARTPeriphID6), offset 0xFD8 ..................................... 521
Register 18:  UART Peripheral Identification 7 (UARTPeriphID7), offset 0xFDC ..................................... 522
Register 19:  UART Peripheral Identification 0 (UARTPeriphID0), offset 0xFE0 ...................................... 523
Register 20:  UART Peripheral Identification 1 (UARTPeriphID1), offset 0xFE4 ...................................... 524
Register 21:  UART Peripheral Identification 2 (UARTPeriphID2), offset 0xFE8 ...................................... 525
Register 22:  UART Peripheral Identification 3 (UARTPeriphID3), offset 0xFEC ..................................... 526
Register 23:  UART PrimeCell Identification 0 (UARTPCellID0), offset 0xFF0 ........................................ 527
Register 24:  UART PrimeCell Identification 1 (UARTPCellID1), offset 0xFF4 ........................................ 528
Register 25:  UART PrimeCell Identification 2 (UARTPCellID2), offset 0xFF8 ........................................ 529
Register 26:  UART PrimeCell Identification 3 (UARTPCellID3), offset 0xFFC ........................................ 530

Synchronous Serial Interface (SSI) ............................................................................................ 531
Register 1: SSI Control 0 (SSICR0), offset 0x000 .............................................................................. 545
Register 2: SSI Control 1 (SSICR1), offset 0x004 .............................................................................. 547
Register 3: SSI Data (SSIDR), offset 0x008 ...................................................................................... 549
Register 4: SSI Status (SSISR), offset 0x00C ................................................................................... 550
Register 5: SSI Clock Prescale (SSICPSR), offset 0x010 .................................................................. 552
Register 6: SSI Interrupt Mask (SSIIM), offset 0x014 ......................................................................... 553
Register 7: SSI Raw Interrupt Status (SSIRIS), offset 0x018 .............................................................. 555
Register 8: SSI Masked Interrupt Status (SSIMIS), offset 0x01C ........................................................ 556
Register 9: SSI Interrupt Clear (SSIICR), offset 0x020 ....................................................................... 557
Register 10: SSI DMA Control (SSIDMACTL), offset 0x024 ................................................................. 558
Register 11: SSI Peripheral Identification 4 (SSIPeriphID4), offset 0xFD0 ............................................. 559
Register 12: SSI Peripheral Identification 5 (SSIPeriphID5), offset 0xFD4 ............................................. 560
Register 13: SSI Peripheral Identification 6 (SSIPeriphID6), offset 0xFD8 ............................................. 561
Register 14: SSI Peripheral Identification 7 (SSIPeriphID7), offset 0xFDC ............................................ 562
Register 15: SSI Peripheral Identification 0 (SSIPeriphID0), offset 0xFE0 ............................................. 563
Register 16: SSI Peripheral Identification 1 (SSIPeriphID1), offset 0xFE4 ............................................. 564
Register 17: SSI Peripheral Identification 2 (SSIPeriphID2), offset 0xFE8 ............................................. 565
Register 18: SSI Peripheral Identification 3 (SSIPeriphID3), offset 0xFEC ............................................ 566
Register 19: SSI PrimeCell Identification 0 (SSIPCellID0), offset 0xFF0 ............................................... 567
Register 20: SSI PrimeCell Identification 1 (SSIPCellID1), offset 0xFF4 ............................................... 568
Register 21: SSI PrimeCell Identification 2 (SSIPCellID2), offset 0xFF8 ............................................... 569
Register 22: SSI PrimeCell Identification 3 (SSIPCellID3), offset 0xFFC ............................................... 570

Inter-Integrated Circuit (I2C) Interface ........................................................................................ 571
Register 1: I2C Master Slave Address (I2CMSA), offset 0x000 ........................................................... 587
Register 2: I2C Master Control/Status (I2CMCS), offset 0x004 ........................................................... 588
Register 3: I2C Master Data (I2CMDR), offset 0x008 ......................................................................... 592
Register 4: I2C Master Timer Period (I2CMTPR), offset 0x00C ........................................................... 593
Register 5: I2C Master Interrupt Mask (I2CMIMR), offset 0x010 ......................................................... 594
Register 6: I2C Master Raw Interrupt Status (I2CMRIS), offset 0x014 ................................................. 595
Register 7: I2C Master Masked Interrupt Status (I2CMMIS), offset 0x018 ........................................... 596
Register 8: I2C Master Interrupt Clear (I2CMICR), offset 0x01C ......................................................... 597
Register 9: I2C Master Configuration (I2CMCR), offset 0x020 ............................................................ 598

November 17, 2011                                     21

                   Texas Instruments-Production Data
Table of Contents

Register 10:  I2C Slave Own Address (I2CSOAR), offset 0x800 ............................................................ 600
Register 11:  I2C Slave Control/Status (I2CSCSR), offset 0x804 ........................................................... 601
Register 12:  I2C Slave Data (I2CSDR), offset 0x808 ........................................................................... 603
Register 13:  I2C Slave Interrupt Mask (I2CSIMR), offset 0x80C ........................................................... 604
Register 14:  I2C Slave Raw Interrupt Status (I2CSRIS), offset 0x810 ................................................... 605
Register 15:  I2C Slave Masked Interrupt Status (I2CSMIS), offset 0x814 .............................................. 606
Register 16:  I2C Slave Interrupt Clear (I2CSICR), offset 0x818 ............................................................ 607

Universal Serial Bus (USB) Controller ....................................................................................... 608
Register 1: USB Device Functional Address (USBFADDR), offset 0x000 ............................................ 625
Register 2: USB Power (USBPOWER), offset 0x001 ......................................................................... 626
Register 3: USB Transmit Interrupt Status (USBTXIS), offset 0x002 ................................................... 629
Register 4: USB Receive Interrupt Status (USBRXIS), offset 0x004 ................................................... 630
Register 5: USB Transmit Interrupt Enable (USBTXIE), offset 0x006 .................................................. 631
Register 6: USB Receive Interrupt Enable (USBRXIE), offset 0x008 .................................................. 632
Register 7: USB General Interrupt Status (USBIS), offset 0x00A ........................................................ 633
Register 8: USB Interrupt Enable (USBIE), offset 0x00B .................................................................... 636
Register 9: USB Frame Value (USBFRAME), offset 0x00C ................................................................ 639
Register 10: USB Endpoint Index (USBEPIDX), offset 0x00E .............................................................. 640
Register 11: USB Test Mode (USBTEST), offset 0x00F ....................................................................... 641
Register 12: USB FIFO Endpoint 0 (USBFIFO0), offset 0x020 ............................................................. 643
Register 13: USB FIFO Endpoint 1 (USBFIFO1), offset 0x024 ............................................................. 643
Register 14: USB FIFO Endpoint 2 (USBFIFO2), offset 0x028 ............................................................. 643
Register 15: USB FIFO Endpoint 3 (USBFIFO3), offset 0x02C ............................................................ 643
Register 16: USB Device Control (USBDEVCTL), offset 0x060 ............................................................ 644
Register 17: USB Transmit Dynamic FIFO Sizing (USBTXFIFOSZ), offset 0x062 ................................. 645
Register 18: USB Receive Dynamic FIFO Sizing (USBRXFIFOSZ), offset 0x063 .................................. 645
Register 19: USB Transmit FIFO Start Address (USBTXFIFOADD), offset 0x064 ................................. 646
Register 20: USB Receive FIFO Start Address (USBRXFIFOADD), offset 0x066 .................................. 646
Register 21: USB Connect Timing (USBCONTIM), offset 0x07A .......................................................... 647
Register 22: USB Full-Speed Last Transaction to End of Frame Timing (USBFSEOF), offset 0x07D ...... 648
Register 23: USB Low-Speed Last Transaction to End of Frame Timing (USBLSEOF), offset 0x07E ...... 649
Register 24: USB Transmit Functional Address Endpoint 0 (USBTXFUNCADDR0), offset 0x080 ........... 650
Register 25: USB Transmit Functional Address Endpoint 1 (USBTXFUNCADDR1), offset 0x088 ........... 650
Register 26: USB Transmit Functional Address Endpoint 2 (USBTXFUNCADDR2), offset 0x090 ........... 650
Register 27: USB Transmit Functional Address Endpoint 3 (USBTXFUNCADDR3), offset 0x098 ........... 650
Register 28: USB Transmit Hub Address Endpoint 0 (USBTXHUBADDR0), offset 0x082 ...................... 651
Register 29: USB Transmit Hub Address Endpoint 1 (USBTXHUBADDR1), offset 0x08A ...................... 651
Register 30: USB Transmit Hub Address Endpoint 2 (USBTXHUBADDR2), offset 0x092 ...................... 651
Register 31: USB Transmit Hub Address Endpoint 3 (USBTXHUBADDR3), offset 0x09A ...................... 651
Register 32: USB Transmit Hub Port Endpoint 0 (USBTXHUBPORT0), offset 0x083 ............................. 652
Register 33: USB Transmit Hub Port Endpoint 1 (USBTXHUBPORT1), offset 0x08B ............................ 652
Register 34: USB Transmit Hub Port Endpoint 2 (USBTXHUBPORT2), offset 0x093 ............................. 652
Register 35: USB Transmit Hub Port Endpoint 3 (USBTXHUBPORT3), offset 0x09B ............................ 652
Register 36: USB Receive Functional Address Endpoint 1 (USBRXFUNCADDR1), offset 0x08C ........... 653
Register 37: USB Receive Functional Address Endpoint 2 (USBRXFUNCADDR2), offset 0x094 ........... 653
Register 38: USB Receive Functional Address Endpoint 3 (USBRXFUNCADDR3), offset 0x09C ........... 653
Register 39: USB Receive Hub Address Endpoint 1 (USBRXHUBADDR1), offset 0x08E ...................... 654
Register 40: USB Receive Hub Address Endpoint 2 (USBRXHUBADDR2), offset 0x096 ....................... 654

22                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Register 41:  USB Receive Hub Address Endpoint 3 (USBRXHUBADDR3), offset 0x09E ...................... 654
Register 42:  USB Receive Hub Port Endpoint 1 (USBRXHUBPORT1), offset 0x08F ............................. 655
Register 43:  USB Receive Hub Port Endpoint 2 (USBRXHUBPORT2), offset 0x097 ............................. 655
Register 44:  USB Receive Hub Port Endpoint 3 (USBRXHUBPORT3), offset 0x09F ............................. 655
Register 45:  USB Maximum Transmit Data Endpoint 1 (USBTXMAXP1), offset 0x110 .......................... 656
Register 46:  USB Maximum Transmit Data Endpoint 2 (USBTXMAXP2), offset 0x120 .......................... 656
Register 47:  USB Maximum Transmit Data Endpoint 3 (USBTXMAXP3), offset 0x130 .......................... 656
Register 48:  USB Control and Status Endpoint 0 Low (USBCSRL0), offset 0x102 ................................. 657
Register 49:  USB Control and Status Endpoint 0 High (USBCSRH0), offset 0x103 ............................... 661
Register 50:  USB Receive Byte Count Endpoint 0 (USBCOUNT0), offset 0x108 ................................... 663
Register 51:  USB Type Endpoint 0 (USBTYPE0), offset 0x10A ............................................................ 664
Register 52:  USB NAK Limit (USBNAKLMT), offset 0x10B .................................................................. 665
Register 53:  USB Transmit Control and Status Endpoint 1 Low (USBTXCSRL1), offset 0x112 ............... 666
Register 54:  USB Transmit Control and Status Endpoint 2 Low (USBTXCSRL2), offset 0x122 ............... 666
Register 55:  USB Transmit Control and Status Endpoint 3 Low (USBTXCSRL3), offset 0x132 ............... 666
Register 56:  USB Transmit Control and Status Endpoint 1 High (USBTXCSRH1), offset 0x113 .............. 670
Register 57:  USB Transmit Control and Status Endpoint 2 High (USBTXCSRH2), offset 0x123 ............. 670
Register 58:  USB Transmit Control and Status Endpoint 3 High (USBTXCSRH3), offset 0x133 ............. 670
Register 59:  USB Maximum Receive Data Endpoint 1 (USBRXMAXP1), offset 0x114 ........................... 674
Register 60:  USB Maximum Receive Data Endpoint 2 (USBRXMAXP2), offset 0x124 ........................... 674
Register 61:  USB Maximum Receive Data Endpoint 3 (USBRXMAXP3), offset 0x134 ........................... 674
Register 62:  USB Receive Control and Status Endpoint 1 Low (USBRXCSRL1), offset 0x116 ............... 675
Register 63:  USB Receive Control and Status Endpoint 2 Low (USBRXCSRL2), offset 0x126 ............... 675
Register 64:  USB Receive Control and Status Endpoint 3 Low (USBRXCSRL3), offset 0x136 ............... 675
Register 65:  USB Receive Control and Status Endpoint 1 High (USBRXCSRH1), offset 0x117 .............. 680
Register 66:  USB Receive Control and Status Endpoint 2 High (USBRXCSRH2), offset 0x127 .............. 680
Register 67:  USB Receive Control and Status Endpoint 3 High (USBRXCSRH3), offset 0x137 .............. 680
Register 68:  USB Receive Byte Count Endpoint 1 (USBRXCOUNT1), offset 0x118 .............................. 684
Register 69:  USB Receive Byte Count Endpoint 2 (USBRXCOUNT2), offset 0x128 .............................. 684
Register 70:  USB Receive Byte Count Endpoint 3 (USBRXCOUNT3), offset 0x138 .............................. 684
Register 71:  USB Host Transmit Configure Type Endpoint 1 (USBTXTYPE1), offset 0x11A ................... 685
Register 72:  USB Host Transmit Configure Type Endpoint 2 (USBTXTYPE2), offset 0x12A ................... 685
Register 73:  USB Host Transmit Configure Type Endpoint 3 (USBTXTYPE3), offset 0x13A ................... 685
Register 74:  USB Host Transmit Interval Endpoint 1 (USBTXINTERVAL1), offset 0x11B ....................... 686
Register 75:  USB Host Transmit Interval Endpoint 2 (USBTXINTERVAL2), offset 0x12B ....................... 686
Register 76:  USB Host Transmit Interval Endpoint 3 (USBTXINTERVAL3), offset 0x13B ....................... 686
Register 77:  USB Host Configure Receive Type Endpoint 1 (USBRXTYPE1), offset 0x11C ................... 687
Register 78:  USB Host Configure Receive Type Endpoint 2 (USBRXTYPE2), offset 0x12C ................... 687
Register 79:  USB Host Configure Receive Type Endpoint 3 (USBRXTYPE3), offset 0x13C ................... 687
Register 80:  USB Host Receive Polling Interval Endpoint 1 (USBRXINTERVAL1), offset 0x11D ............. 688
Register 81:  USB Host Receive Polling Interval Endpoint 2 (USBRXINTERVAL2), offset 0x12D ............ 688
Register 82:  USB Host Receive Polling Interval Endpoint 3 (USBRXINTERVAL3), offset 0x13D ............ 688
Register 83:  USB Request Packet Count in Block Transfer Endpoint 1 (USBRQPKTCOUNT1), offset
              0x304 ........................................................................................................................... 689
Register 84:  USB Request Packet Count in Block Transfer Endpoint 2 (USBRQPKTCOUNT2), offset
              0x308 ........................................................................................................................... 689
Register 85:  USB Request Packet Count in Block Transfer Endpoint 3 (USBRQPKTCOUNT3), offset
              0x30C ........................................................................................................................... 689
Register 86:  USB Receive Double Packet Buffer Disable (USBRXDPKTBUFDIS), offset 0x340 ............. 690

November 17, 2011                                     23

                   Texas Instruments-Production Data
Table of Contents

Register 87:  USB Transmit Double Packet Buffer Disable (USBTXDPKTBUFDIS), offset 0x342 ............ 691
Register 88:  USB External Power Control (USBEPC), offset 0x400 ...................................................... 692
Register 89:  USB External Power Control Raw Interrupt Status (USBEPCRIS), offset 0x404 ................. 695
Register 90:  USB External Power Control Interrupt Mask (USBEPCIM), offset 0x408 ............................ 696
Register 91:  USB External Power Control Interrupt Status and Clear (USBEPCISC), offset 0x40C ......... 697
Register 92:  USB Device RESUME Raw Interrupt Status (USBDRRIS), offset 0x410 ............................ 698
Register 93:  USB Device RESUME Interrupt Mask (USBDRIM), offset 0x414 ....................................... 699
Register 94:  USB Device RESUME Interrupt Status and Clear (USBDRISC), offset 0x418 .................... 700
Register 95:  USB General-Purpose Control and Status (USBGPCS), offset 0x41C ............................... 701

24                                                    November 17, 2011

                   Texas Instruments-Production Data
                                                                            Stellaris LM3S3634 Microcontroller

Revision History

The revision history table notes changes made between the indicated revisions of the LM3S3634
data sheet.

Table 1. Revision History

       Date    Revision    Description
November 2011    11107
                            Clarified that when the USB module is in operation, MOSC must be provided with a clock source,
                                and the system clock must be at least 30 MHz.

                            Added module-specific pin tables to each chapter in the new Signal Description sections.

                            In Hibernation chapter:

                            Changed terminology from non-volatile memory to battery-backed memory.

                            Clarified Hibernation module register reset conditions.

                            In Internal Memory chapter, corrected note in USER_DBG and USER_REG0/1/2/3 registers, that
                                once committed, the value of the register can never be restored to the factory default value.

                            In Timer chapter, clarified that in 16-Bit Input Edge Time Mode, the timer is capable of capturing
                                three types of events: rising edge, falling edge, or both.

                            In UART chapter, clarified interrupt behavior.

                            In SSI chapter, corrected SSIClk in the figure "Synchronous Serial Frame Format (Single Transfer)".

                            In USB chapter:

                            Removed MULTTRAN bit from USB Transmit Hub Address Endpoint n (USBTXHUBADDRn)
                                and USB Receive Hub Address Endpoint n (USBRXHUBADDRn) registers.

                            Removed DISCON bit from Device Mode table for USB General Interrupt Status (USBIS)
                                register.

                            Added WTID bit to USB Connect Timing (USBCONTIM) register.

                            In Signal Tables chapter:

                            Corrected pin numbers in table "Connections for Unused Signals" (other pin tables were correct).

                            In Electrical Characteristics chapter:

                            Corrected values in "Detailed Power Specifications" table.

                            Added "System Clock Characteristics with USB Operation" table.

                            Corrected Nom values for parameters "TCK clock Low time" and "TCK clock High time" in "JTAG
                                Characteristics" table.

                            Corrected missing values for "Conversion time" and "Conversion rate" parameters in "ADC
                                Characteristics" table.

                            Additional minor data sheet clarifications and corrections.

November 17, 2011                                                                                                               25

                           Texas Instruments-Production Data
Revision History

Table 1. Revision History (continued)

         Date     Revision  Description
    January 2011    9102
                             In Application Interrupt and Reset Control (APINT) register, changed bit name from SYSRESETREQ
                                 to SYSRESREQ.

                             Added DEBUG (Debug Priority) bit field to System Handler Priority 3 (SYSPRI3) register.

                             Added "Reset Sources" table to System Control chapter.

                             Removed mention of false-start bit detection in the UART chapter. This feature is not supported.

                             Added note that specific module clocks must be enabled before that module's registers can be
                                 programmed. There must be a delay of 3 system clocks after the module clock is enabled before
                                 any of that module's registers are accessed.

                             Changed I2C slave register base addresses and offsets to be relative to the I2C module base address
                                 of 0x4002.0000 and 0x4002.1000, so register bases and offsets were changed for all I2C slave
                                 registers. Note that the hw_i2c.h file in the StellarisWare Driver Library uses a base address of
                                 0x4002.0800 and 0x4002.1800 for the I2C slave registers. Be aware when using registers with
                                 offsets between 0x800 and 0x818 that StellarisWare uses the old slave base address for these
                                 offsets.

                             Corrected nonlinearity and offset error parameters (EL, ED and EO) in ADC Characteristics table.

                             Added specification for maximum input voltage on a non-power pin when the microcontroller is
                                 unpowered (VNON parameter in Maximum Ratings table).

                             Additional minor data sheet clarifications and corrections.

September 2010    7783       Reorganized ARM Cortex-M3 Processor Core, Memory Map and Interrupts chapters, creating two
                                 new chapters, The Cortex-M3 Processor and Cortex-M3 Peripherals. Much additional content was
                                 added, including all the Cortex-M3 registers.

                             Changed register names to be consistent with StellarisWare names: the Cortex-M3 Interrupt Control
                                 and Status (ICSR) register to the Interrupt Control and State (INTCTRL) register, and the
                                 Cortex-M3 Interrupt Set Enable (SETNA) register to the Interrupt 0-31 Set Enable (EN0) register.

                             In the Internal Memory chapter:
                                  Added clarification of instruction execution during Flash operations.
                                  Deleted ROM Version (RMVER) register as it is not used.

                             In the GPIO chapter:
                                  Renamed the GPIO High-Speed Control (GPIOHSCTL) register to the GPIO High-Performance
                                      Bus Control (GPIOHBCTL) register.
                                  Added clarification about the operation of the Advanced High-Performance Bus (AHB) and the
                                      legacy Advanced Peripheral Bus (APB).
                                  Modified Figure 9-1 on page 351 and Figure 9-2 on page 352 to clarify operation of the GPIO
                                      inputs when used as an alternate function.

                             In General-Purpose Timers chapter, clarified operation of the 32-bit RTC mode.

                             Numerous improvements and clarifications to the USB chapter. Also corrected definitions for bits
                                 2 and 5 in the USBIE register.

                             In Electrical Characteristics chapter:
                                  Added "Input voltage for a GPIO configured as an analog input" value to Table 20-1 on page 714.
                                  Added ILKG parameter (GPIO input leakage current) to Table 20-4 on page 715.
                                  Corrected values for tCLKRF parameter (SSIClk rise/fall time) in Table 20-22 on page 725.

                             Added dimensions for Tray and Tape and Reel shipping mediums.

26                                                                                   November 17, 2011

                            Texas Instruments-Production Data
                                                            Stellaris LM3S3634 Microcontroller

Table 1. Revision History (continued)

   Date       Revision Description
June 2010       7403  Corrected base address for SRAM in architectural overview chapter.

                          Clarified system clock operation, adding content to "Clock Control" on page 174.

                          In Signal Tables chapter, added table "Connections for Unused Signals."

                          In "Reset Characteristics" table, corrected value for supply voltage (VDD) rise time.

                          Additional minor data sheet clarifications and corrections.

April 2010         7021   Added caution note to the I2C Master Timer Period (I2CMTPR) register description and changed
                              field width to 7 bits.

                          Added note about RST signal routing.
                          Clarified the function of the TnSTALL bit in the GPTMCTL register.
                          Additional minor data sheet clarifications and corrections.

January 2010       6707   In "System Control" section, clarified Debug Access Port operation after Sleep modes.
                          Clarified wording on Flash memory access errors.
                          Added section on Flash interrupts.
                          Changed the reset value of the ADC Sample Sequence Result FIFO n (ADCSSFIFOn) registers

                              to be indeterminate.
                          Clarified operation of SSI transmit FIFO.
                          Made these changes to the Operating Characteristics chapter:

                               Added storage temperature ratings to "Temperature Characteristics" table
                               Added "ESD Absolute Maximum Ratings" table
                          Made these changes to the Electrical Characteristics chapter:
                               In "Flash Memory Characteristics" table, corrected Mass erase time
                               Added sleep and deep-sleep wake-up times ("Sleep Modes AC Characteristics" table)
                               In "Reset Characteristics" table, corrected units for supply voltage (VDD) rise time

November 17, 2011                                                                                                27

                         Texas Instruments-Production Data
Revision History

Table 1. Revision History (continued)

         Date     Revision  Description
    October 2009    6449
                             Removed the MAXADCSPD bit field from the DCGC0 register as it has no function in deep-sleep
                                 mode.

                             Deleted reset value for 16-bit mode from GPTMTAILR, GPTMTAMATCHR, and GPTMTAR registers
                                 because the module resets in 32-bit mode.

                             Corrected description for ADDR bit field in USBTXFIFOSZ and USBRXFIFOSZ registers.

                             Clarified PWM source for ADC triggering

                             Made these changes to the Electrical Characteristics chapter:

                            Removed VSIH and VSIL parameters from Operating Conditions table.
                            Changed SSI set up and hold times to be expressed in system clocks, not ns.

                            Revised ADC electrical specifications to clarify, including reorganizing and adding new data.

                            Changed the name of the tHIB_REG_WRITE parameter to tHIB_REG_ACCESS.
                            Table added showing actual PLL frequency depending on input crystal.

                             Additional minor data sheet clarifications and corrections.

    July 2009     5920       Clarified Power-on reset and RST pin operation; added new diagrams.

                             Corrected the reset value of the Hibernation Data (HIBDATA) and Hibernation Control (HIBCTL)
                                 registers.

                             Clarified explanation of nonvolatile register programming in Internal Memory chapter.

                             Added explanation of reset value to FMPRE0/1/2/3, FMPPE0/1/2/3, USER_DBG, and USER_REG0/1
                                 registers.

                             Special bulk handling and packet splitting has never been supported as the DMA module can
                                 support the same function. As a result, all references to these topics has been removed. Bit 7 in
                                 the USBTXCSRLn register only functions as NAKTO in Host mode and is reserved in Device mode.
                                 In addition, bit 0 in the USBRXCSRHn register is reserved.

                             The DISCON and CONN bits in the USBIS and USBIE registers are not available in Device mode.
                                 When the USB controller is acting as a self-powered Device, a GPIO input or analog comparator
                                 input must be connected to VBUS and configured to generate an interrupt when the VBUS level
                                 drops. This interrupt is used to disable the pullup resistor on the USB0DP signal.

                             Changed buffer type for WAKE pin to TTL.

                             In ADC characteristics table, changed Max value for GAIN parameter from 1 to 3 and added
                                 EIR(Internal voltage reference error) parameter.

                             Changed ordering numbers.

                             Additional minor data sheet clarifications and corrections.

28                                                                                          November 17, 2011

                            Texas Instruments-Production Data
                                                            Stellaris LM3S3634 Microcontroller

Table 1. Revision History (continued)

   Date        Revision Description
April 2009       5368  Added JTAG/SWD clarification (see "Communication with JTAG/SWD" on page 163).

                          Added clarification that the PLL operates at 400 MHz, but is divided by two prior to the application
                              of the output divisor.

                          Corrected bits 2:1 in I2CSIMR, I2CSRIS, I2CSMIS, and I2CSICR registers to be reserved bits
                              (cannot interrupt on start and stop conditions).

                          Corrected bits 15:11 in USBTXMAXP0/1/2 and USBRXMAXP0/1/2 registers to be reserved bits
                              (cannot define multiplier).

                          Additional minor data sheet clarifications and corrections.

January 2009       4724   Corrected bit type for RELOAD bit field in SysTick Reload Value register; changed to R/W.
                          Added clarification as to what happens when the SSI in slave mode is required to transmit but there

                              is no data in the TX FIFO.
                          Added section called "Setting the Device Address" for special considerations when writing the

                              USBFADDR register.
                          Corrected USBEPIDX to be an 8-bit register.
                          Added comparator operating mode tables.
                          Corrected pin types of signals RST to "in" and USB0RBIAS to "out".

                          Additional minor data sheet clarifications and corrections.

November 2008      4283   Revised High-Level Block Diagram.
                          Additional minor data sheet clarifications and corrections were made.

November 17, 2011                                                                                                     29

                         Texas Instruments-Production Data
Revision History

Table 1. Revision History (continued)

         Date     Revision Description
    October 2008    4149  Added note on clearing interrupts to the Interrupts chapter:

                  Note:  It may take several processor cycles after a write to clear an interrupt source in order for
                         NVIC to see the interrupt source de-assert. This means if the interrupt clear is done as
                         the last action in an interrupt handler, it is possible for the interrupt handler to complete
                         while NVIC sees the interrupt as still asserted, causing the interrupt handler to be
                         re-entered errantly. This can be avoided by either clearing the interrupt source at the
                         beginning of the interrupt handler or by performing a read or write after the write to clear
                         the interrupt source (and flush the write buffer)

                   Added clarification on JTAG reset to the JTAG chapter:

                       In order to reset the JTAG module after the device has been powered on, the TMS input must be
                       held HIGH for five TCK clock cycles, resetting the TAP controller and all associated JTAG chains.

                   The binary value was incorrect in the JTAG 16-bit switch sequence in the JTAG-to-SWD Switching
                       section in the JTAG chapter. Sentence changed to:

                       The 16-bit switch sequence for switching to JTAG mode is defined as b1110011100111100,
                       transmitted LSB first.

                   The FMA value for the FMPRE3 register was incorrect in the Flash Resident Registers table in the
                       Internal Memory chapter. The correct value is 0x0000.0006.

                   Step 1 of the Initialization and Configuration procedure in the ADC chapter states the wrong register
                       to use to enable the ADC clock. Sentence changed to:

                       1. Enable the ADC clock by writing a value of 0x0001.0000 to the RCGC0 register.

                   In the USB chapter, clarified endpoint terminology and added a new section on DMA Operation.

                   Additional minor data sheet clarifications and corrections were made.

    June 2008     2972 Started tracking revision history.

30                                                                                        November 17, 2011

                         Texas Instruments-Production Data
                                                                                                               Stellaris LM3S3634 Microcontroller

About This Document

                This data sheet provides reference information for the LM3S3634 microcontroller, describing the
                functional blocks of the system-on-chip (SoC) device designed around the ARM CortexTM-M3
                core.

Audience

                This manual is intended for system software developers, hardware designers, and application
                developers.

About This Manual

                This document is organized into sections that correspond to each major feature.

Related Documents

                The following related documents are available on the Stellaris web site at www.ti.com/stellaris:
                 Stellaris Errata
                 ARM CortexTM-M3 Errata
                 CortexTM-M3/M4 Instruction Set Technical User's Manual
                 Stellaris Boot Loader User's Guide
                 Stellaris Graphics Library User's Guide
                 Stellaris Peripheral Driver Library User's Guide
                 Stellaris ROM User's Guide
                 Stellaris USB Library User's Guide
                The following related documents are also referenced:
                 ARM Debug Interface V5 Architecture Specification
                 ARM Embedded Trace Macrocell Architecture Specification
                 IEEE Standard 1149.1-Test Access Port and Boundary-Scan Architecture
                This documentation list was current as of publication date. Please check the web site for additional
                documentation, including application notes and white papers.

November 17, 2011                                     31

                   Texas Instruments-Production Data
About This Document

Documentation Conventions

                This document uses the conventions shown in Table 2 on page 32.

    Table 2. Documentation Conventions

    Notation             Meaning

    General Register Notation

    REGISTER             APB registers are indicated in uppercase bold. For example, PBORCTL is the Power-On and
                         Brown-Out Reset Control register. If a register name contains a lowercase n, it represents more
                         than one register. For example, SRCRn represents any (or all) of the three Software Reset Control
                         registers: SRCR0, SRCR1 , and SRCR2.

    bit                  A single bit in a register.

    bit field            Two or more consecutive and related bits.

    offset 0xnnn         A hexadecimal increment to a register's address, relative to that module's base address as specified
                         in Table 2-4 on page 70.

    Register N           Registers are numbered consecutively throughout the document to aid in referencing them. The
                         register number has no meaning to software.

    reserved             Register bits marked reserved are reserved for future use. In most cases, reserved bits are set to
                         0; however, user software should not rely on the value of a reserved bit. To provide software
                         compatibility with future products, the value of a reserved bit should be preserved across a
                         read-modify-write operation.

    yy:xx                The range of register bits inclusive from xx to yy. For example, 31:15 means bits 15 through 31 in
                         that register.

    Register Bit/Field   This value in the register bit diagram indicates whether software running on the controller can
    Types                change the value of the bit field.

    RC                   Software can read this field. The bit or field is cleared by hardware after reading the bit/field.

    RO                   Software can read this field. Always write the chip reset value.

    R/W                  Software can read or write this field.

    R/WC                 Software can read or write this field. Writing to it with any value clears the register.

    R/W1C                Software can read or write this field. A write of a 0 to a W1C bit does not affect the bit value in the
                         register. A write of a 1 clears the value of the bit in the register; the remaining bits remain unchanged.

                         This register type is primarily used for clearing interrupt status bits where the read operation
                         provides the interrupt status and the write of the read value clears only the interrupts being reported
                         at the time the register was read.

    R/W1S                Software can read or write a 1 to this field. A write of a 0 to a R/W1S bit does not affect the bit
                         value in the register.

    W1C                  Software can write this field. A write of a 0 to a W1C bit does not affect the bit value in the register.
                         A write of a 1 clears the value of the bit in the register; the remaining bits remain unchanged. A
                         read of the register returns no meaningful data.

                         This register is typically used to clear the corresponding bit in an interrupt register.

    WO                   Only a write by software is valid; a read of the register returns no meaningful data.

    Register Bit/Field   This value in the register bit diagram shows the bit/field value after any reset, unless noted.
    Reset Value

    0                    Bit cleared to 0 on chip reset.

    1                    Bit set to 1 on chip reset.

    -                    Nondeterministic.

    Pin/Signal Notation

    []                   Pin alternate function; a pin defaults to the signal without the brackets.

    pin                  Refers to the physical connection on the package.

    signal               Refers to the electrical signal encoding of a pin.

32                                                                                                   November 17, 2011

                               Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Table 2. Documentation Conventions (continued)

Notation           Meaning
assert a signal
                   Change the value of the signal from the logically False state to the logically True state. For active
deassert a signal  High signals, the asserted signal value is 1 (High); for active Low signals, the asserted signal value
SIGNAL             is 0 (Low). The active polarity (High or Low) is defined by the signal name (see SIGNAL and SIGNAL
SIGNAL             below).
Numbers
X                  Change the value of the signal from the logically True state to the logically False state.

0x                 Signal names are in uppercase and in the Courier font. An overbar on a signal name indicates that
                   it is active Low. To assert SIGNAL is to drive it Low; to deassert SIGNAL is to drive it High.

                   Signal names are in uppercase and in the Courier font. An active High signal has no overbar. To
                   assert SIGNAL is to drive it High; to deassert SIGNAL is to drive it Low.

                   An uppercase X indicates any of several values is allowed, where X can be any legal pattern. For
                   example, a binary value of 0X00 can be either 0100 or 0000, a hex value of 0xX is 0x0 or 0x1, and
                   so on.

                   Hexadecimal numbers have a prefix of 0x. For example, 0x00FF is the hexadecimal number FF.
                   All other numbers within register tables are assumed to be binary. Within conceptual information,
                   binary numbers are indicated with a b suffix, for example, 1011b, and decimal numbers are written
                   without a prefix or suffix.

November 17, 2011                                     33

                   Texas Instruments-Production Data
Architectural Overview

1 Architectural Overview

                The Stellaris family of microcontrollers--the first ARM CortexTM-M3 based controllers--brings
                high-performance 32-bit computing to cost-sensitive embedded microcontroller applications. These
                pioneering parts deliver customers 32-bit performance at a cost equivalent to legacy 8- and 16-bit
                devices, all in a package with a small footprint.

                The Stellaris family offers efficient performance and extensive integration, favorably positioning the
                device into cost-conscious applications requiring significant control-processing and connectivity
                capabilities. The Stellaris LM3S5000 series combines USB 2.0 Full-Speed On-The-Go/Host/Device
                combinations with Bosch CAN networking technology.

                The LM3S3634 microcontroller is targeted for industrial applications, including remote monitoring,
                electronic point-of-sale machines, test and measurement equipment, network appliances and
                switches, factory automation, HVAC and building control, gaming equipment, motion control, medical
                instrumentation, and fire and security.

                For applications requiring extreme conservation of power, the LM3S3634 microcontroller features
                a battery-backed Hibernation module to efficiently power down the LM3S3634 to a low-power state
                during extended periods of inactivity. With a power-up/power-down sequencer, a continuous time
                counter (RTC), a pair of match registers, an APB interface to the system bus, and dedicated
                non-volatile memory, the Hibernation module positions the LM3S3634 microcontroller perfectly for
                battery applications.

                In addition, the LM3S3634 microcontroller offers the advantages of ARM's widely available
                development tools, System-on-Chip (SoC) infrastructure IP applications, and a large user community.
                Additionally, the microcontroller uses ARM's Thumb-compatible Thumb-2 instruction set to reduce
                memory requirements and, thereby, cost. Finally, the LM3S3634 microcontroller is code-compatible
                to all members of the extensive Stellaris family; providing flexibility to fit our customers' precise
                needs.

                Texas Instruments offers a complete solution to get to market quickly, with evaluation and
                development boards, white papers and application notes, an easy-to-use peripheral driver library,
                and a strong support, sales, and distributor network. See "Ordering and Contact
                Information" on page 771 for ordering information for Stellaris family devices.

1.1 Product Features

                The LM3S3634 microcontroller includes the following product features:

                 32-Bit RISC Performance

                     32-bit ARM CortexTM-M3 v7M architecture optimized for small-footprint embedded
                         applications

                     System timer (SysTick), providing a simple, 24-bit clear-on-write, decrementing, wrap-on-zero
                         counter with a flexible control mechanism

                     Thumb-compatible Thumb-2-only instruction set processor core for high code density

                     50-MHz operation

                     Hardware-division and single-cycle-multiplication

34                                     November 17, 2011

    Texas Instruments-Production Data
                                                                                            Stellaris LM3S3634 Microcontroller

    Integrated Nested Vectored Interrupt Controller (NVIC) providing deterministic interrupt
        handling

    27 interrupts with eight priority levels
    Memory protection unit (MPU), providing a privileged mode for protected operating system

        functionality
    Unaligned data access, enabling data to be efficiently packed into memory
    Atomic bit manipulation (bit-banding), delivering maximum memory utilization and streamlined

        peripheral control
ARM CortexTM-M3 Processor Core

    Compact core.
    Thumb-2 instruction set, delivering the high-performance expected of an ARM core in the

        memory size usually associated with 8- and 16-bit devices; typically in the range of a few
        kilobytes of memory for microcontroller class applications.
    Rapid application execution through Harvard architecture characterized by separate buses
        for instruction and data.
    Exceptional interrupt handling, by implementing the register manipulations required for handling
        an interrupt in hardware.
    Deterministic, fast interrupt processing: always 12 cycles, or just 6 cycles with tail-chaining
    External non-maskable interrupt signal (NMI) available for immediate execution of NMI handler
        for safety critical applications.
    Memory protection unit (MPU) to provide a privileged mode of operation for complex
        applications.
    Migration from the ARM7TM processor family for better performance and power efficiency.
    Full-featured debug solution
         Serial Wire JTAG Debug Port (SWJ-DP)
         Flash Patch and Breakpoint (FPB) unit for implementing breakpoints
         Data Watchpoint and Trigger (DWT) unit for implementing watchpoints, trigger resources,

             and system profiling
         Instrumentation Trace Macrocell (ITM) for support of printf style debugging
         Trace Port Interface Unit (TPIU) for bridging to a Trace Port Analyzer
    Optimized for single-cycle flash usage
    Three sleep modes with clock gating for low power
    Single-cycle multiply instruction and hardware divide

November 17, 2011                                     35

                   Texas Instruments-Production Data
Architectural Overview

         Atomic operations
         ARM Thumb2 mixed 16-/32-bit instruction set
         1.25 DMIPS/MHz
     JTAG
         IEEE 1149.1-1990 compatible Test Access Port (TAP) controller
         Four-bit Instruction Register (IR) chain for storing JTAG instructions
         IEEE standard instructions: BYPASS, IDCODE, SAMPLE/PRELOAD, EXTEST and INTEST
         ARM additional instructions: APACC, DPACC and ABORT
         Integrated ARM Serial Wire Debug (SWD)
     Hibernation
         System power control using discrete external regulator
         Dedicated pin for waking from an external signal
         Low-battery detection, signaling, and interrupt generation
         32-bit real-time clock (RTC)
         Two 32-bit RTC match registers for timed wake-up and interrupt generation
         Clock source from a 32.768-kHz external oscillator or a 4.194304-MHz crystal
         RTC predivider trim for making fine adjustments to the clock rate
         64 32-bit words of non-volatile memory
         Programmable interrupts for RTC match, external wake, and low battery events
     Internal Memory
         128 KB single-cycle flash

             User-managed flash block protection on a 2-KB block basis
             User-managed flash data programming
             User-defined and managed flash-protection block
         32 KB single-cycle SRAM
         Pre-programmed ROM
             Stellaris family peripheral driver library (DriverLib)
             Stellaris boot loader
     DMA Controller

36                                                         November 17, 2011

                        Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

    ARM PrimeCell 32-channel configurable DMA controller
    Support for multiple transfer modes

         Basic, for simple transfer scenarios
         Ping-pong, for continuous data flow to/from peripherals
         Scatter-gather, from a programmable list of arbitrary transfers initiated from a single request
    Dedicated channels for supported peripherals
    One channel each for receive and transmit path for bidirectional peripherals
    Dedicated channel for software-initiated transfers
    Independently configured and operated channels
    Per-channel configurable bus arbitration scheme
    Two levels of priority
    Design optimizations for improved bus access performance between DMA controller and
        the processor core
         DMA controller access is subordinate to core access
         RAM striping
         Peripheral bus segmentation
    Data sizes of 8, 16, and 32 bits
    Source and destination address increment size of byte, half-word, word, or no increment
    Maskable device requests
    Optional software initiated requests for any channel
    Interrupt on transfer completion, with a separate interrupt per channel
GPIOs
    1-33 GPIOs, depending on configuration
    5-V-tolerant in input configuration
    Two means of port access: either Advanced High-Performance Bus (AHB) with better
        back-to-back access performance, or the legacy Advanced Peripheral Bus (APB) for
        backwards-compatibility with existing code
    Fast toggle capable of a change every clock cycle for ports on AHB, every two clock cycles
        for ports on APB
    Programmable control for GPIO interrupts
         Interrupt generation masking

November 17, 2011                                     37

                   Texas Instruments-Production Data
Architectural Overview

             Edge-triggered on rising, falling, or both
             Level-sensitive on High or Low values
         Bit masking in both read and write operations through address lines
         Can initiate an ADC sample sequence
         Pins configured as digital inputs are Schmitt-triggered.
         Programmable control for GPIO pad configuration
             Weak pull-up or pull-down resistors
             2-mA, 4-mA, and 8-mA pad drive for digital communication; up to four pads can be

                 configured with an 18-mA pad drive for high-current applications
             Slew rate control for the 8-mA drive
             Open drain enables
             Digital input enables
     General-Purpose Timers
         Three General-Purpose Timer Modules (GPTM), each of which provides two 16-bit
            timers/counters. Each GPTM can be configured to operate independently:
             As a single 32-bit timer
             As one 32-bit Real-Time Clock (RTC) to event capture
             For Pulse Width Modulation (PWM)
             To trigger analog-to-digital conversions
         32-bit Timer modes
             Programmable one-shot timer
             Programmable periodic timer
             Real-Time Clock when using an external 32.768-KHz clock as the input
             User-enabled stalling when the controller asserts CPU Halt flag during debug
             ADC event trigger
         16-bit Timer modes
             General-purpose timer function with an 8-bit prescaler (for one-shot and periodic modes

                 only)
             Programmable one-shot timer
             Programmable periodic timer

38                                                         November 17, 2011

                        Texas Instruments-Production Data
                                                                                            Stellaris LM3S3634 Microcontroller

         User-enabled stalling when the controller asserts CPU Halt flag during debug
         ADC event trigger
    16-bit Input Capture modes
         Input edge count capture
         Input edge time capture
    16-bit PWM mode
         Simple PWM mode with software-programmable output inversion of the PWM signal
ARM FiRM-compliant Watchdog Timer
    32-bit down counter with a programmable load register
    Separate watchdog clock with an enable
    Programmable interrupt generation logic with interrupt masking
    Lock register protection from runaway software
    Reset generation logic with an enable/disable
    User-enabled stalling when the controller asserts the CPU Halt flag during debug
ADC
    Eight analog input channels
    Single-ended and differential-input configurations
    On-chip internal temperature sensor
    Sample rate of 500 thousand samples/second
    Flexible, configurable analog-to-digital conversion
    Four programmable sample conversion sequences from one to eight entries long, with
        corresponding conversion result FIFOs
    Flexible trigger control
         Controller (software)
         Timers
         GPIO
    Hardware averaging of up to 64 samples for improved accuracy
    Converter uses an internal 3-V reference
    Power and ground for the analog circuitry is separate from the digital power and ground

November 17, 2011                                     39

                   Texas Instruments-Production Data
Architectural Overview

                 UART
                     Two fully programmable 16C550-type UARTs with IrDA support
                     Separate 16x8 transmit (TX) and receive (RX) FIFOs to reduce CPU interrupt service loading
                     Programmable baud-rate generator allowing speeds up to 3.125 Mbps
                     Programmable FIFO length, including 1-byte deep operation providing conventional
                         double-buffered interface
                     FIFO trigger levels of 1/8, 1/4, 1/2, 3/4, and 7/8
                     Standard asynchronous communication bits for start, stop, and parity
                     Line-break generation and detection
                     Fully programmable serial interface characteristics
                         5, 6, 7, or 8 data bits
                         Even, odd, stick, or no-parity bit generation/detection
                         1 or 2 stop bit generation
                     IrDA serial-IR (SIR) encoder/decoder providing
                         Programmable use of IrDA Serial Infrared (SIR) or UART input/output
                         Support of IrDA SIR encoder/decoder functions for data rates up to 115.2 Kbps half-duplex
                         Support of normal 3/16 and low-power (1.41-2.23 s) bit durations
                         Programmable internal clock generator enabling division of reference clock by 1 to 256
                             for low-power mode bit duration
                     Dedicated Direct Memory Access (DMA) transmit and receive channels

                 Synchronous Serial Interface (SSI)
                     Master or slave operation
                     Support for Direct Memory Access (DMA)
                     Programmable clock bit rate and prescale
                     Separate transmit and receive FIFOs, 16 bits wide, 8 locations deep
                     Programmable interface operation for Freescale SPI, MICROWIRE, or Texas Instruments
                         synchronous serial interfaces
                     Programmable data frame size from 4 to 16 bits
                     Internal loopback test mode for diagnostic/debug testing

                 I2C

40                                     November 17, 2011

    Texas Instruments-Production Data
                                                                                            Stellaris LM3S3634 Microcontroller

    Two I2C modules, each with the following features:
    Devices on the I2C bus can be designated as either a master or a slave

         Supports both sending and receiving data as either a master or a slave
         Supports simultaneous master and slave operation
    Four I2C modes
         Master transmit
         Master receive
         Slave transmit
         Slave receive
    Two transmission speeds: Standard (100 Kbps) and Fast (400 Kbps)
    Master and slave interrupt generation
         Master generates interrupts when a transmit or receive operation completes (or aborts

             due to an error)
         Slave generates interrupts when data has been sent or requested by a master
    Master with arbitration and clock synchronization, multimaster support, and 7-bit addressing
        mode
USB
    Standards-based
    USB 2.0 full-speed (12 Mbps) and low-speed (1.5 Mbps) operation
    USB Device or Host mode
    Integrated PHY
    4 transfer types: Control, Interrupt, Bulk, and Isochronous
    8 endpoints
         1 dedicated control IN endpoint and 1 dedicated control OUT endpoint
         3 configurable IN endpoints and 3 configurable OUT endpoints
    2 KB dedicated endpoint memory
         Direct memory access (DMA)
         One endpoint may be defined for double-buffered 1023-byte isochronous packet size
Power

November 17, 2011                                     41

                   Texas Instruments-Production Data
Architectural Overview

                     On-chip Low Drop-Out (LDO) voltage regulator, with programmable output user-adjustable
                         from 2.25 V to 2.75 V

                     Hibernation module handles the power-up/down 3.3 V sequencing and control for the core
                         digital logic and analog circuits

                     Low-power options on controller: Sleep and Deep-sleep modes
                     Low-power options for peripherals: software controls shutdown of individual peripherals
                     3.3-V supply brown-out detection and reporting via interrupt or reset
                 Flexible Reset Sources
                     Power-on reset (POR)
                     Reset pin assertion
                     Brown-out (BOR) detector alerts to system power drops
                     Software reset
                     Watchdog timer reset
                     Internal low drop-out (LDO) regulator output goes unregulated
                 Industrial-range 64-pin RoHS-compliant LQFP package

1.2 Target Applications

                 Remote monitoring
                 Electronic point-of-sale (POS) machines
                 Test and measurement equipment
                 Network appliances and switches
                 Factory automation
                 HVAC and building control
                 Gaming equipment
                 Motion control
                 Medical instrumentation
                 Fire and security
                 Power and energy
                 Transportation

42                                     November 17, 2011

    Texas Instruments-Production Data
                                                                                                               Stellaris LM3S3634 Microcontroller

1.3 High-Level Block Diagram

                Figure 1-1 on page 44 depicts the features on the Stellaris LM3S3634 microcontroller.

November 17, 2011                                     43

                   Texas Instruments-Production Data
Architectural Overview

Figure 1-1. Stellaris LM3S3634 Microcontroller High-Level Block Diagram

                        JTAG/SWD               ARM                                              ROM      Boot Loader
                                           CortexTM-M3                                                    DriverLib
                              System
                           Control and       (50MHz)

                              Clocks                                                  DCode bus   Flash
                        (w/ Precis. Osc.)                                                        (128KB)

                                           NVIC  MPU

                                                                                      ICode bus

                                                 System Bus

    LM3S3634                               Bus Matrix                                 SRAM
                                                                                      (32KB)

                           DMA             Advanced High-Performance Bus (AHB)        SYSTEM PERIPHERALS
                        General-                       Advanced Peripheral Bus (APB)
                         Purpose                                                       Watchdog
                        Timer (3)                                                         Timer
                                                                                            (1)
                        USB Host
                        (FS PHY)                                                      Hibernation
                                                                                         Module
                            SSI
                            (1)                                                          GPIOs
                                                                                          (1-33)

                                                                                       SERIAL PERIPHERALS

                                                                                          UART
                                                                                            (2)

                                                                                            I2C
                                                                                            (2)

                                                                                      ANALOG PERIPHERALS

                                                                                      10- Bit ADC
                                                                                        Channels
                                                                                            (8)

44                                                                                                         November 17, 2011

                        Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

1.4      Functional Overview

1.4.1    The following sections provide an overview of the features of the LM3S3634 microcontroller. The
1.4.1.1  page number in parenthesis indicates where that feature is discussed in detail. Ordering and support
1.4.1.2  information can be found in "Ordering and Contact Information" on page 771.
1.4.1.3
         ARM CortexTM-M3
1.4.1.4
         Processor Core (see page 51)

         All members of the Stellaris product family, including the LM3S3634 microcontroller, are designed
         around an ARM CortexTM-M3 processor core. The ARM Cortex-M3 processor provides the core for
         a high-performance, low-cost platform that meets the needs of minimal memory implementation,
         reduced pin count, and low-power consumption, while delivering outstanding computational
         performance and exceptional system response to interrupts.

         Memory Map (see page 70)

         A memory map lists the location of instructions and data in memory. The memory map for the
         LM3S3634 controller can be found in Table 2-4 on page 70. Register addresses are given as a
         hexadecimal increment, relative to the module's base address as shown in the memory map.

         System Timer (SysTick) (see page 93)

         Cortex-M3 includes an integrated system timer, SysTick. SysTick provides a simple, 24-bit
         clear-on-write, decrementing, wrap-on-zero counter with a flexible control mechanism. The counter
         can be used in several different ways, for example:

          An RTOS tick timer which fires at a programmable rate (for example, 100 Hz) and invokes a
             SysTick routine.

          A high-speed alarm timer using the system clock.

          A variable rate alarm or signal timer--the duration is range-dependent on the reference clock
             used and the dynamic range of the counter.

          A simple counter. Software can use this to measure time to completion and time used.

          An internal clock source control based on missing/meeting durations. The COUNTFLAG bit-field
             in the control and status register can be used to determine if an action completed within a set
             duration, as part of a dynamic clock management control loop.

         Nested Vectored Interrupt Controller (NVIC) (see page 94)

         The LM3S3634 controller includes the ARM Nested Vectored Interrupt Controller (NVIC) on the
         ARM CortexTM-M3 core. The NVIC and Cortex-M3 prioritize and handle all exceptions. All exceptions
         are handled in Handler Mode. The processor state is automatically stored to the stack on an
         exception, and automatically restored from the stack at the end of the Interrupt Service Routine
         (ISR). The vector is fetched in parallel to the state saving, which enables efficient interrupt entry.
         The processor supports tail-chaining, which enables back-to-back interrupts to be performed without
         the overhead of state saving and restoration. Software can set eight priority levels on 7 exceptions
         (system handlers) and 27 interrupts.

November 17, 2011                                     45

                   Texas Instruments-Production Data
Architectural Overview

1.4.1.5  System Control Block (SCB) (see page 96)
1.4.1.6
1.4.1.7  The SCB provides system implementation information and system control, including configuration,
         control, and reporting of system exceptions.
1.4.2
1.4.2.1  Memory Protection Unit (MPU) (see page 96)

1.4.3    The MPU supports the standard ARMv7 Protected Memory System Architecture (PMSA) model.
1.4.3.1  The MPU provides full support for protection regions, overlapping protection regions, access
         permissions, and exporting memory attributes to the system.

         Direct Memory Access (see page 287)

         The LM3S3634 microcontroller includes a Direct Memory Access (DMA) controller, known as
         micro-DMA (DMA). The DMA controller provides a way to offload data transfer tasks from the
         Cortex-M3 processor, allowing for more efficient use of the processor and the expanded available
         bus bandwidth. The DMA controller can perform transfers between memory and peripherals. It
         has dedicated channels for each supported peripheral and can be programmed to automatically
         perform transfers between peripherals and memory as the peripheral is ready to transfer more data.
         The DMA controller also supports sophisticated transfer modes such as ping-pong and
         scatter-gather, which allows the processor to set up a list of transfer tasks for the controller.

         Motor Control Peripherals

         To enhance motor control, the LM3S3634 controller features Pulse Width Modulation (PWM) outputs.

         PWM

         Pulse width modulation (PWM) is a powerful technique for digitally encoding analog signal levels.
         High-resolution counters are used to generate a square wave, and the duty cycle of the square
         wave is modulated to encode an analog signal. Typical applications include switching power supplies
         and motor control.

         On the LM3S3634, PWM motion control functionality can be achieved through:

          The motion control features of the general-purpose timers using the CCP pins

         CCP Pins (see page 401)

         The General-Purpose Timer Module's CCP (Capture Compare PWM) pins are software programmable
         to support a simple PWM mode with a software-programmable output inversion of the PWM signal.

         Analog Peripherals

         To handle analog signals, the LM3S3634 microcontroller offers an Analog-to-Digital Converter
         (ADC).

         ADC (see page 453)

         An analog-to-digital converter (ADC) is a peripheral that converts a continuous analog voltage to a
         discrete digital number.

         The LM3S3634 ADC module features 10-bit conversion resolution and supports eight input channels,
         plus an internal temperature sensor. Four buffered sample sequences allow rapid sampling of up
         to eight analog input sources without controller intervention. Each sample sequence provides flexible
         programming with fully configurable input source, trigger events, interrupt generation, and sequence
         priority.

46                                                         November 17, 2011

                        Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

1.4.4    Serial Communications Peripherals
1.4.4.1
1.4.4.2  The LM3S3634 controller supports both asynchronous and synchronous serial communications
         with:
1.4.4.3
          Two fully programmable 16C550-type UARTs

          One SSI module

          Two I2C modules

          One USB 2.0 full-speed controller

         UART (see page 488)

         A Universal Asynchronous Receiver/Transmitter (UART) is an integrated circuit used for RS-232C
         serial communications, containing a transmitter (parallel-to-serial converter) and a receiver
         (serial-to-parallel converter), each clocked separately.

         The LM3S3634 controller includes two fully programmable 16C550-type UARTs that support data
         transfer speeds up to 3.125 Mbps. (Although similar in functionality to a 16C550 UART, it is not
         register-compatible.) In addition, each UART is capable of supporting IrDA.

         Separate 16x8 transmit (TX) and receive (RX) FIFOs reduce CPU interrupt service loading. The
         UART can generate individually masked interrupts from the RX, TX, modem status, and error
         conditions. The module provides a single combined interrupt when any of the interrupts are asserted
         and are unmasked.

         SSI (see page 531)

         Synchronous Serial Interface (SSI) is a four-wire bi-directional full and low-speed communications
         interface.

         The LM3S3634 controller includes one SSI module that provides the functionality for synchronous
         serial communications with peripheral devices, and can be configured to use the Freescale SPI,
         MICROWIRE, or TI synchronous serial interface frame formats. The size of the data frame is also
         configurable, and can be set between 4 and 16 bits, inclusive.

         The SSI module performs serial-to-parallel conversion on data received from a peripheral device,
         and parallel-to-serial conversion on data transmitted to a peripheral device. The TX and RX paths
         are buffered with internal FIFOs, allowing up to eight 16-bit values to be stored independently.

         The SSI module can be configured as either a master or slave device. As a slave device, the SSI
         module can also be configured to disable its output, which allows a master device to be coupled
         with multiple slave devices.

         The SSI module also includes a programmable bit rate clock divider and prescaler to generate the
         output serial clock derived from the SSI module's input clock. Bit rates are generated based on the
         input clock and the maximum bit rate is determined by the connected peripheral.

         I2C (see page 571)
         The Inter-Integrated Circuit (I2C) bus provides bi-directional data transfer through a two-wire design
         (a serial data line SDA and a serial clock line SCL).
         The I2C bus interfaces to external I2C devices such as serial memory (RAMs and ROMs), networking
         devices, LCDs, tone generators, and so on. The I2C bus may also be used for system testing and
         diagnostic purposes in product development and manufacture.

November 17, 2011                                     47

                   Texas Instruments-Production Data
Architectural Overview

1.4.4.4  The LM3S3634 controller includes two I2C modules that provide the ability to communicate to other
1.4.5    IC devices over an I2C bus. The I2C bus supports devices that can both transmit and receive (write
1.4.5.1  and read) data.

1.4.5.2  Devices on the I2C bus can be designated as either a master or a slave. Each I2C module supports
         both sending and receiving data as either a master or a slave, and also supports the simultaneous
         operation as both a master and a slave. The four I2C modes are: Master Transmit, Master Receive,
         Slave Transmit, and Slave Receive.

         A Stellaris I2C module can operate at two speeds: Standard (100 Kbps) and Fast (400 Kbps).

         Both the I2C master and slave can generate interrupts. The I2C master generates interrupts when
         a transmit or receive operation completes (or aborts due to an error). The I2C slave generates
         interrupts when data has been sent or requested by a master.

         USB (see page 608)

         Universal Serial Bus (USB) is a serial bus standard designed to allow peripherals to be connected
         and disconnected using a standardized interface without rebooting the system.

         The LM3S3634 controller supports the USB 2.0 full-speed configuration with Device or USB Host
         mode. The specified throughput for a USB 2.0 full-speed controller is 12 Mbps.

         System Peripherals

         Programmable GPIOs (see page 348)

         General-purpose input/output (GPIO) pins offer flexibility for a variety of connections.

         The Stellaris GPIO module is comprised of five physical GPIO blocks, each corresponding to an
         individual GPIO port. The GPIO module is FiRM-compliant (compliant to the ARM Foundation IP
         for Real-Time Microcontrollers specification) and supports 1-33 programmable input/output pins.
         The number of GPIOs available depends on the peripherals being used (see "Signal
         Tables" on page 703 for the signals available to each GPIO pin).

         The GPIO module features programmable interrupt generation as either edge-triggered or
         level-sensitive on all pins, programmable control for GPIO pad configuration, and bit masking in
         both read and write operations through address lines. Pins configured as digital inputs are
         Schmitt-triggered.

         Three Programmable Timers (see page 395)

         Programmable timers can be used to count or time external events that drive the Timer input pins.

         The Stellaris General-Purpose Timer Module (GPTM) contains three GPTM blocks. Each GPTM
         block provides two 16-bit timers/counters that can be configured to operate independently as timers
         or event counters, or configured to operate as one 32-bit timer or one 32-bit Real-Time Clock (RTC).
         Timers can also be used to trigger analog-to-digital (ADC) conversions.

         When configured in 32-bit mode, a timer can run as a Real-Time Clock (RTC), one-shot timer or
         periodic timer. When in 16-bit mode, a timer can run as a one-shot timer or periodic timer, and can
         extend its precision by using an 8-bit prescaler. A 16-bit timer can also be configured for event
         capture or Pulse Width Modulation (PWM) generation.

48                                                         November 17, 2011

                        Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

1.4.5.3  Watchdog Timer (see page 429)

1.4.6    A watchdog timer can generate an interrupt or a reset when a time-out value is reached. The
1.4.6.1  watchdog timer is used to regain control when a system has failed due to a software error or to the
1.4.6.2  failure of an external device to respond in the expected way.

1.4.6.3  The Stellaris Watchdog Timer module consists of a 32-bit down counter, a programmable load
         register, interrupt generation logic, and a locking register.
1.4.7
1.4.7.1  The Watchdog Timer can be configured to generate an interrupt to the controller on its first time-out,
         and to generate a reset signal on its second time-out. Once the Watchdog Timer has been configured,
         the lock register can be written to prevent the timer configuration from being inadvertently altered.

         Memory Peripherals

         The LM3S3634 controller offers both single-cycle SRAM and single-cycle Flash memory.

         SRAM (see page 258)

         The LM3S3634 static random access memory (SRAM) controller supports 32 KB SRAM. The internal
         SRAM of the Stellaris devices starts at base address 0x2000.0000 of the device memory map. To
         reduce the number of time-consuming read-modify-write (RMW) operations, ARM has introduced
         bit-banding technology in the new Cortex-M3 processor. With a bit-band-enabled processor, certain
         regions in the memory map (SRAM and peripheral space) can use address aliases to access
         individual bits in a single, atomic operation.

         Flash (see page 259)

         The LM3S3634 Flash controller supports 128 KB of flash memory. The flash is organized as a set
         of 1-KB blocks that can be individually erased. Erasing a block causes the entire contents of the
         block to be reset to all 1s. These blocks are paired into a set of 2-KB blocks that can be individually
         protected. The blocks can be marked as read-only or execute-only, providing different levels of code
         protection. Read-only blocks cannot be erased or programmed, protecting the contents of those
         blocks from being modified. Execute-only blocks cannot be erased or programmed, and can only
         be read by the controller instruction fetch mechanism, protecting the contents of those blocks from
         being read by either the controller or by a debugger.

         ROM (see page 734)

         The LM3S3634 microcontroller ships with the Stellaris family Peripheral Driver Library conveniently
         preprogrammed in read-only memory (ROM). The Stellaris Peripheral Driver Library is a royalty-free
         software library for controlling on-chip peripherals, and includes a boot-loader capability. The library
         performs both peripheral initialization and peripheral control functions, with a choice of polled or
         interrupt-driven peripheral support, and takes full advantage of the stellar interrupt performance of
         the ARM CortexTM-M3 core. No special pragmas or custom assembly code prologue/epilogue
         functions are required. For applications that require in-field programmability, the royalty-free Stellaris
         boot loader included in the Stellaris Peripheral Driver Library can act as an application loader and
         support in-field firmware updates.

         Additional Features

         JTAG TAP Controller (see page 157)

         The Joint Test Action Group (JTAG) port is an IEEE standard that defines a Test Access Port and
         Boundary Scan Architecture for digital integrated circuits and provides a standardized serial interface
         for controlling the associated test logic. The TAP, Instruction Register (IR), and Data Registers (DR)
         can be used to test the interconnections of assembled printed circuit boards and obtain manufacturing

November 17, 2011                                     49

                   Texas Instruments-Production Data
Architectural Overview

1.4.7.2  information on the components. The JTAG Port also provides a means of accessing and controlling
1.4.7.3  design-for-test features such as I/O pin observation and control, scan testing, and debugging.
1.4.8
         The JTAG port is composed of the standard four pins: TCK, TMS, TDI, and TDO. Data is transmitted
         serially into the controller on TDI and out of the controller on TDO. The interpretation of this data is
         dependent on the current state of the TAP controller. For detailed information on the operation of
         the JTAG port and TAP controller, please refer to the IEEE Standard 1149.1-Test Access Port and
         Boundary-Scan Architecture.

         The Stellaris JTAG controller works with the ARM JTAG controller built into the Cortex-M3 core.
         This is implemented by multiplexing the TDO outputs from both JTAG controllers. ARM JTAG
         instructions select the ARM TDO output while Stellaris JTAG instructions select the Stellaris TDO
         outputs. The multiplexer is controlled by the Stellaris JTAG controller, which has comprehensive
         programming for the ARM, Stellaris, and unimplemented JTAG instructions.

         System Control and Clocks (see page 169)

         System control determines the overall operation of the device. It provides information about the
         device, controls the clocking of the device and individual peripherals, and handles reset detection
         and reporting.

         Hibernation Module (see page 236)

         The Hibernation module provides logic to switch power off to the main processor and peripherals,
         and to wake on external or time-based events. The Hibernation module includes power-sequencing
         logic, a real-time clock with a pair of match registers, low-battery detection circuitry, and interrupt
         signalling to the processor. It also includes 64 32-bit words of non-volatile memory that can be used
         for saving state during hibernation.

         Hardware Details

         Details on the pins and package can be found in the following sections:

          "Pin Diagram" on page 702

          "Signal Tables" on page 703

          "Operating Characteristics" on page 713

          "Electrical Characteristics" on page 714

          "Package Information" on page 773

50                                                         November 17, 2011

                        Texas Instruments-Production Data
                                                                                                               Stellaris LM3S3634 Microcontroller

2 The Cortex-M3 Processor

                The ARM CortexTM-M3 processor provides a high-performance, low-cost platform that meets the
                system requirements of minimal memory implementation, reduced pin count, and low power
                consumption, while delivering outstanding computational performance and exceptional system
                response to interrupts. Features include:
                 Compact core.
                 Thumb-2 instruction set, delivering the high-performance expected of an ARM core in the memory

                    size usually associated with 8- and 16-bit devices; typically in the range of a few kilobytes of
                    memory for microcontroller class applications.
                 Rapid application execution through Harvard architecture characterized by separate buses for
                    instruction and data.
                 Exceptional interrupt handling, by implementing the register manipulations required for handling
                    an interrupt in hardware.
                 Deterministic, fast interrupt processing: always 12 cycles, or just 6 cycles with tail-chaining
                 External non-maskable interrupt signal (NMI) available for immediate execution of NMI handler
                    for safety critical applications.
                 Memory protection unit (MPU) to provide a privileged mode of operation for complex applications.
                 Migration from the ARM7TM processor family for better performance and power efficiency.
                 Full-featured debug solution
                     Serial Wire JTAG Debug Port (SWJ-DP)
                     Flash Patch and Breakpoint (FPB) unit for implementing breakpoints
                     Data Watchpoint and Trigger (DWT) unit for implementing watchpoints, trigger resources,

                         and system profiling
                     Instrumentation Trace Macrocell (ITM) for support of printf style debugging
                     Trace Port Interface Unit (TPIU) for bridging to a Trace Port Analyzer
                 Optimized for single-cycle flash usage
                 Three sleep modes with clock gating for low power
                 Single-cycle multiply instruction and hardware divide
                 Atomic operations
                 ARM Thumb2 mixed 16-/32-bit instruction set
                 1.25 DMIPS/MHz

November 17, 2011                                     51

                   Texas Instruments-Production Data
The Cortex-M3 Processor

                The Stellaris family of microcontrollers builds on this core to bring high-performance 32-bit computing
                to cost-sensitive embedded microcontroller applications, such as factory automation and control,
                industrial control power devices, building and home automation, and stepper motor control.

                This chapter provides information on the Stellaris implementation of the Cortex-M3 processor,
                including the programming model, the memory model, the exception model, fault handling, and
                power management.

                For technical details on the instruction set, see the CortexTM-M3/M4 Instruction Set Technical User's
                Manual.

2.1 Block Diagram

                The Cortex-M3 processor is built on a high-performance processor core, with a 3-stage pipeline
                Harvard architecture, making it ideal for demanding embedded applications. The processor delivers
                exceptional power efficiency through an efficient instruction set and extensively optimized design,
                providing high-end processing hardware including a range of single-cycle and SIMD multiplication
                and multiply-with-accumulate capabilities, saturating arithmetic and dedicated hardware division.

                To facilitate the design of cost-sensitive devices, the Cortex-M3 processor implements tightly coupled
                system components that reduce processor area while significantly improving interrupt handling and
                system debug capabilities. The Cortex-M3 processor implements a version of the Thumb instruction
                set based on Thumb-2 technology, ensuring high code density and reduced program memory
                requirements. The Cortex-M3 instruction set provides the exceptional performance expected of a
                modern 32-bit architecture, with the high code density of 8-bit and 16-bit microcontrollers.

                The Cortex-M3 processor closely integrates a nested interrupt controller (NVIC), to deliver
                industry-leading interrupt performance. The Stellaris NVIC includes a non-maskable interrupt (NMI)
                and provides eight interrupt priority levels. The tight integration of the processor core and NVIC
                provides fast execution of interrupt service routines (ISRs), dramatically reducing interrupt latency.
                The hardware stacking of registers and the ability to suspend load-multiple and store-multiple
                operations further reduce interrupt latency. Interrupt handlers do not require any assembler stubs
                which removes code overhead from the ISRs. Tail-chaining optimization also significantly reduces
                the overhead when switching from one ISR to another. To optimize low-power designs, the NVIC
                integrates with the sleep modes, including Deep-sleep mode, which enables the entire device to be
                rapidly powered down.

52                                     November 17, 2011

    Texas Instruments-Production Data
                                                                            Stellaris LM3S3634 Microcontroller

       Figure 2-1. CPU Block Diagram

                          Nested     Interrupts        CM3 Core                ARM                           Serial
                         Vectored      Sleep                                Cortex-M3                         Wire
                         Interrupt    Debug      Instructions Data                                           Output
                         Controller                     Memory                                               Trace
                                                      Protection                                  Trace Port
                                                          Unit                                     Port (SWO)
                                                                                                Interface
                                                                                                   Unit

                                                 Flash                  Data Instrumentation
                                              Patch and             Watchpoint Trace Macrocell
                                              Breakpoint            and Trace

                         Private Peripheral                                                     ROM
                                  Bus                                                           Table

                               (internal)                                   Adv. Peripheral
                                                                                   Bus
                                Debug
                            Access Port                              Bus                        I-code bus
                                                                    Matrix                      D-code bus
                                                                                                System bus
       Serial Wire JTAG
           Debug Port

2.2    Overview

2.2.1  System-Level Interface

2.2.2  The Cortex-M3 processor provides multiple interfaces using AMBA technology to provide
       high-speed, low-latency memory accesses. The core supports unaligned data accesses and
       implements atomic bit manipulation that enables faster peripheral controls, system spinlocks, and
       thread-safe Boolean data handling.

       The Cortex-M3 processor has a memory protection unit (MPU) that provides fine-grain memory
       control, enabling applications to implement security privilege levels and separate code, data and
       stack on a task-by-task basis.

       Integrated Configurable Debug

       The Cortex-M3 processor implements a complete hardware debug solution, providing high system
       visibility of the processor and memory through either a traditional JTAG port or a 2-pin Serial Wire
       Debug (SWD) port that is ideal for microcontrollers and other small package devices. The Stellaris
       implementation replaces the ARM SW-DP and JTAG-DP with the ARM CoreSightTM-compliant
       Serial Wire JTAG Debug Port (SWJ-DP) interface. The SWJ-DP interface combines the SWD and
       JTAG debug ports into one module. See the ARM Debug Interface V5 Architecture Specification
       for details on SWJ-DP.

       For system trace, the processor integrates an Instrumentation Trace Macrocell (ITM) alongside data
       watchpoints and a profiling unit. To enable simple and cost-effective profiling of the system trace
       events, a Serial Wire Viewer (SWV) can export a stream of software-generated messages, data
       trace, and profiling information through a single pin.

November 17, 2011                                                                                                    53

                                     Texas Instruments-Production Data
The Cortex-M3 Processor

2.2.3  The Flash Patch and Breakpoint Unit (FPB) provides up to eight hardware breakpoint comparators
       that debuggers can use. The comparators in the FPB also provide remap functions of up to eight
       words in the program code in the CODE memory region. This enables applications stored in a
       read-only area of Flash memory to be patched in another area of on-chip SRAM or Flash memory.
       If a patch is required, the application programs the FPB to remap a number of addresses. When
       those addresses are accessed, the accesses are redirected to a remap table specified in the FPB
       configuration.

       For more information on the Cortex-M3 debug capabilities, see theARM Debug Interface V5
       Architecture Specification.

       Trace Port Interface Unit (TPIU)

       The TPIU acts as a bridge between the Cortex-M3 trace data from the ITM, and an off-chip Trace
       Port Analyzer, as shown in Figure 2-2 on page 54.

       Figure 2-2. TPIU Block Diagram

       Debug               ATB      Asynchronous FIFO                  Trace Out     Serial Wire
        ATB              Interface                                     (serializer)  Trace Port
       Slave
        Port                                                                           (SWO)

       APB                 APB
       Slave             Interface
        Port

2.2.4  Cortex-M3 System Component Details

       The Cortex-M3 includes the following system components:

        SysTick
           A 24-bit count-down timer that can be used as a Real-Time Operating System (RTOS) tick timer
           or as a simple counter (see "System Timer (SysTick)" on page 93).

        Nested Vectored Interrupt Controller (NVIC)
           An embedded interrupt controller that supports low latency interrupt processing (see "Nested
           Vectored Interrupt Controller (NVIC)" on page 94).

        System Control Block (SCB)

54                                                                                   November 17, 2011

                                    Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

2.3        The programming model interface to the processor. The SCB provides system implementation
           information and system control, including configuration, control, and reporting of system exceptions
2.3.1      (see "System Control Block (SCB)" on page 96).

2.3.2   Memory Protection Unit (MPU)
           Improves system reliability by defining the memory attributes for different memory regions. The
           MPU provides up to eight different regions and an optional predefined background region (see
           "Memory Protection Unit (MPU)" on page 96).

       Programming Model

       This section describes the Cortex-M3 programming model. In addition to the individual core register
       descriptions, information about the processor modes and privilege levels for software execution and
       stacks is included.

       Processor Mode and Privilege Levels for Software Execution

       The Cortex-M3 has two modes of operation:

        Thread mode
           Used to execute application software. The processor enters Thread mode when it comes out of
           reset.

        Handler mode
           Used to handle exceptions. When the processor has finished exception processing, it returns to
           Thread mode.

       In addition, the Cortex-M3 has two privilege levels:

        Unprivileged
           In this mode, software has the following restrictions:

            Limited access to the MSR and MRS instructions and no use of the CPS instruction

            No access to the system timer, NVIC, or system control block

            Possibly restricted access to memory or peripherals

        Privileged
           In this mode, software can use all the instructions and has access to all resources.

       In Thread mode, the CONTROL register (see page 69) controls whether software execution is
       privileged or unprivileged. In Handler mode, software execution is always privileged.
       Only privileged software can write to the CONTROL register to change the privilege level for software
       execution in Thread mode. Unprivileged software can use the SVC instruction to make a supervisor
       call to transfer control to privileged software.

       Stacks

       The processor uses a full descending stack, meaning that the stack pointer indicates the last stacked
       item on the memory. When the processor pushes a new item onto the stack, it decrements the stack
       pointer and then writes the item to the new memory location. The processor implements two stacks:

November 17, 2011                                     55

                   Texas Instruments-Production Data
The Cortex-M3 Processor

       the main stack and the process stack, with a pointer for each held in independent registers (see the
       SP register on page 59).

       In Thread mode, the CONTROL register (see page 69) controls whether the processor uses the
       main stack or the process stack. In Handler mode, the processor always uses the main stack. The
       options for processor operations are shown in Table 2-1 on page 56.

       Table 2-1. Summary of Processor Mode, Privilege Level, and Stack Use

       Processor Mode      Use                 Privilege Level               Stack Used
                                               Privileged or unprivileged a  Main stack or process stack a
       Thread              Applications
                                               Always privileged             Main stack
       Handler             Exception handlers

       a. See CONTROL (page 69).

2.3.3  Register Map

       Figure 2-3 on page 56 shows the Cortex-M3 register set. Table 2-2 on page 57 lists the Core
       registers. The core registers are not memory mapped and are accessed by register name, so the
       base address is n/a (not applicable) and there is no offset.

       Figure 2-3. Cortex-M3 Register Set

          Low registers           R0           General-purpose registers
                                  R1
          High registers          R2           PSP  MSP                       Banked version of SP
            Stack Pointer         R3                                         Special registers
            Link Register         R4
       Program Counter            R5
                                  R6
                                  R7           Program status register
                                  R8           Exception mask registers
                                  R9           CONTROL register
                                 R10
                                 R11
                                 R12
                             SP (R13)
                             LR (R14)
                             PC (R15)

                                PSR
                             PRIMASK
                           FAULTMASK
                             BASEPRI
                            CONTROL

56                                                                           November 17, 2011

                                  Texas Instruments-Production Data
                                                                      Stellaris LM3S3634 Microcontroller

Table 2-2. Processor Register Map

Offset Name        Type            Reset        Description                         See
                                                                                    page
-      R0          R/W                     -    Cortex General-Purpose Register 0
                                           -    Cortex General-Purpose Register 1    58
-      R1          R/W                     -    Cortex General-Purpose Register 2    58
                                           -    Cortex General-Purpose Register 3    58
-      R2          R/W                     -    Cortex General-Purpose Register 4    58
                                           -    Cortex General-Purpose Register 5    58
-      R3          R/W                     -    Cortex General-Purpose Register 6    58
                                           -    Cortex General-Purpose Register 7    58
-      R4          R/W                     -    Cortex General-Purpose Register 8    58
                                           -    Cortex General-Purpose Register 9    58
-      R5          R/W                     -    Cortex General-Purpose Register 10   58
                                           -    Cortex General-Purpose Register 11   58
-      R6          R/W                     -    Cortex General-Purpose Register 12   58
                                           -    Stack Pointer                        58
-      R7          R/W             0xFFFF.FFFF  Link Register                        59
                                           -    Program Counter                      60
-      R8          R/W             0x0100.0000  Program Status Register              61
                                   0x0000.0000  Priority Mask Register               62
-      R9          R/W             0x0000.0000  Fault Mask Register                  66
                                   0x0000.0000  Base Priority Mask Register          67
-      R10         R/W             0x0000.0000  Control Register                     68
                                                                                     69
-      R11         R/W

-      R12         R/W

-      SP          R/W

-      LR          R/W

-      PC          R/W

-      PSR         R/W

-      PRIMASK     R/W

-      FAULTMASK   R/W

-      BASEPRI     R/W

-      CONTROL     R/W

2.3.4  Register Descriptions

       This section lists and describes the Cortex-M3 registers, in the order shown in Figure 2-3 on page 56.
       The core registers are not memory mapped and are accessed by register name rather than offset.

       Note: The register type shown in the register descriptions refers to type during program execution
                 in Thread mode and Handler mode. Debug access can differ.

November 17, 2011                                                                   57

                                   Texas Instruments-Production Data
The Cortex-M3 Processor

                  Register 1: Cortex General-Purpose Register 0 (R0)
                  Register 2: Cortex General-Purpose Register 1 (R1)
                  Register 3: Cortex General-Purpose Register 2 (R2)
                  Register 4: Cortex General-Purpose Register 3 (R3)
                  Register 5: Cortex General-Purpose Register 4 (R4)
                  Register 6: Cortex General-Purpose Register 5 (R5)
                  Register 7: Cortex General-Purpose Register 6 (R6)
                  Register 8: Cortex General-Purpose Register 7 (R7)
                  Register 9: Cortex General-Purpose Register 8 (R8)
                  Register 10: Cortex General-Purpose Register 9 (R9)
                  Register 11: Cortex General-Purpose Register 10 (R10)
                  Register 12: Cortex General-Purpose Register 11 (R11)
                  Register 13: Cortex General-Purpose Register 12 (R12)
                  The Rn registers are 32-bit general-purpose registers for data operations and can be accessed
                  from either privileged or unprivileged mode.

Cortex General-Purpose Register 0 (R0)

Type R/W, reset -

       31         30   29    28   27        26   25     24         23   22   21   20   19   18   17   16

                                                             DATA

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W    R/W        R/W  R/W  R/W  R/W  R/W  R/W  R/W  R/W

Reset  -          -    -     -    -         -    -      -          -    -    -    -    -    -    -    -

       15         14   13    12   11        10   9      8          7    6    5    4    3    2    1    0

                                                             DATA

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W    R/W        R/W  R/W  R/W  R/W  R/W  R/W  R/W  R/W

Reset  -          -    -     -    -         -    -      -          -    -    -    -    -    -    -    -

       Bit/Field       Name           Type       Reset  Description
         31:0          DATA           R/W           -   Register data.

58                                                                                          November 17, 2011

                                        Texas Instruments-Production Data
                                                                               Stellaris LM3S3634 Microcontroller

                  Register 14: Stack Pointer (SP)

                  The Stack Pointer (SP) is register R13. In Thread mode, the function of this register changes
                  depending on the ASP bit in the Control Register (CONTROL) register. When the ASP bit is clear,
                  this register is the Main Stack Pointer (MSP). When the ASP bit is set, this register is the Process
                  Stack Pointer (PSP). On reset, the ASP bit is clear, and the processor loads the MSP with the value
                  from address 0x0000.0000. The MSP can only be accessed in privileged mode; the PSP can be
                  accessed in either privileged or unprivileged mode.

Stack Pointer (SP)

Type R/W, reset -

       31          30  29    28   27        26   25     24       23   22   21   20   19                  18   17   16

                                                             SP

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W    R/W      R/W  R/W  R/W  R/W  R/W                 R/W  R/W  R/W

Reset  -           -   -     -    -         -    -      -        -    -    -    -    -                   -    -    -

       15          14  13    12   11        10   9      8        7    6    5    4    3                   2    1    0

                                                             SP

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W    R/W      R/W  R/W  R/W  R/W  R/W                 R/W  R/W  R/W

Reset  -           -   -     -    -         -    -      -        -    -    -    -    -                   -    -    -

       Bit/Field       Name           Type       Reset  Description
         31:0            SP           R/W           -   This field is the address of the stack pointer.

November 17, 2011                                                                                                      59

                                       Texas Instruments-Production Data
The Cortex-M3 Processor

                  Register 15: Link Register (LR)

                  The Link Register (LR) is register R14, and it stores the return information for subroutines, function
                  calls, and exceptions. LR can be accessed from either privileged or unprivileged mode.

                  EXC_RETURN is loaded into LR on exception entry. See Table 2-10 on page 86 for the values and
                  description.

Link Register (LR)

Type R/W, reset 0xFFFF.FFFF

       31         30   29    28   27        26   25   24         23   22   21             20   19   18   17   16

                                                           LINK

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W  R/W        R/W  R/W  R/W            R/W  R/W  R/W  R/W  R/W

Reset  1          1    1     1    1         1    1    1          1    1    1              1    1    1    1    1

       15         14   13    12   11        10   9    8          7    6    5              4    3    2    1    0

                                                           LINK

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W  R/W        R/W  R/W  R/W            R/W  R/W  R/W  R/W  R/W

Reset  1          1    1     1    1         1    1    1          1    1    1              1    1    1    1    1

       Bit/Field       Name           Type       Reset Description
         31:0          LINK
                                       R/W 0xFFFF.FFFF This field is the return address.

60                                                                                                  November 17, 2011

                                       Texas Instruments-Production Data
                                                                               Stellaris LM3S3634 Microcontroller

                  Register 16: Program Counter (PC)

                  The Program Counter (PC) is register R15, and it contains the current program address. On reset,
                  the processor loads the PC with the value of the reset vector, which is at address 0x0000.0004. Bit
                  0 of the reset vector is loaded into the THUMB bit of the EPSR at reset and must be 1. The PC register
                  can be accessed in either privileged or unprivileged mode.

Program Counter (PC)

Type R/W, reset -

       31          30  29    28   27        26   25     24       23   22   21   20   19                18   17   16

                                                             PC

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W    R/W      R/W  R/W  R/W  R/W  R/W               R/W  R/W  R/W

Reset  -           -   -     -    -         -    -      -        -    -    -    -                   -  -    -    -

       15          14  13    12   11        10   9      8        7    6    5    4                   3  2    1    0

                                                             PC

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W    R/W      R/W  R/W  R/W  R/W  R/W               R/W  R/W  R/W

Reset  -           -   -     -    -         -    -      -        -    -    -    -                   -  -    -    -

       Bit/Field       Name           Type       Reset  Description
         31:0           PC            R/W           -   This field is the current program address.

November 17, 2011                                                                                                    61

                                       Texas Instruments-Production Data
The Cortex-M3 Processor

           Register 17: Program Status Register (PSR)
           Note: This register is also referred to as xPSR.
           The Program Status Register (PSR) has three functions, and the register bits are assigned to the
           different functions:

            Application Program Status Register (APSR), bits 31:27,

            Execution Program Status Register (EPSR), bits 26:24, 15:10

            Interrupt Program Status Register (IPSR), bits 6:0

           The PSR, IPSR, and EPSR registers can only be accessed in privileged mode; the APSR register
           can be accessed in either privileged or unprivileged mode.

           APSR contains the current state of the condition flags from previous instruction executions.

           EPSR contains the Thumb state bit and the execution state bits for the If-Then (IT) instruction or
           the Interruptible-Continuable Instruction (ICI) field for an interrupted load multiple or store multiple
           instruction. Attempts to read the EPSR directly through application software using the MSR instruction
           always return zero. Attempts to write the EPSR using the MSR instruction in application software
           are always ignored. Fault handlers can examine the EPSR value in the stacked PSR to determine
           the operation that faulted (see "Exception Entry and Return" on page 84).

           IPSR contains the exception type number of the current Interrupt Service Routine (ISR).

           These registers can be accessed individually or as a combination of any two or all three registers,
           using the register name as an argument to the MSR or MRS instructions. For example, all of the
           registers can be read using PSR with the MRS instruction, or APSR only can be written to using
           APSR with the MSR instruction. page 62 shows the possible register combinations for the PSR. See
           the MRS and MSR instruction descriptions in the CortexTM-M3/M4 Instruction Set Technical User's
           Manual for more information about how to access the program status registers.

           Table 2-3. PSR Register Combinations

           Register                                 Type                        Combination
           PSR                                      R/Wa, b                     APSR, EPSR, and IPSR

           IEPSR                                    RO                          EPSR and IPSR
           IAPSR                                    R/Wa                        APSR and IPSR
           EAPSR                                    R/Wb                        APSR and EPSR

           a. The processor ignores writes to the IPSR bits.
           b. Reads of the EPSR bits return zero, and the processor ignores writes to these bits.

Program Status Register (PSR)

Type R/W, reset 0x0100.0000

       31  30     29                   28  27   26            25  24        23  22  21         20     19        18  17  16

       N   Z      C                    V   Q        ICI / IT      THUMB                            reserved

Type R/W   R/W  R/W          R/W           R/W  RO            RO  RO        RO  RO  RO  RO            RO        RO  RO  RO

Reset  0   0      0                    0   0    0             0   1         0   0   0          0             0  0   0   0

       15  14     13                   12  11   10            9   8         7   6   5          4             3  2   1   0

                             ICI / IT                             reserved                         ISRNUM

Type RO    RO     RO                   RO  RO   RO            RO  RO        RO  RO  RO  RO            RO        RO  RO  RO

Reset  0   0      0                    0   0    0             0   0         0   0   0          0             0  0   0   0

62                                                                                                              November 17, 2011

                                                Texas Instruments-Production Data
                                                            Stellaris LM3S3634 Microcontroller

Bit/Field          Name  Type  Reset  Description
   31                N   R/W      0
   30                 Z  R/W      0   APSR Negative or Less Flag
   29                C   R/W      0
                                      Value Description
   28                 V  R/W      0   1 The previous operation result was negative or less than.
   27                Q   R/W      0   0 The previous operation result was positive, zero, greater than,

                                                or equal.

                                      The value of this bit is only meaningful when accessing PSR or APSR.

                                      APSR Zero Flag

                                      Value Description
                                      1 The previous operation result was zero.
                                      0 The previous operation result was non-zero.

                                      The value of this bit is only meaningful when accessing PSR or APSR.

                                      APSR Carry or Borrow Flag

                                      Value Description
                                      1 The previous add operation resulted in a carry bit or the previous

                                                subtract operation did not result in a borrow bit.
                                      0 The previous add operation did not result in a carry bit or the

                                                previous subtract operation resulted in a borrow bit.

                                      The value of this bit is only meaningful when accessing PSR or APSR.

                                      APSR Overflow Flag

                                      Value Description
                                      1 The previous operation resulted in an overflow.
                                      0 The previous operation did not result in an overflow.

                                      The value of this bit is only meaningful when accessing PSR or APSR.

                                      APSR DSP Overflow and Saturation Flag

                                      Value Description
                                      1 DSP Overflow or saturation has occurred.
                                      0 DSP overflow or saturation has not occurred since reset or since

                                                the bit was last cleared.

                                      The value of this bit is only meaningful when accessing PSR or APSR.
                                      This bit is cleared by software using an MRS instruction.

November 17, 2011                                           63

                         Texas Instruments-Production Data
The Cortex-M3 Processor

    Bit/Field   Name      Type  Reset  Description
     26:25      ICI / IT   RO    0x0
                                       EPSR ICI / IT status
       24      THUMB       RO      1   These bits, along with bits 15:10, contain the Interruptible-Continuable
                                       Instruction (ICI) field for an interrupted load multiple or store multiple
     23:16     reserved    RO   0x00   instruction or the execution state bits of the IT instruction.
     15:10      ICI / IT   RO    0x0   When EPSR holds the ICI execution state, bits 26:25 are zero.
                                       The If-Then block contains up to four instructions following an IT
       9:7     reserved    RO    0x0   instruction. Each instruction in the block is conditional. The conditions
                                       for the instructions are either all the same, or some can be the inverse
                                       of others. See the CortexTM-M3/M4 Instruction Set Technical User's
                                       Manual for more information.
                                       The value of this field is only meaningful when accessing PSR or EPSR.

                                       EPSR Thumb State
                                       This bit indicates the Thumb state and should always be set.
                                       The following can clear the THUMB bit:

                                        The BLX, BX and POP{PC} instructions

                                        Restoration from the stacked xPSR value on an exception return

                                        Bit 0 of the vector value on an exception entry or reset

                                       Attempting to execute instructions when this bit is clear results in a fault
                                       or lockup. See "Lockup" on page 88 for more information.
                                       The value of this bit is only meaningful when accessing PSR or EPSR.

                                       Software should not rely on the value of a reserved bit. To provide
                                       compatibility with future products, the value of a reserved bit should be
                                       preserved across a read-modify-write operation.

                                       EPSR ICI / IT status
                                       These bits, along with bits 26:25, contain the Interruptible-Continuable
                                       Instruction (ICI) field for an interrupted load multiple or store multiple
                                       instruction or the execution state bits of the IT instruction.
                                       When an interrupt occurs during the execution of an LDM, STM, PUSH
                                       or POP instruction, the processor stops the load multiple or store multiple
                                       instruction operation temporarily and stores the next register operand
                                       in the multiple operation to bits 15:12. After servicing the interrupt, the
                                       processor returns to the register pointed to by bits 15:12 and resumes
                                       execution of the multiple load or store instruction. When EPSR holds
                                       the ICI execution state, bits 11:10 are zero.
                                       The If-Then block contains up to four instructions following a 16-bit IT
                                       instruction. Each instruction in the block is conditional. The conditions
                                       for the instructions are either all the same, or some can be the inverse
                                       of others. See the CortexTM-M3/M4 Instruction Set Technical User's
                                       Manual for more information.
                                       The value of this field is only meaningful when accessing PSR or EPSR.

                                       Software should not rely on the value of a reserved bit. To provide
                                       compatibility with future products, the value of a reserved bit should be
                                       preserved across a read-modify-write operation.

64                                                           November 17, 2011

                          Texas Instruments-Production Data
                                                                  Stellaris LM3S3634 Microcontroller

Bit/Field           Name   Type  Reset  Description
   6:0             ISRNUM   RO   0x00
                                        IPSR ISR Number

                                        This field contains the exception type number of the current Interrupt
                                        Service Routine (ISR).

                                        Value        Description

                                        0x00         Thread mode

                                        0x01         Reserved

                                        0x02         NMI

                                        0x03         Hard fault

                                        0x04         Memory management fault

                                        0x05         Bus fault

                                        0x06         Usage fault

                                        0x07-0x0A Reserved

                                        0x0B         SVCall

                                        0x0C         Reserved for Debug

                                        0x0D         Reserved

                                        0x0E         PendSV

                                        0x0F         SysTick

                                        0x10         Interrupt Vector 0

                                        0x11         Interrupt Vector 1

                                        ...          ...

                                        0x3F         Interrupt Vector 47

                                        0x40-0x7F Reserved

                                        See "Exception Types" on page 79 for more information.
                                        The value of this field is only meaningful when accessing PSR or IPSR.

November 17, 2011                                                             65

                           Texas Instruments-Production Data
The Cortex-M3 Processor

                  Register 18: Priority Mask Register (PRIMASK)

                  The PRIMASK register prevents activation of all exceptions with programmable priority. Reset,
                  non-maskable interrupt (NMI), and hard fault are the only exceptions with fixed priority. Exceptions
                  should be disabled when they might impact the timing of critical tasks. This register is only accessible
                  in privileged mode. The MSR and MRS instructions are used to access the PRIMASK register, and
                  the CPS instruction may be used to change the value of the PRIMASK register. See the
                  CortexTM-M3/M4 Instruction Set Technical User's Manual for more information on these instructions.
                  For more information on exception priority levels, see "Exception Types" on page 79.

Priority Mask Register (PRIMASK)

Type R/W, reset 0x0000.0000

       31         30  29     28   27        26  25  24        23    22   21  20  19  18  17                           16

                                                       reserved

Type RO           RO  RO     RO   RO        RO  RO  RO        RO    RO   RO  RO  RO  RO  RO                           RO

Reset  0          0   0      0    0         0   0   0            0  0    0   0   0   0   0                            0

       15         14  13     12   11        10  9   8            7  6    5   4   3   2   1                            0

                                                    reserved                                 PRIMASK

Type RO           RO  RO     RO   RO        RO  RO  RO        RO    RO   RO  RO  RO  RO  RO                           R/W

Reset  0          0   0      0    0         0   0   0            0  0    0   0   0   0   0                            0

       Bit/Field        Name          Type      Reset Description
         31:1         reserved
                                      RO 0x0000.000 Software should not rely on the value of a reserved bit. To provide
           0          PRIMASK                                       compatibility with future products, the value of a reserved bit should be
                                                                    preserved across a read-modify-write operation.

                                      R/W       0   Priority Mask

                                                       Value Description

                                                       1 Prevents the activation of all exceptions with configurable
                                                                priority.

                                                       0 No effect.

66                                                                                   November 17, 2011

                                      Texas Instruments-Production Data
                                                                             Stellaris LM3S3634 Microcontroller

                  Register 19: Fault Mask Register (FAULTMASK)

                  The FAULTMASK register prevents activation of all exceptions except for the Non-Maskable Interrupt
                  (NMI). Exceptions should be disabled when they might impact the timing of critical tasks. This register
                  is only accessible in privileged mode. The MSR and MRS instructions are used to access the
                  FAULTMASK register, and the CPS instruction may be used to change the value of the FAULTMASK
                  register. See the CortexTM-M3/M4 Instruction Set Technical User's Manual for more information on
                  these instructions. For more information on exception priority levels, see "Exception
                  Types" on page 79.

Fault Mask Register (FAULTMASK)

Type R/W, reset 0x0000.0000

       31         30  29     28   27        26  25  24        23    22   21  20  19  18  17                         16

                                                       reserved

Type RO           RO  RO     RO   RO        RO  RO  RO        RO    RO   RO  RO  RO  RO  RO                         RO

Reset  0          0   0      0    0         0   0   0            0  0    0   0   0   0   0                          0

       15         14  13     12   11        10  9   8            7  6    5   4   3   2   1                          0

                                                    reserved                                 FAULTMASK

Type RO           RO  RO     RO   RO        RO  RO  RO        RO    RO   RO  RO  RO  RO  RO                         R/W

Reset  0          0   0      0    0         0   0   0            0  0    0   0   0   0   0                          0

       Bit/Field          Name        Type      Reset Description
         31:1           reserved
                                      RO 0x0000.000 Software should not rely on the value of a reserved bit. To provide
           0          FAULTMASK                                     compatibility with future products, the value of a reserved bit should be
                                                                    preserved across a read-modify-write operation.

                                      R/W       0   Fault Mask

                                                       Value Description
                                                       1 Prevents the activation of all exceptions except for NMI.
                                                       0 No effect.

                                                    The processor clears the FAULTMASK bit on exit from any exception
                                                    handler except the NMI handler.

November 17, 2011                                                                                                       67

                                      Texas Instruments-Production Data
The Cortex-M3 Processor

                  Register 20: Base Priority Mask Register (BASEPRI)

                  The BASEPRI register defines the minimum priority for exception processing. When BASEPRI is
                  set to a nonzero value, it prevents the activation of all exceptions with the same or lower priority
                  level as the BASEPRI value. Exceptions should be disabled when they might impact the timing of
                  critical tasks. This register is only accessible in privileged mode. For more information on exception
                  priority levels, see "Exception Types" on page 79.

Base Priority Mask Register (BASEPRI)

Type R/W, reset 0x0000.0000

       31         30  29        28  27                26  25   24  23          22       21   20  19             18        17  16

                                                                  reserved

Type RO           RO  RO  RO        RO                RO  RO   RO  RO          RO       RO   RO  RO             RO        RO  RO

Reset  0          0   0         0            0        0   0    0            0  0        0    0   0              0         0         0

       15         14  13        12  11                10  9    8            7  6        5    4   3              2         1         0

                                   reserved                                    BASEPRI               reserved

Type RO           RO  RO  RO        RO                RO  RO   RO  R/W         R/W      R/W  RO  RO             RO        RO  RO

Reset  0          0   0         0            0        0   0    0            0  0        0    0   0              0         0         0

       Bit/Field        Name                    Type      Reset Description
         31:8         reserved                   RO
                                                          0x0000.00 Software should not rely on the value of a reserved bit. To provide
          7:5         BASEPRI                   R/W                         compatibility with future products, the value of a reserved bit should be
                                                                            preserved across a read-modify-write operation.

                                                          0x0  Base Priority

                                                               Any exception that has a programmable priority level with the same or
                                                               lower priority as the value of this field is masked. The PRIMASK register
                                                               can be used to mask all exceptions with programmable priority levels.
                                                               Higher priority exceptions have lower priority levels.

                                                                  Value Description
                                                                  0x0 All exceptions are unmasked.
                                                                  0x1 All exceptions with priority level 1-7 are masked.
                                                                  0x2 All exceptions with priority level 2-7 are masked.
                                                                  0x3 All exceptions with priority level 3-7 are masked.
                                                                  0x4 All exceptions with priority level 4-7 are masked.
                                                                  0x5 All exceptions with priority level 5-7 are masked.
                                                                  0x6 All exceptions with priority level 6-7 are masked.
                                                                  0x7 All exceptions with priority level 7 are masked.

       4:0            reserved                  RO        0x0  Software should not rely on the value of a reserved bit. To provide

                                                               compatibility with future products, the value of a reserved bit should be

                                                               preserved across a read-modify-write operation.

68                                                                                                   November 17, 2011

                                                Texas Instruments-Production Data
                                                                                         Stellaris LM3S3634 Microcontroller

                  Register 21: Control Register (CONTROL)

                  The CONTROL register controls the stack used and the privilege level for software execution when
                  the processor is in Thread mode. This register is only accessible in privileged mode.

                  Handler mode always uses MSP, so the processor ignores explicit writes to the ASP bit of the
                  CONTROL register when in Handler mode. The exception entry and return mechanisms automatically
                  update the CONTROL register based on the EXC_RETURN value (see Table 2-10 on page 86).
                  In an OS environment, threads running in Thread mode should use the process stack and the kernel
                  and exception handlers should use the main stack. By default, Thread mode uses MSP. To switch
                  the stack pointer used in Thread mode to PSP, either use the MSR instruction to set the ASP bit, as
                  detailed in the CortexTM-M3/M4 Instruction Set Technical User's Manual, or perform an exception
                  return to Thread mode with the appropriate EXC_RETURN value, as shown in Table 2-10 on page 86.

                  Note: When changing the stack pointer, software must use an ISB instruction immediately after
                            the MSR instruction, ensuring that instructions after the ISB execute use the new stack
                            pointer. See the CortexTM-M3/M4 Instruction Set Technical User's Manual.

Control Register (CONTROL)

Type R/W, reset 0x0000.0000

       31         30  29        28  27        26  25  24          23           22    21     20         19  18  17               16

                                                                  reserved

Type RO           RO  RO  RO        RO        RO  RO  RO          RO           RO    RO     RO         RO  RO  RO               RO

Reset  0          0   0         0   0         0   0            0            0  0     0      0          0   0   0                0

       15         14  13        12  11        10  9            8            7  6     5      4          3   2   1                0

                                                     reserved                                                  ASP              TMPL

Type RO           RO  RO  RO        RO        RO  RO  RO          RO           RO    RO     RO         RO  RO  R/W              R/W

Reset  0          0   0         0   0         0   0            0            0  0     0      0          0   0   0                0

       Bit/Field       Name             Type      Reset Description
         31:2         reserved
           1                            RO 0x0000.000 Software should not rely on the value of a reserved bit. To provide
                        ASP                                           compatibility with future products, the value of a reserved bit should be
           0                                                          preserved across a read-modify-write operation.
                       TMPL
                                        R/W       0            Active Stack Pointer

                                                                  Value Description
                                                                  1 PSP is the current stack pointer.
                                                                  0 MSP is the current stack pointer

                                                               In Handler mode, this bit reads as zero and ignores writes. The
                                                               Cortex-M3 updates this bit automatically on exception return.

                                        R/W       0            Thread Mode Privilege Level

                                                                  Value Description
                                                                  1 Unprivileged software can be executed in Thread mode.
                                                                  0 Only privileged software can be executed in Thread mode.

November 17, 2011                                                                                                                   69

                                        Texas Instruments-Production Data
The Cortex-M3 Processor

2.3.5        Exceptions and Interrupts
2.3.6
             The Cortex-M3 processor supports interrupts and system exceptions. The processor and the Nested
             Vectored Interrupt Controller (NVIC) prioritize and handle all exceptions. An exception changes the
             normal flow of software control. The processor uses Handler mode to handle all exceptions except
             for reset. See "Exception Entry and Return" on page 84 for more information.

             The NVIC registers control interrupt handling. See "Nested Vectored Interrupt Controller
             (NVIC)" on page 94 for more information.

             Data Types

             The Cortex-M3 supports 32-bit words, 16-bit halfwords, and 8-bit bytes. The processor also supports
             64-bit data transfer instructions. All instruction and data memory accesses are little endian. See
             "Memory Regions, Types and Attributes" on page 72 for more information.

2.4 Memory Model

                This section describes the processor memory map, the behavior of memory accesses, and the
                bit-banding features. The processor has a fixed memory map that provides up to 4 GB of addressable
                memory.

                The memory map for the LM3S3634 controller is provided in Table 2-4 on page 70. In this manual,
                register addresses are given as a hexadecimal increment, relative to the module's base address
                as shown in the memory map.

                The regions for SRAM and peripherals include bit-band regions. Bit-banding provides atomic
                operations to bit data (see "Bit-Banding" on page 74).

                The processor reserves regions of the Private peripheral bus (PPB) address range for core peripheral
                registers (see "Cortex-M3 Peripherals" on page 93).

                Note: Within the memory map, all reserved space returns a bus fault when read or written.

Table 2-4. Memory Map

Start                    End          Description                                            For details,
                                                                                             see page ...
Memory                   0x0001.FFFF  On-chip Flash
0x0000.0000              0x00FF.FFFF  Reserved                                               259
0x0002.0000              0x1FFF.FFFF  Reserved for ROM                                       -
0x0100.0000              0x2000.7FFF  Bit-banded on-chip SRAM                                259
0x2000.0000              0x21FF.FFFF  Reserved                                               258
0x2000.8000              0x220F.FFFF  Bit-band alias of bit-banded on-chip SRAM starting at  -
0x2200.0000                           0x2000.0000                                            258
                                      Reserved
0x2210.0000              0x3FFF.FFFF                                                         -
FiRM Peripherals                      Watchdog timer 0
0x4000.0000              0x4000.0FFF  Reserved                                               432
0x4000.1000              0x4000.3FFF  GPIO Port A                                            -
0x4000.4000              0x4000.4FFF  GPIO Port B                                            358
0x4000.5000              0x4000.5FFF  GPIO Port C                                            358
0x4000.6000              0x4000.6FFF  GPIO Port D                                            358
0x4000.7000              0x4000.7FFF                                                         358

70                                                                       November 17, 2011

                                      Texas Instruments-Production Data
                                                                        Stellaris LM3S3634 Microcontroller

Table 2-4. Memory Map (continued)

Start                   End          Description                                          For details,
                                                                                          see page ...
0x4000.8000             0x4000.8FFF  SSI0                                                 544
0x4000.9000             0x4000.BFFF  Reserved                                             -
0x4000.C000             0x4000.CFFF  UART0                                                496
0x4000.D000             0x4000.DFFF  UART1                                                496
0x4000.E000             0x4001.FFFF  Reserved                                             -
Peripherals
0x4002.0000             0x4002.0FFF  I2C 0                                                586
0x4002.1000             0x4002.1FFF
0x4002.2000             0x4002.3FFF  I2C 1                                                586
0x4002.4000             0x4002.4FFF
0x4002.5000             0x4002.FFFF  Reserved                                             -
0x4003.0000             0x4003.0FFF
0x4003.1000             0x4003.1FFF  GPIO Port E                                          358
0x4003.2000             0x4003.2FFF
0x4003.3000             0x4003.7FFF  Reserved                                             -
0x4003.8000             0x4003.8FFF
0x4003.9000             0x4004.FFFF  Timer 0                                              406
0x4005.0000             0x4005.0FFF
0x4005.1000             0x4005.7FFF  Timer 1                                              406
0x4005.8000             0x4005.8FFF
0x4005.9000             0x4005.9FFF  Timer 2                                              406
0x4005.A000             0x4005.AFFF
0x4005.B000             0x4005.BFFF  Reserved                                             -
0x4005.C000             0x4005.CFFF
0x4005.D000             0x400F.BFFF  ADC0                                                 462
0x400F.C000             0x400F.CFFF
0x400F.D000             0x400F.DFFF  Reserved                                             -
0x400F.E000             0x400F.EFFF
0x400F.F000             0x400F.FFFF  USB                                                  624
0x4010.0000             0x41FF.FFFF
0x4200.0000             0x43FF.FFFF  Reserved                                             -
0x4400.0000             0xDFFF.FFFF
Private Peripheral Bus               GPIO Port A (AHB aperture)                           358
0xE000.0000             0xE000.0FFF
0xE000.1000             0xE000.1FFF  GPIO Port B (AHB aperture)                           358
0xE000.2000             0xE000.2FFF
0xE000.3000             0xE000.DFFF  GPIO Port C (AHB aperture)                           358
0xE000.E000             0xE000.EFFF
0xE000.F000             0xE003.FFFF  GPIO Port D (AHB aperture)                           358
0xE004.0000             0xE004.0FFF
0xE004.1000             0xFFFF.FFFF  GPIO Port E (AHB aperture)                           358

                                     Reserved                                             -

                                     Hibernation Module                                   244

                                     Flash memory control                                 264

                                     System control                                       183

                                     DMA                                                 307

                                     Reserved                                             -

                                     Bit-banded alias of 0x4000.0000 through 0x400F.FFFF  -

                                     Reserved                                             -

                                     Instrumentation Trace Macrocell (ITM)                53

                                     Data Watchpoint and Trace (DWT)                      53

                                     Flash Patch and Breakpoint (FPB)                     53

                                     Reserved                                             -

                                     Cortex-M3 Peripherals (SysTick, NVIC, MPU and SCB)   101

                                     Reserved                                             -

                                     Trace Port Interface Unit (TPIU)                     54

                                     Reserved                                             -

November 17, 2011                                                                              71

                                     Texas Instruments-Production Data
The Cortex-M3 Processor

2.4.1  Memory Regions, Types and Attributes
2.4.2
2.4.3  The memory map and the programming of the MPU split the memory map into regions. Each region
       has a defined memory type, and some regions have additional memory attributes. The memory
       type and attributes determine the behavior of accesses to the region.

       The memory types are:

        Normal: The processor can re-order transactions for efficiency and perform speculative reads.

        Device: The processor preserves transaction order relative to other transactions to Device or
           Strongly Ordered memory.

        Strongly Ordered: The processor preserves transaction order relative to all other transactions.

       The different ordering requirements for Device and Strongly Ordered memory mean that the memory
       system can buffer a write to Device memory but must not buffer a write to Strongly Ordered memory.

       An additional memory attribute is Execute Never (XN), which means the processor prevents
       instruction accesses. A fault exception is generated only on execution of an instruction executed
       from an XN region.

       Memory System Ordering of Memory Accesses

       For most memory accesses caused by explicit memory access instructions, the memory system
       does not guarantee that the order in which the accesses complete matches the program order of
       the instructions, providing the order does not affect the behavior of the instruction sequence. Normally,
       if correct program execution depends on two memory accesses completing in program order,
       software must insert a memory barrier instruction between the memory access instructions (see
       "Software Ordering of Memory Accesses" on page 73).

       However, the memory system does guarantee ordering of accesses to Device and Strongly Ordered
       memory. For two memory access instructions A1 and A2, if both A1 and A2 are accesses to either
       Device or Strongly Ordered memory, and if A1 occurs before A2 in program order, A1 is always
       observed before A2.

       Behavior of Memory Accesses

       Table 2-5 on page 72 shows the behavior of accesses to each region in the memory map. See
       "Memory Regions, Types and Attributes" on page 72 for more information on memory types and
       the XN attribute. Stellaris devices may have reserved memory areas within the address ranges
       shown below (refer to Table 2-4 on page 70 for more information).

       Table 2-5. Memory Access Behavior

       Address Range     Memory Region         Memory Type Execute          Description
                                                                     Never
                                                                     (XN)   This executable region is for program code.
                                                                            Data can also be stored here.
       0x0000.0000 - 0x1FFF.FFFF Code          Normal  -                    This executable region is for data. Code
       0x2000.0000 - 0x3FFF.FFFF SRAM                                       can also be stored here. This region
                                               Normal  -                    includes bit band and bit band alias areas
                                                                            (see Table 2-6 on page 74).
       0x4000.0000 - 0x5FFF.FFFF Peripheral    Device  XN                   This region includes bit band and bit band
       0x6000.0000 - 0x9FFF.FFFF External RAM                               alias areas (see Table 2-7 on page 75).
                                               Normal  -                    This executable region is for data.

72                                                                          November 17, 2011

                         Texas Instruments-Production Data
                                                                       Stellaris LM3S3634 Microcontroller

       Table 2-5. Memory Access Behavior (continued)

       Address Range     Memory Region    Memory Type Execute          Description
                                                                Never
                                                                (XN)   This region is for external device memory.
                                                                       This region includes the NVIC, system
       0xA000.0000 - 0xDFFF.FFFF External device Device      XN        timer, and system control block.
                                                                       -
       0xE000.0000- 0xE00F.FFFF Private peripheral Strongly  XN

                         bus              Ordered

       0xE010.0000- 0xFFFF.FFFF Reserved  -                  -

       The Code, SRAM, and external RAM regions can hold programs. However, it is recommended that
       programs always use the Code region because the Cortex-M3 has separate buses that can perform
       instruction fetches and data accesses simultaneously.

       The MPU can override the default memory access behavior described in this section. For more
       information, see "Memory Protection Unit (MPU)" on page 96.

       The Cortex-M3 prefetches instructions ahead of execution and speculatively prefetches from branch
       target addresses.

2.4.4  Software Ordering of Memory Accesses

       The order of instructions in the program flow does not always guarantee the order of the
       corresponding memory transactions for the following reasons:

        The processor can reorder some memory accesses to improve efficiency, providing this does
           not affect the behavior of the instruction sequence.

        The processor has multiple bus interfaces.

        Memory or devices in the memory map have different wait states.

        Some memory accesses are buffered or speculative.

       "Memory System Ordering of Memory Accesses" on page 72 describes the cases where the memory
       system guarantees the order of memory accesses. Otherwise, if the order of memory accesses is
       critical, software must include memory barrier instructions to force that ordering. The Cortex-M3
       has the following memory barrier instructions:

        The Data Memory Barrier (DMB) instruction ensures that outstanding memory transactions
           complete before subsequent memory transactions.

        The Data Synchronization Barrier (DSB) instruction ensures that outstanding memory transactions
           complete before subsequent instructions execute.

        The Instruction Synchronization Barrier (ISB) instruction ensures that the effect of all completed
           memory transactions is recognizable by subsequent instructions.

       Memory barrier instructions can be used in the following situations:

        MPU programming

       If the MPU settings are changed and the change must be effective on the very next instruction,
           use a DSB instruction to ensure the effect of the MPU takes place immediately at the end of
           context switching.

November 17, 2011                                                                                73

                         Texas Instruments-Production Data
The Cortex-M3 Processor

2.4.5       Use an ISB instruction to ensure the new MPU setting takes effect immediately after
               programming the MPU region or regions, if the MPU configuration code was accessed using
               a branch or call. If the MPU configuration code is entered using exception mechanisms, then
               an ISB instruction is not required.

        Vector table

           If the program changes an entry in the vector table and then enables the corresponding exception,
           use a DMB instruction between the operations. The DMB instruction ensures that if the exception
           is taken immediately after being enabled, the processor uses the new exception vector.

        Self-modifying code

           If a program contains self-modifying code, use an ISB instruction immediately after the code
           modification in the program. The ISB instruction ensures subsequent instruction execution uses
           the updated program.

        Memory map switching

           If the system contains a memory map switching mechanism, use a DSB instruction after switching
           the memory map in the program. The DSB instruction ensures subsequent instruction execution
           uses the updated memory map.

        Dynamic exception priority change

           When an exception priority has to change when the exception is pending or active, use DSB
           instructions after the change. The change then takes effect on completion of the DSB instruction.

       Memory accesses to Strongly Ordered memory, such as the System Control Block, do not require
       the use of DMB instructions.

       For more information on the memory barrier instructions, see the CortexTM-M3/M4 Instruction Set
       Technical User's Manual.

       Bit-Banding

       A bit-band region maps each word in a bit-band alias region to a single bit in the bit-band region.
       The bit-band regions occupy the lowest 1 MB of the SRAM and peripheral memory regions. Accesses
       to the 32-MB SRAM alias region map to the 1-MB SRAM bit-band region, as shown in Table
       2-6 on page 74. Accesses to the 32-MB peripheral alias region map to the 1-MB peripheral bit-band
       region, as shown in Table 2-7 on page 75. For the specific address range of the bit-band regions,
       see Table 2-4 on page 70.

       Note: A word access to the SRAM or the peripheral bit-band alias region maps to a single bit in
                 the SRAM or peripheral bit-band region.

                 A word access to a bit band address results in a word access to the underlying memory,
                 and similarly for halfword and byte accesses. This allows bit band accesses to match the
                 access requirements of the underlying peripheral.

       Table 2-6. SRAM Memory Bit-Banding Regions

       Address Range     Memory Region                 Instruction and Data Accesses

       0x2000.0000 - 0x200F.FFFF SRAM bit-band region  Direct accesses to this memory range behave as SRAM memory
                                                       accesses, but this region is also bit addressable through bit-band
                                                       alias.

74                                                          November 17, 2011

                         Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

Table 2-6. SRAM Memory Bit-Banding Regions (continued)

Address Range      Memory Region                     Instruction and Data Accesses

0x2200.0000 - 0x23FF.FFFF SRAM bit-band alias        Data accesses to this region are remapped to bit band region.
                                                     A write operation is performed as read-modify-write. Instruction
                                                     accesses are not remapped.

Table 2-7. Peripheral Memory Bit-Banding Regions

Address Range      Memory Region                     Instruction and Data Accesses

0x4000.0000 - 0x400F.FFFF Peripheral bit-band region Direct accesses to this memory range behave as peripheral
                                                                              memory accesses, but this region is also bit addressable through
                                                                              bit-band alias.

0x4200.0000 - 0x43FF.FFFF Peripheral bit-band alias  Data accesses to this region are remapped to bit band region.
                                                     A write operation is performed as read-modify-write. Instruction
                                                     accesses are not permitted.

The following formula shows how the alias region maps onto the bit-band region:

bit_word_offset = (byte_offset x 32) + (bit_number x 4)

bit_word_addr = bit_band_base + bit_word_offset

where:

bit_word_offset
     The position of the target bit in the bit-band memory region.

bit_word_addr
     The address of the word in the alias memory region that maps to the targeted bit.

bit_band_base
     The starting address of the alias region.

byte_offset
     The number of the byte in the bit-band region that contains the targeted bit.

bit_number
     The bit position, 0-7, of the targeted bit.

Figure 2-4 on page 76 shows examples of bit-band mapping between the SRAM bit-band alias
region and the SRAM bit-band region:

The alias word at 0x23FF.FFE0 maps to bit 0 of the bit-band byte at 0x200F.FFFF:

0x23FF.FFE0 = 0x2200.0000 + (0x000F.FFFF*32) + (0*4)

The alias word at 0x23FF.FFFC maps to bit 7 of the bit-band byte at 0x200F.FFFF:
    0x23FF.FFFC = 0x2200.0000 + (0x000F.FFFF*32) + (7*4)

The alias word at 0x2200.0000 maps to bit 0 of the bit-band byte at 0x2000.0000:
    0x2200.0000 = 0x2200.0000 + (0*32) + (0*4)

November 17, 2011                                                                         75

                   Texas Instruments-Production Data
The Cortex-M3 Processor

          The alias word at 0x2200.001C maps to bit 7 of the bit-band byte at 0x2000.0000:
             0x2200.001C = 0x2200.0000+ (0*32) + (7*4)

         Figure 2-4. Bit-Band Mapping

                                       32-MB Alias Region

         0x23FF.FFFC 0x23FF.FFF8 0x23FF.FFF4 0x23FF.FFF0 0x23FF.FFEC 0x23FF.FFE8 0x23FF.FFE4 0x23FF.FFE0

         0x2200.001C 0x2200.0018 0x2200.0014 0x2200.0010 0x2200.000C 0x2200.0008 0x2200.0004 0x2200.0000

                                       1-MB SRAM Bit-Band Region

         76543210765432107654321076543210

         0x200F.FFFF     0x200F.FFFE                0x200F.FFFD   0x200F.FFFC

         76543210765432107654321076543210

         0x2000.0003                   0x2000.0002  0x2000.0001   0x2000.0000

2.4.5.1  Directly Accessing an Alias Region

2.4.5.2  Writing to a word in the alias region updates a single bit in the bit-band region.
2.4.6
         Bit 0 of the value written to a word in the alias region determines the value written to the targeted
         bit in the bit-band region. Writing a value with bit 0 set writes a 1 to the bit-band bit, and writing a
         value with bit 0 clear writes a 0 to the bit-band bit.

         Bits 31:1 of the alias word have no effect on the bit-band bit. Writing 0x01 has the same effect as
         writing 0xFF. Writing 0x00 has the same effect as writing 0x0E.

         When reading a word in the alias region, 0x0000.0000 indicates that the targeted bit in the bit-band
         region is clear and 0x0000.0001 indicates that the targeted bit in the bit-band region is set.

         Directly Accessing a Bit-Band Region

         "Behavior of Memory Accesses" on page 72 describes the behavior of direct byte, halfword, or word
         accesses to the bit-band regions.

         Data Storage

         The processor views memory as a linear collection of bytes numbered in ascending order from zero.
         For example, bytes 0-3 hold the first stored word, and bytes 4-7 hold the second stored word. Data
         is stored in little-endian format, with the least-significant byte (lsbyte) of a word stored at the
         lowest-numbered byte, and the most-significant byte (msbyte) stored at the highest-numbered byte.
         Figure 2-5 on page 77 illustrates how data is stored.

76                                                                November 17, 2011

                         Texas Instruments-Production Data
                                                               Stellaris LM3S3634 Microcontroller

       Figure 2-5. Data Storage

                   Memory            Register

                   7  0

                                 31 24 23 16 15 8 7      0

       Address A B0 lsbyte       B3  B2  B1          B0

       A+1 B1

       A+2 B2

       A+3 B3 msbyte

2.4.7  Synchronization Primitives

       The Cortex-M3 instruction set includes pairs of synchronization primitives which provide a
       non-blocking mechanism that a thread or process can use to obtain exclusive access to a memory
       location. Software can use these primitives to perform a guaranteed read-modify-write memory
       update sequence or for a semaphore mechanism.
       A pair of synchronization primitives consists of:

        A Load-Exclusive instruction, which is used to read the value of a memory location and requests
           exclusive access to that location.

        A Store-Exclusive instruction, which is used to attempt to write to the same memory location and
           returns a status bit to a register. If this status bit is clear, it indicates that the thread or process
           gained exclusive access to the memory and the write succeeds; if this status bit is set, it indicates
           that the thread or process did not gain exclusive access to the memory and no write was
           performed.

       The pairs of Load-Exclusive and Store-Exclusive instructions are:

        The word instructions LDREX and STREX

        The halfword instructions LDREXH and STREXH

        The byte instructions LDREXB and STREXB

       Software must use a Load-Exclusive instruction with the corresponding Store-Exclusive instruction.
       To perform an exclusive read-modify-write of a memory location, software must:

       1. Use a Load-Exclusive instruction to read the value of the location.

       2. Modify the value, as required.

       3. Use a Store-Exclusive instruction to attempt to write the new value back to the memory location.

       4. Test the returned status bit.
            If the status bit is clear, the read-modify-write completed successfully. If the status bit is set, no
            write was performed, which indicates that the value returned at step 1 might be out of date. The
            software must retry the entire read-modify-write sequence.

       Software can use the synchronization primitives to implement a semaphore as follows:

November 17, 2011                                              77

                            Texas Instruments-Production Data
The Cortex-M3 Processor

                1. Use a Load-Exclusive instruction to read from the semaphore address to check whether the
                     semaphore is free.

                2. If the semaphore is free, use a Store-Exclusive to write the claim value to the semaphore
                     address.

                3. If the returned status bit from step 2 indicates that the Store-Exclusive succeeded, then the
                     software has claimed the semaphore. However, if the Store-Exclusive failed, another process
                     might have claimed the semaphore after the software performed step 1.

                The Cortex-M3 includes an exclusive access monitor that tags the fact that the processor has
                executed a Load-Exclusive instruction. The processor removes its exclusive access tag if:

                 It executes a CLREX instruction.

                 It executes a Store-Exclusive instruction, regardless of whether the write succeeds.

                 An exception occurs, which means the processor can resolve semaphore conflicts between
                    different threads.

                For more information about the synchronization primitive instructions, see the CortexTM-M3/M4
                Instruction Set Technical User's Manual.

2.5 Exception Model

                The ARM Cortex-M3 processor and the Nested Vectored Interrupt Controller (NVIC) prioritize and
                handle all exceptions in Handler Mode. The processor state is automatically stored to the stack on
                an exception and automatically restored from the stack at the end of the Interrupt Service Routine
                (ISR). The vector is fetched in parallel to the state saving, enabling efficient interrupt entry. The
                processor supports tail-chaining, which enables back-to-back interrupts to be performed without the
                overhead of state saving and restoration.

                Table 2-8 on page 80 lists all exception types. Software can set eight priority levels on seven of
                these exceptions (system handlers) as well as on 27 interrupts (listed in Table 2-9 on page 81).

                Priorities on the system handlers are set with the NVIC System Handler Priority n (SYSPRIn)
                registers. Interrupts are enabled through the NVIC Interrupt Set Enable n (ENn) register and
                prioritized with the NVIC Interrupt Priority n (PRIn) registers. Priorities can be grouped by splitting
                priority levels into preemption priorities and subpriorities. All the interrupt registers are described in
                "Nested Vectored Interrupt Controller (NVIC)" on page 94.

                Internally, the highest user-programmable priority (0) is treated as fourth priority, after a Reset,
                Non-Maskable Interrupt (NMI), and a Hard Fault, in that order. Note that 0 is the default priority for
                all the programmable priorities.

                Important: After a write to clear an interrupt source, it may take several processor cycles for the
                                NVIC to see the interrupt source de-assert. Thus if the interrupt clear is done as the
                                last action in an interrupt handler, it is possible for the interrupt handler to complete
                                while the NVIC sees the interrupt as still asserted, causing the interrupt handler to be
                                re-entered errantly. This situation can be avoided by either clearing the interrupt source
                                at the beginning of the interrupt handler or by performing a read or write after the write
                                to clear the interrupt source (and flush the write buffer).

                See "Nested Vectored Interrupt Controller (NVIC)" on page 94 for more information on exceptions
                and interrupts.

78                                                          November 17, 2011

                         Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

2.5.1  Exception States
2.5.2
       Each exception is in one of the following states:

        Inactive. The exception is not active and not pending.

        Pending. The exception is waiting to be serviced by the processor. An interrupt request from a
           peripheral or from software can change the state of the corresponding interrupt to pending.

        Active. An exception that is being serviced by the processor but has not completed.

           Note: An exception handler can interrupt the execution of another exception handler. In this
                      case, both exceptions are in the active state.

        Active and Pending. The exception is being serviced by the processor, and there is a pending
           exception from the same source.

       Exception Types

       The exception types are:

        Reset. Reset is invoked on power up or a warm reset. The exception model treats reset as a
           special form of exception. When reset is asserted, the operation of the processor stops, potentially
           at any point in an instruction. When reset is deasserted, execution restarts from the address
           provided by the reset entry in the vector table. Execution restarts as privileged execution in
           Thread mode.

        NMI. A non-maskable Interrupt (NMI) can be signaled using the NMI signal or triggered by
           software using the Interrupt Control and State (INTCTRL) register. This exception has the
           highest priority other than reset. NMI is permanently enabled and has a fixed priority of -2. NMIs
           cannot be masked or prevented from activation by any other exception or preempted by any
           exception other than reset.

        Hard Fault. A hard fault is an exception that occurs because of an error during exception
           processing, or because an exception cannot be managed by any other exception mechanism.
           Hard faults have a fixed priority of -1, meaning they have higher priority than any exception with
           configurable priority.

        Memory Management Fault. A memory management fault is an exception that occurs because
           of a memory protection related fault, including access violation and no match. The MPU or the
           fixed memory protection constraints determine this fault, for both instruction and data memory
           transactions. This fault is used to abort instruction accesses to Execute Never (XN) memory
           regions, even if the MPU is disabled.

        Bus Fault. A bus fault is an exception that occurs because of a memory-related fault for an
           instruction or data memory transaction such as a prefetch fault or a memory access fault. This
           fault can be enabled or disabled.

        Usage Fault. A usage fault is an exception that occurs because of a fault related to instruction
           execution, such as:

            An undefined instruction

            An illegal unaligned access

            Invalid state on instruction execution

November 17, 2011                                     79

                   Texas Instruments-Production Data
The Cortex-M3 Processor

    An error on exception return
    An unaligned address on a word or halfword memory access or division by zero can cause a
    usage fault when the core is properly configured.

     SVCall. A supervisor call (SVC) is an exception that is triggered by the SVC instruction. In an
        OS environment, applications can use SVC instructions to access OS kernel functions and device
        drivers.

     Debug Monitor. This exception is caused by the debug monitor (when not halting). This exception
        is only active when enabled. This exception does not activate if it is a lower priority than the
        current activation.

     PendSV. PendSV is a pendable, interrupt-driven request for system-level service. In an OS
        environment, use PendSV for context switching when no other exception is active. PendSV is
        triggered using the Interrupt Control and State (INTCTRL) register.

     SysTick. A SysTick exception is an exception that the system timer generates when it reaches
        zero when it is enabled to generate an interrupt. Software can also generate a SysTick exception
        using the Interrupt Control and State (INTCTRL) register. In an OS environment, the processor
        can use this exception as system tick.

     Interrupt (IRQ). An interrupt, or IRQ, is an exception signaled by a peripheral or generated by
        a software request and fed through the NVIC (prioritized). All interrupts are asynchronous to
        instruction execution. In the system, peripherals use interrupts to communicate with the processor.
        Table 2-9 on page 81 lists the interrupts on the LM3S3634 controller.

    For an asynchronous exception, other than reset, the processor can execute another instruction
    between when the exception is triggered and when the processor enters the exception handler.

    Privileged software can disable the exceptions that Table 2-8 on page 80 shows as having
    configurable priority (see the SYSHNDCTRL register on page 135 and the DIS0 register on page 110).

    For more information about hard faults, memory management faults, bus faults, and usage faults,
    see "Fault Handling" on page 86.

    Table 2-8. Exception Types

    Exception Type           Vector      Prioritya   Vector Address or  Activation
    -                       Number                           Offsetb
                                              -                         Stack top is loaded from the first
                                0                        0x0000.0000    entry of the vector table on reset.
                                       -3 (highest)                     Asynchronous
    Reset                   1                -2          0x0000.0004    Asynchronous
                                                         0x0000.0008
    Non-Maskable Interrupt  2                -1
                                     programmablec
    (NMI)                            programmablec

    Hard Fault              3        programmablec   0x0000.000C        -
                                              -      0x0000.0010        Synchronous
    Memory Management       4                        0x0000.0014        Synchronous when precise and
                                     programmablec                      asynchronous when imprecise
    Bus Fault               5        programmablec   0x0000.0018        Synchronous
                                                             -          Reserved
    Usage Fault               6               -                         Synchronous
    -                       7-10                     0x0000.002C        Synchronous
    SVCall                   11                      0x0000.0030        Reserved
    Debug Monitor            12
    -                        13                              -

80                                                                      November 17, 2011

                            Texas Instruments-Production Data
                                                                   Stellaris LM3S3634 Microcontroller

Table 2-8. Exception Types (continued)

Exception Type         Vector        Prioritya                     Vector Address or  Activation
                      Number                                               Offsetb
PendSV                           programmablec
SysTick                   14     programmablec                     0x0000.0038        Asynchronous
Interrupts                15     programmabled
                   16 and above                                    0x0000.003C        Asynchronous

                                                                   0x0000.0040 and above Asynchronous

a. 0 is the default priority for all the programmable priorities.
b. See "Vector Table" on page 82.
c. See SYSPRI1 on page 132.
d. See PRIn registers on page 118.

Table 2-9. Interrupts

Vector Number      Interrupt Number (Bit    Vector Address or      Description
                   in Interrupt Registers)          Offset
       0-15                                                        Processor exceptions
                                  -            0x0000.0000 -
         16                                     0x0000.003C        GPIO Port A
         17                      0              0x0000.0040        GPIO Port B
         18                      1              0x0000.0044        GPIO Port C
         19                      2              0x0000.0048        GPIO Port D
         20                      3              0x0000.004C        GPIO Port E
         21                      4              0x0000.0050        UART0
         22                      5              0x0000.0054        UART1
         23                      6              0x0000.0058        SSI0
         24                      7              0x0000.005C        I2C0
      25-29                      8              0x0000.0060        Reserved
         30                    9-13                                ADC0 Sequence 0
         31                     14                      -          ADC0 Sequence 1
         32                     15              0x0000.0078        ADC0 Sequence 2
         33                     16              0x0000.007C        ADC0 Sequence 3
         34                     17              0x0000.0080        Watchdog Timer 0
         35                     18              0x0000.0084        Timer 0A
         36                     19              0x0000.0088        Timer 0B
         37                     20              0x0000.008C        Timer 1A
         38                     21              0x0000.0090        Timer 1B
         39                     22              0x0000.0094        Timer 2A
         40                     23              0x0000.0098        Timer 2B
      41-43                     24              0x0000.009C        Reserved
         44                   25-27             0x0000.00A0        System Control
         45                     28                                 Flash Memory Control
      46-52                     29                      -          Reserved
         53                   30-36             0x0000.00B0        I2C1
      54-58                     37              0x0000.00B4        Reserved
         59                   38-42                                Hibernation Module
         60                     43                      -          USB
                                44              0x0000.00D4

                                                        -
                                               0x0000.00EC
                                                0x0000.00F0

November 17, 2011                                                                                      81

                       Texas Instruments-Production Data
The Cortex-M3 Processor

       Table 2-9. Interrupts (continued)

       Vector Number     Interrupt Number (Bit    Vector Address or  Description
                         in Interrupt Registers)          Offset
                61                                            -      Reserved
                62                    45                             DMA Software
                63                    46              0x0000.00F8    DMA Error
                                      47             0x0000.00FC

2.5.3  Exception Handlers
2.5.4
       The processor handles exceptions using:

        Interrupt Service Routines (ISRs). Interrupts (IRQx) are the exceptions handled by ISRs.

        Fault Handlers. Hard fault, memory management fault, usage fault, and bus fault are fault
           exceptions handled by the fault handlers.

        System Handlers. NMI, PendSV, SVCall, SysTick, and the fault exceptions are all system
           exceptions that are handled by system handlers.

       Vector Table

       The vector table contains the reset value of the stack pointer and the start addresses, also called
       exception vectors, for all exception handlers. The vector table is constructed using the vector address
       or offset shown in Table 2-8 on page 80. Figure 2-6 on page 83 shows the order of the exception
       vectors in the vector table. The least-significant bit of each vector must be 1, indicating that the
       exception handler is Thumb code

82                                                                                  November 17, 2011

                         Texas Instruments-Production Data
                                                                                        Stellaris LM3S3634 Microcontroller

       Figure 2-6. Vector Table

       Exception number IRQ number Offset  Vector

                   63  47        0x00FC    IRQ47

                   .             .         .

                   .             .         .

                   .             .         .

                   18  2         0x004C    IRQ2

                   17  1         0x0048    IRQ1

                   16  0         0x0044    IRQ0

                   15  -1        0x0040    Systick

                   14  -2        0x003C    PendSV

                   13            0x0038    Reserved

                   12                      Reserved for Debug

                   11  -5        0x002C    SVCall

                   10

                   9
                                                                              Reserved

                   8

                   7

                   6   -10       0x0018    Usage fault

                   5   -11       0x0014    Bus fault

                   4   -12       0x0010    Memory management fault

                   3   -13       0x000C    Hard fault

                   2   -14       0x0008    NMI

                   1             0x0004    Reset

                                 0x0000    Initial SP value

2.5.5  On system reset, the vector table is fixed at address 0x0000.0000. Privileged software can write to
       the Vector Table Offset (VTABLE) register to relocate the vector table start address to a different
       memory location, in the range 0x0000.0100 to 0x3FFF.FF00 (see "Vector Table" on page 82). Note
       that when configuring the VTABLE register, the offset must be aligned on a 256-byte boundary.

       Exception Priorities

       As Table 2-8 on page 80 shows, all exceptions have an associated priority, with a lower priority
       value indicating a higher priority and configurable priorities for all exceptions except Reset, Hard
       fault, and NMI. If software does not configure any priorities, then all exceptions with a configurable
       priority have a priority of 0. For information about configuring exception priorities, see page 132 and
       page 118.

       Note: Configurable priority values for the Stellaris implementation are in the range 0-7. This means
                 that the Reset, Hard fault, and NMI exceptions, with fixed negative priority values, always
                 have higher priority than any other exception.

       For example, assigning a higher priority value to IRQ[0] and a lower priority value to IRQ[1] means
       that IRQ[1] has higher priority than IRQ[0]. If both IRQ[1] and IRQ[0] are asserted, IRQ[1] is processed
       before IRQ[0].

November 17, 2011                                                                       83

                                 Texas Instruments-Production Data
The Cortex-M3 Processor

2.5.6  If multiple pending exceptions have the same priority, the pending exception with the lowest exception
2.5.7  number takes precedence. For example, if both IRQ[0] and IRQ[1] are pending and have the same
       priority, then IRQ[0] is processed before IRQ[1].

       When the processor is executing an exception handler, the exception handler is preempted if a
       higher priority exception occurs. If an exception occurs with the same priority as the exception being
       handled, the handler is not preempted, irrespective of the exception number. However, the status
       of the new interrupt changes to pending.

       Interrupt Priority Grouping

       To increase priority control in systems with interrupts, the NVIC supports priority grouping. This
       grouping divides each interrupt priority register entry into two fields:

        An upper field that defines the group priority

        A lower field that defines a subpriority within the group

       Only the group priority determines preemption of interrupt exceptions. When the processor is
       executing an interrupt exception handler, another interrupt with the same group priority as the
       interrupt being handled does not preempt the handler.

       If multiple pending interrupts have the same group priority, the subpriority field determines the order
       in which they are processed. If multiple pending interrupts have the same group priority and
       subpriority, the interrupt with the lowest IRQ number is processed first.

       For information about splitting the interrupt priority fields into group priority and subpriority, see
       page 126.

       Exception Entry and Return

       Descriptions of exception handling use the following terms:

        Preemption. When the processor is executing an exception handler, an exception can preempt
           the exception handler if its priority is higher than the priority of the exception being handled. See
           "Interrupt Priority Grouping" on page 84 for more information about preemption by an interrupt.
           When one exception preempts another, the exceptions are called nested exceptions. See
           "Exception Entry" on page 85 more information.

        Return. Return occurs when the exception handler is completed, and there is no pending
           exception with sufficient priority to be serviced and the completed exception handler was not
           handling a late-arriving exception. The processor pops the stack and restores the processor
           state to the state it had before the interrupt occurred. See "Exception Return" on page 86 for
           more information.

        Tail-Chaining. This mechanism speeds up exception servicing. On completion of an exception
           handler, if there is a pending exception that meets the requirements for exception entry, the
           stack pop is skipped and control transfers to the new exception handler.

        Late-Arriving. This mechanism speeds up preemption. If a higher priority exception occurs
           during state saving for a previous exception, the processor switches to handle the higher priority
           exception and initiates the vector fetch for that exception. State saving is not affected by late
           arrival because the state saved is the same for both exceptions. Therefore, the state saving
           continues uninterrupted. The processor can accept a late arriving exception until the first instruction
           of the exception handler of the original exception enters the execute stage of the processor. On

84                                                          November 17, 2011

                         Texas Instruments-Production Data
                                                                 Stellaris LM3S3634 Microcontroller

         return from the exception handler of the late-arriving exception, the normal tail-chaining rules
         apply.

2.5.7.1  Exception Entry

         Exception entry occurs when there is a pending exception with sufficient priority and either the
         processor is in Thread mode or the new exception is of higher priority than the exception being
         handled, in which case the new exception preempts the original exception.

         When one exception preempts another, the exceptions are nested.

         Sufficient priority means the exception has more priority than any limits set by the mask registers
         (see PRIMASK on page 66, FAULTMASK on page 67, and BASEPRI on page 68). An exception
         with less priority than this is pending but is not handled by the processor.

         When the processor takes an exception, unless the exception is a tail-chained or a late-arriving
         exception, the processor pushes information onto the current stack. This operation is referred to as
         stacking and the structure of eight data words is referred to as stack frame.

         Figure 2-7. Exception Stack Frame

                       ...    Pre-IRQ top of stack
                   {aligner}  IRQ top of stack

                    xPSR
                      PC
                      LR
                     R12
                      R3
                      R2
                      R1
                      R0

         Immediately after stacking, the stack pointer indicates the lowest address in the stack frame. Unless
         stack alignment is disabled, the stack frame is aligned to a double-word address. If the STKALIGN
         bit of the Configuration Control (CCR) register is set, stack align adjustment is performed during
         stacking.

         The stack frame includes the return address, which is the address of the next instruction in the
         interrupted program. This value is restored to the PC at exception return so that the interrupted
         program resumes.

         In parallel to the stacking operation, the processor performs a vector fetch that reads the exception
         handler start address from the vector table. When stacking is complete, the processor starts executing
         the exception handler. At the same time, the processor writes an EXC_RETURN value to the LR,
         indicating which stack pointer corresponds to the stack frame and what operation mode the processor
         was in before the entry occurred.

         If no higher-priority exception occurs during exception entry, the processor starts executing the
         exception handler and automatically changes the status of the corresponding pending interrupt to
         active.

         If another higher-priority exception occurs during exception entry, known as late arrival, the processor
         starts executing the exception handler for this exception and does not change the pending status
         of the earlier exception.

November 17, 2011                                                85

                              Texas Instruments-Production Data
The Cortex-M3 Processor

2.5.7.2  Exception Return
         Exception return occurs when the processor is in Handler mode and executes one of the following
2.6      instructions to load the EXC_RETURN value into the PC:

          An LDM or POP instruction that loads the PC

          A BX instruction using any register

          An LDR instruction with the PC as the destination

         EXC_RETURN is the value loaded into the LR on exception entry. The exception mechanism relies
         on this value to detect when the processor has completed an exception handler. The lowest four
         bits of this value provide information on the return stack and processor mode. Table 2-10 on page 86
         shows the EXC_RETURN values with a description of the exception return behavior.

         EXC_RETURN bits 31:4 are all set. When this value is loaded into the PC, it indicates to the processor
         that the exception is complete, and the processor initiates the appropriate exception return sequence.

         Table 2-10. Exception Return Behavior

         EXC_RETURN[31:0]           Description
         0xFFFF.FFF0                Reserved
         0xFFFF.FFF1                Return to Handler mode.
                                    Exception return uses state from MSP.
         0xFFFF.FFF2 - 0xFFFF.FFF8  Execution uses MSP after return.
         0xFFFF.FFF9                Reserved
                                    Return to Thread mode.
         0xFFFF.FFFA - 0xFFFF.FFFC  Exception return uses state from MSP.
         0xFFFF.FFFD                Execution uses MSP after return.
                                    Reserved
         0xFFFF.FFFE - 0xFFFF.FFFF  Return to Thread mode.
                                    Exception return uses state from PSP.
                                    Execution uses PSP after return.
                                    Reserved

         Fault Handling

         Faults are a subset of the exceptions (see "Exception Model" on page 78). The following conditions
         generate a fault:

          A bus error on an instruction fetch or vector table load or a data access.

          An internally detected error such as an undefined instruction or an attempt to change state with
             a BX instruction.

          Attempting to execute an instruction from a memory region marked as Non-Executable (XN).

          An MPU fault because of a privilege violation or an attempt to access an unmanaged region.

86                                                                         November 17, 2011

                                    Texas Instruments-Production Data
                                                                           Stellaris LM3S3634 Microcontroller

2.6.1  Fault Types
2.6.2
       Table 2-11 on page 87 shows the types of fault, the handler used for the fault, the corresponding
       fault status register, and the register bit that indicates the fault has occurred. See page 139 for more
       information about the fault status registers.

       Table 2-11. Faults

       Fault                            Handler             Fault Status Register           Bit Name

       Bus error on a vector read       Hard fault          Hard Fault Status (HFAULTSTAT)  VECT

       Fault escalated to a hard fault  Hard fault          Hard Fault Status (HFAULTSTAT)  FORCED
                                                                                            IERR a
       MPU or default memory mismatch on Memory management  Memory Management Fault Status
                                                            (MFAULTSTAT)
       instruction access               fault

       MPU or default memory mismatch on Memory management Memory Management Fault Status   DERR

       data access                      fault               (MFAULTSTAT)

       MPU or default memory mismatch on Memory management Memory Management Fault Status   MSTKE

       exception stacking               fault               (MFAULTSTAT)

       MPU or default memory mismatch on Memory management Memory Management Fault Status   MUSTKE

       exception unstacking             fault               (MFAULTSTAT)

       Bus error during exception stacking Bus fault        Bus Fault Status (BFAULTSTAT)   BSTKE

       Bus error during exception unstacking Bus fault      Bus Fault Status (BFAULTSTAT)   BUSTKE

       Bus error during instruction prefetch Bus fault      Bus Fault Status (BFAULTSTAT)   IBUS

       Precise data bus error           Bus fault           Bus Fault Status (BFAULTSTAT)   PRECISE

       Imprecise data bus error         Bus fault           Bus Fault Status (BFAULTSTAT)   IMPRE

       Attempt to access a coprocessor  Usage fault         Usage Fault Status (UFAULTSTAT) NOCP

       Undefined instruction            Usage fault         Usage Fault Status (UFAULTSTAT) UNDEF

       Attempt to enter an invalid instruction Usage fault  Usage Fault Status (UFAULTSTAT) INVSTAT
       set state b

       Invalid EXC_RETURN value         Usage fault         Usage Fault Status (UFAULTSTAT) INVPC

       Illegal unaligned load or store  Usage fault         Usage Fault Status (UFAULTSTAT) UNALIGN

       Divide by 0                      Usage fault         Usage Fault Status (UFAULTSTAT) DIV0

       a. Occurs on an access to an XN region even if the MPU is disabled.

       b. Attempting to use an instruction set other than the Thumb instruction set, or returning to a non load-store-multiple instruction
            with ICI continuation.

       Fault Escalation and Hard Faults

       All fault exceptions except for hard fault have configurable exception priority (see SYSPRI1 on
       page 132). Software can disable execution of the handlers for these faults (see SYSHNDCTRL on
       page 135).

       Usually, the exception priority, together with the values of the exception mask registers, determines
       whether the processor enters the fault handler, and whether a fault handler can preempt another
       fault handler as described in "Exception Model" on page 78.

       In some situations, a fault with configurable priority is treated as a hard fault. This process is called
       priority escalation, and the fault is described as escalated to hard fault. Escalation to hard fault
       occurs when:

        A fault handler causes the same kind of fault as the one it is servicing. This escalation to hard
           fault occurs because a fault handler cannot preempt itself because it must have the same priority
           as the current priority level.

November 17, 2011                                                                                     87

                                        Texas Instruments-Production Data
The Cortex-M3 Processor

2.6.3   A fault handler causes a fault with the same or lower priority as the fault it is servicing. This
           situation happens because the handler for the new fault cannot preempt the currently executing
2.6.4      fault handler.

2.7     An exception handler causes a fault for which the priority is the same as or lower than the currently
           executing exception.

        A fault occurs and the handler for that fault is not enabled.

       If a bus fault occurs during a stack push when entering a bus fault handler, the bus fault does not
       escalate to a hard fault. Thus if a corrupted stack causes a fault, the fault handler executes even
       though the stack push for the handler failed. The fault handler operates but the stack contents are
       corrupted.

       Note: Only Reset and NMI can preempt the fixed priority hard fault. A hard fault can preempt any
                 exception other than Reset, NMI, or another hard fault.

       Fault Status Registers and Fault Address Registers

       The fault status registers indicate the cause of a fault. For bus faults and memory management
       faults, the fault address register indicates the address accessed by the operation that caused the
       fault, as shown in Table 2-12 on page 88.

       Table 2-12. Fault Status and Fault Address Registers

       Handler           Status Register Name             Address Register Name  Register Description

       Hard fault        Hard Fault Status (HFAULTSTAT)   -                      page 145

       Memory management Memory Management Fault Status   Memory Management Fault page 139

       fault             (MFAULTSTAT)                     Address (MMADDR)       page 146

       Bus fault         Bus Fault Status (BFAULTSTAT)    Bus Fault Address      page 139
                                                          (FAULTADDR)            page 147

       Usage fault       Usage Fault Status (UFAULTSTAT)  -                      page 139

       Lockup

       The processor enters a lockup state if a hard fault occurs when executing the NMI or hard fault
       handlers. When the processor is in the lockup state, it does not execute any instructions. The
       processor remains in lockup state until it is reset, an NMI occurs, or it is halted by a debugger.

       Note: If the lockup state occurs from the NMI handler, a subsequent NMI does not cause the
                 processor to leave the lockup state.

       Power Management

       The Cortex-M3 processor sleep modes reduce power consumption:

        Sleep mode stops the processor clock.

        Deep-sleep mode stops the system clock and switches off the PLL and Flash memory.

       The SLEEPDEEP bit of the System Control (SYSCTRL) register selects which sleep mode is used
       (see page 128). For more information about the behavior of the sleep modes, see "System
       Control" on page 180.

88                                                                               November 17, 2011

                         Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

2.7.1    This section describes the mechanisms for entering sleep mode and the conditions for waking up
2.7.1.1  from sleep mode, both of which apply to Sleep mode and Deep-sleep mode.
2.7.1.2
         Entering Sleep Modes
2.7.1.3
2.7.2    This section describes the mechanisms software can use to put the processor into one of the sleep
2.7.2.1  modes.

2.7.2.2  The system can generate spurious wake-up events, for example a debug operation wakes up the
         processor. Therefore, software must be able to put the processor back into sleep mode after such
         an event. A program might have an idle loop to put the processor back to sleep mode.

         Wait for Interrupt

         The wait for interrupt instruction, WFI, causes immediate entry to sleep mode unless the wake-up
         condition is true (see "Wake Up from WFI or Sleep-on-Exit" on page 89). When the processor
         executes a WFI instruction, it stops executing instructions and enters sleep mode. See the
         CortexTM-M3/M4 Instruction Set Technical User's Manual for more information.

         Wait for Event

         The wait for event instruction, WFE, causes entry to sleep mode conditional on the value of a one-bit
         event register. When the processor executes a WFE instruction, it checks the event register. If the
         register is 0, the processor stops executing instructions and enters sleep mode. If the register is 1,
         the processor clears the register and continues executing instructions without entering sleep mode.

         If the event register is 1, the processor must not enter sleep mode on execution of a WFE instruction.
         Typically, this situation occurs if an SEV instruction has been executed. Software cannot access
         this register directly.

         See the CortexTM-M3/M4 Instruction Set Technical User's Manual for more information.

         Sleep-on-Exit

         If the SLEEPEXIT bit of the SYSCTRL register is set, when the processor completes the execution
         of all exception handlers, it returns to Thread mode and immediately enters sleep mode. This
         mechanism can be used in applications that only require the processor to run when an exception
         occurs.

         Wake Up from Sleep Mode

         The conditions for the processor to wake up depend on the mechanism that cause it to enter sleep
         mode.

         Wake Up from WFI or Sleep-on-Exit

         Normally, the processor wakes up only when the NVIC detects an exception with sufficient priority
         to cause exception entry. Some embedded systems might have to execute system restore tasks
         after the processor wakes up and before executing an interrupt handler. Entry to the interrupt handler
         can be delayed by setting the PRIMASK bit and clearing the FAULTMASK bit. If an interrupt arrives
         that is enabled and has a higher priority than current exception priority, the processor wakes up but
         does not execute the interrupt handler until the processor clears PRIMASK. For more information
         about PRIMASK and FAULTMASK, see page 66 and page 67.

         Wake Up from WFE

         The processor wakes up if it detects an exception with sufficient priority to cause exception entry.

November 17, 2011                                     89

                   Texas Instruments-Production Data
The Cortex-M3 Processor

     In addition, if the SEVONPEND bit in the SYSCTRL register is set, any new pending interrupt triggers
     an event and wakes up the processor, even if the interrupt is disabled or has insufficient priority to
     cause exception entry. For more information about SYSCTRL, see page 128.

2.8  Instruction Set Summary

     The processor implements a version of the Thumb instruction set. Table 2-13 on page 90 lists the
     supported instructions.

     Note: In Table 2-13 on page 90:

                Angle brackets, <>, enclose alternative forms of the operand
                Braces, {}, enclose optional operands
                The Operands column is not exhaustive
                Op2 is a flexible second operand that can be either a register or a constant
                Most instructions can use an optional condition code suffix

               For more information on the instructions and operands, see the instruction descriptions in
               the CortexTM-M3/M4 Instruction Set Technical User's Manual.

     Table 2-13. Cortex-M3 Instruction Summary

     Mnemonic            Operands               Brief Description                Flags
     ADC, ADCS           {Rd,} Rn, Op2          Add with carry                   N,Z,C,V
     ADD, ADDS           {Rd,} Rn, Op2          Add                              N,Z,C,V
     ADD, ADDW           {Rd,} Rn , #imm12      Add                              N,Z,C,V
     ADR                 Rd, label              Load PC-relative address         -
     AND, ANDS           {Rd,} Rn, Op2          Logical AND                      N,Z,C
     ASR, ASRS           Rd, Rm,         Arithmetic shift right           N,Z,C
     B                   label                  Branch                           -
     BFC                 Rd, #lsb, #width       Bit field clear                  -
     BFI                 Rd, Rn, #lsb, #width   Bit field insert                 -
     BIC, BICS           {Rd,} Rn, Op2          Bit clear                        N,Z,C
     BKPT                #imm                   Breakpoint                       -
     BL                  label                  Branch with link                 -
     BLX                 Rm                     Branch indirect with link        -
     BX                  Rm                     Branch indirect                  -
     CBNZ                Rn, label              Compare and branch if non-zero   -
     CBZ                 Rn, label              Compare and branch if zero       -
     CLREX               -                      Clear exclusive                  -
     CLZ                 Rd, Rm                 Count leading zeros              -
     CMN                 Rn, Op2                Compare negative                 N,Z,C,V
     CMP                 Rn, Op2                Compare                          N,Z,C,V
     CPSID               i                      Change processor state, disable  -
                                                interrupts
     CPSIE               i                      Change processor state, enable   -
                                                interrupts
     DMB                 -                      Data memory barrier              -
                                                Data synchronization barrier     -
     DSB                 -

90                                                             November 17, 2011

                            Texas Instruments-Production Data
                                                       Stellaris LM3S3634 Microcontroller

Table 2-13. Cortex-M3 Instruction Summary (continued)

Mnemonic           Operands                Brief Description                     Flags
EOR, EORS          {Rd,} Rn, Op2
ISB                -                       Exclusive OR                          N,Z,C
IT                 -
LDM                Rn{!}, reglist          Instruction synchronization barrier   -
LDMDB, LDMEA       Rn{!}, reglist
                                           If-Then condition block               -
LDMFD, LDMIA       Rn{!}, reglist
LDR                Rt, [Rn, #offset]       Load multiple registers, increment after -
LDRB, LDRBT        Rt, [Rn, #offset]
LDRD               Rt, Rt2, [Rn, #offset]  Load multiple registers, decrement    -
LDREX              Rt, [Rn, #offset]
LDREXB             Rt, [Rn]                before
LDREXH             Rt, [Rn]
LDRH, LDRHT        Rt, [Rn, #offset]       Load multiple registers, increment after -
LDRSB, LDRSBT      Rt, [Rn, #offset]
LDRSH, LDRSHT      Rt, [Rn, #offset]       Load register with word               -
LDRT               Rt, [Rn, #offset]
LSL, LSLS          Rd, Rm,          Load register with byte               -
LSR, LSRS          Rd, Rm,
MLA                Rd, Rn, Rm, Ra          Load register with two bytes          -
MLS                Rd, Rn, Rm, Ra
MOV, MOVS          Rd, Op2                 Load register exclusive               -
MOV, MOVW          Rd, #imm16
MOVT               Rd, #imm16              Load register exclusive with byte     -
MRS                Rd, spec_reg
                                           Load register exclusive with halfword -
MSR                spec_reg, Rm
                                           Load register with halfword           -
MUL, MULS          {Rd,} Rn, Rm
MVN, MVNS          Rd, Op2                 Load register with signed byte        -
NOP                -
ORN, ORNS          {Rd,} Rn, Op2           Load register with signed halfword    -
ORR, ORRS          {Rd,} Rn, Op2
POP                reglist                 Load register with word               -
PUSH               reglist
RBIT               Rd, Rn                  Logical shift left                    N,Z,C
REV                Rd, Rn
REV16              Rd, Rn                  Logical shift right                   N,Z,C
REVSH              Rd, Rn
                                           Multiply with accumulate, 32-bit result -
ROR, RORS          Rd, Rm,
RRX, RRXS          Rd, Rm                  Multiply and subtract, 32-bit result  -

                                           Move                                  N,Z,C

                                           Move 16-bit constant                  N,Z,C

                                           Move top                              -

                                           Move from special register to general -
                                           register

                                           Move from general register to special N,Z,C,V
                                           register

                                           Multiply, 32-bit result               N,Z

                                           Move NOT                              N,Z,C

                                           No operation                          -

                                           Logical OR NOT                        N,Z,C

                                           Logical OR                            N,Z,C

                                           Pop registers from stack              -

                                           Push registers onto stack             -

                                           Reverse bits                          -

                                           Reverse byte order in a word          -

                                           Reverse byte order in each halfword -

                                           Reverse byte order in bottom halfword -
                                           and sign extend

                                           Rotate right                          N,Z,C

                                           Rotate right with extend              N,Z,C

November 17, 2011                                                                         91

                   Texas Instruments-Production Data
The Cortex-M3 Processor

    Table 2-13. Cortex-M3 Instruction Summary (continued)

    Mnemonic             Operands                   Brief Description                  Flags
    RSB, RSBS            {Rd,} Rn, Op2
    SBC, SBCS            {Rd,} Rn, Op2              Reverse subtract                   N,Z,C,V
    SBFX                 Rd, Rn, #lsb, #width
    SDIV                 {Rd,} Rn, Rm               Subtract with carry                N,Z,C,V
    SEV                  -
    SMLAL                RdLo, RdHi, Rn, Rm         Signed bit field extract           -

    SMULL                RdLo, RdHi, Rn, Rm         Signed divide                      -
    SSAT                 Rd, #n, Rm {,shift #s}
    STM                  Rn{!}, reglist             Send event                         -
    STMDB, STMEA         Rn{!}, reglist
                                                    Signed multiply with accumulate    -
    STMFD, STMIA         Rn{!}, reglist
    STR                  Rt, [Rn {, #offset}]       (32x32+64), 64-bit result
    STRB, STRBT          Rt, [Rn {, #offset}]
    STRD                 Rt, Rt2, [Rn {, #offset}]  Signed multiply (32x32), 64-bit result -
    STREX                Rt, Rt, [Rn {, #offset}]
    STREXB               Rd, Rt, [Rn]               Signed saturate                    Q
    STREXH               Rd, Rt, [Rn]
    STRH, STRHT          Rt, [Rn {, #offset}]       Store multiple registers, increment after -
    STRSB, STRSBT        Rt, [Rn {, #offset}]
    STRSH, STRSHT        Rt, [Rn {, #offset}]       Store multiple registers, decrement -
    STRT                 Rt, [Rn {, #offset}]       before
    SUB, SUBS            {Rd,} Rn, Op2
    SUB, SUBW            {Rd,} Rn, #imm12           Store multiple registers, increment after -
    SVC                  #imm
    SXTB                 {Rd,} Rm {,ROR #n}         Store register word                -
    SXTH                 {Rd,} Rm {,ROR #n}
    TBB                  [Rn, Rm]                   Store register byte                -
    TBH                  [Rn, Rm, LSL #1]
    TEQ                  Rn, Op2                    Store register two words           -
    TST                  Rn, Op2
    UBFX                 Rd, Rn, #lsb, #width       Store register exclusive           -
    UDIV                 {Rd,} Rn, Rm
    UMLAL                RdLo, RdHi, Rn, Rm         Store register exclusive byte      -

    UMULL                RdLo, RdHi, Rn, Rm         Store register exclusive halfword  -
    USAT                 Rd, #n, Rm {,shift #s}
    UXTB                 {Rd,} Rm, {,ROR #n}        Store register halfword            -
    UXTH                 {Rd,} Rm, {,ROR #n}
    WFE                  -                          Store register signed byte         -
    WFI                  -
                                                    Store register signed halfword     -

                                                    Store register word                -

                                                    Subtract                           N,Z,C,V

                                                    Subtract 12-bit constant           N,Z,C,V

                                                    Supervisor call                    -

                                                    Sign extend a byte                 -

                                                    Sign extend a halfword             -

                                                    Table branch byte                  -

                                                    Table branch halfword              -

                                                    Test equivalence                   N,Z,C

                                                    Test                               N,Z,C

                                                    Unsigned bit field extract         -

                                                    Unsigned divide                    -

                                                    Unsigned multiply with accumulate  -

                                                    (32x32+32+32), 64-bit result

                                                    Unsigned multiply (32x 2), 64-bit result -

                                                    Unsigned Saturate                  Q

                                                    Zero extend a Byte                 -

                                                    Zero extend a Halfword             -

                                                    Wait for event                     -

                                                    Wait for interrupt                 -

92                                                                                  November 17, 2011

                         Texas Instruments-Production Data
                                                                   Stellaris LM3S3634 Microcontroller

3      Cortex-M3 Peripherals

3.1    This chapter provides information on the Stellaris implementation of the Cortex-M3 processor
       peripherals, including:
3.1.1
        SysTick (see page 93)

           Provides a simple, 24-bit clear-on-write, decrementing, wrap-on-zero counter with a flexible
           control mechanism.

        Nested Vectored Interrupt Controller (NVIC) (see page 94)
            Facilitates low-latency exception and interrupt handling
            Controls power management
            Implements system control registers

        System Control Block (SCB) (see page 96)

           Provides system implementation information and system control, including configuration, control,
           and reporting of system exceptions.

        Memory Protection Unit (MPU) (see page 96)

           Supports the standard ARMv7 Protected Memory System Architecture (PMSA) model. The MPU
           provides full support for protection regions, overlapping protection regions, access permissions,
           and exporting memory attributes to the system.

       Table 3-1 on page 93 shows the address map of the Private Peripheral Bus (PPB). Some peripheral
       register regions are split into two address regions, as indicated by two addresses listed.

       Table 3-1. Core Peripheral Register Regions

       Address                  Core Peripheral                       Description (see page ...)
       0xE000.E010-0xE000.E01F  System Timer                          93
       0xE000.E100-0xE000.E4EF  Nested Vectored Interrupt Controller  94
       0xE000.EF00-0xE000.EF03
       0xE000.ED00-0xE000.ED3F  System Control Block                  96
       0xE000.ED90-0xE000.EDB8  Memory Protection Unit                96

       Functional Description

       This chapter provides information on the Stellaris implementation of the Cortex-M3 processor
       peripherals: SysTick, NVIC, SCB and MPU.

       System Timer (SysTick)

       Cortex-M3 includes an integrated system timer, SysTick, which provides a simple, 24-bit
       clear-on-write, decrementing, wrap-on-zero counter with a flexible control mechanism. The counter
       can be used in several different ways, for example as:

        An RTOS tick timer that fires at a programmable rate (for example, 100 Hz) and invokes a SysTick
           routine.

        A high-speed alarm timer using the system clock.

November 17, 2011                                                                                 93

                                Texas Instruments-Production Data
Cortex-M3 Peripherals

3.1.2   A variable rate alarm or signal timer--the duration is range-dependent on the reference clock
           used and the dynamic range of the counter.

        A simple counter used to measure time to completion and time used.

        An internal clock source control based on missing/meeting durations. The COUNT bit in the
           STCTRL control and status register can be used to determine if an action completed within a
           set duration, as part of a dynamic clock management control loop.

       The timer consists of three registers:

        SysTick Control and Status (STCTRL): A control and status counter to configure its clock,
           enable the counter, enable the SysTick interrupt, and determine counter status.

        SysTick Reload Value (STRELOAD): The reload value for the counter, used to provide the
           counter's wrap value.

        SysTick Current Value (STCURRENT): The current value of the counter.

       When enabled, the timer counts down on each clock from the reload value to zero, reloads (wraps)
       to the value in the STRELOAD register on the next clock edge, then decrements on subsequent
       clocks. Clearing the STRELOAD register disables the counter on the next wrap. When the counter
       reaches zero, the COUNT status bit is set. The COUNT bit clears on reads.
       Writing to the STCURRENT register clears the register and the COUNT status bit. The write does
       not trigger the SysTick exception logic. On a read, the current value is the value of the register at
       the time the register is accessed.
       The SysTick counter runs on the system clock. If this clock signal is stopped for low power mode,
       the SysTick counter stops. Ensure software uses aligned word accesses to access the SysTick
       registers.
       Note: When the processor is halted for debugging, the counter does not decrement.

       Nested Vectored Interrupt Controller (NVIC)

       This section describes the Nested Vectored Interrupt Controller (NVIC) and the registers it uses.
       The NVIC supports:

        27 interrupts.

        A programmable priority level of 0-7 for each interrupt. A higher level corresponds to a lower
           priority, so level 0 is the highest interrupt priority.

        Low-latency exception and interrupt handling.

        Level and pulse detection of interrupt signals.

        Dynamic reprioritization of interrupts.

        Grouping of priority values into group priority and subpriority fields.

        Interrupt tail-chaining.

        An external Non-maskable interrupt (NMI).

94                                                        November 17, 2011

                       Texas Instruments-Production Data
                                                      Stellaris LM3S3634 Microcontroller

3.1.2.1  The processor automatically stacks its state on exception entry and unstacks this state on exception
3.1.2.2  exit, with no instruction overhead, providing low latency exception handling.

         Level-Sensitive and Pulse Interrupts

         The processor supports both level-sensitive and pulse interrupts. Pulse interrupts are also described
         as edge-triggered interrupts.

         A level-sensitive interrupt is held asserted until the peripheral deasserts the interrupt signal. Typically
         this happens because the ISR accesses the peripheral, causing it to clear the interrupt request. A
         pulse interrupt is an interrupt signal sampled synchronously on the rising edge of the processor
         clock. To ensure the NVIC detects the interrupt, the peripheral must assert the interrupt signal for
         at least one clock cycle, during which the NVIC detects the pulse and latches the interrupt.

         When the processor enters the ISR, it automatically removes the pending state from the interrupt
         (see "Hardware and Software Control of Interrupts" on page 95 for more information). For a
         level-sensitive interrupt, if the signal is not deasserted before the processor returns from the ISR,
         the interrupt becomes pending again, and the processor must execute its ISR again. As a result,
         the peripheral can hold the interrupt signal asserted until it no longer needs servicing.

         Hardware and Software Control of Interrupts

         The Cortex-M3 latches all interrupts. A peripheral interrupt becomes pending for one of the following
         reasons:

          The NVIC detects that the interrupt signal is High and the interrupt is not active.

          The NVIC detects a rising edge on the interrupt signal.

          Software writes to the corresponding interrupt set-pending register bit, or to the Software Trigger
             Interrupt (SWTRIG) register to make a Software-Generated Interrupt pending. See the INT bit
             in the PEND0 register on page 112 or SWTRIG on page 120.

         A pending interrupt remains pending until one of the following:

          The processor enters the ISR for the interrupt, changing the state of the interrupt from pending
             to active. Then:

             For a level-sensitive interrupt, when the processor returns from the ISR, the NVIC samples
                 the interrupt signal. If the signal is asserted, the state of the interrupt changes to pending,
                 which might cause the processor to immediately re-enter the ISR. Otherwise, the state of the
                 interrupt changes to inactive.

             For a pulse interrupt, the NVIC continues to monitor the interrupt signal, and if this is pulsed
                 the state of the interrupt changes to pending and active. In this case, when the processor
                 returns from the ISR the state of the interrupt changes to pending, which might cause the
                 processor to immediately re-enter the ISR.

                 If the interrupt signal is not pulsed while the processor is in the ISR, when the processor
                 returns from the ISR the state of the interrupt changes to inactive.

          Software writes to the corresponding interrupt clear-pending register bit

             For a level-sensitive interrupt, if the interrupt signal is still asserted, the state of the interrupt
                 does not change. Otherwise, the state of the interrupt changes to inactive.

November 17, 2011                                     95

                   Texas Instruments-Production Data
Cortex-M3 Peripherals

3.1.3       For a pulse interrupt, the state of the interrupt changes to inactive, if the state was pending
3.1.4          or to active, if the state was active and pending.

       System Control Block (SCB)

       The System Control Block (SCB) provides system implementation information and system control,
       including configuration, control, and reporting of the system exceptions.

       Memory Protection Unit (MPU)

       This section describes the Memory protection unit (MPU). The MPU divides the memory map into
       a number of regions and defines the location, size, access permissions, and memory attributes of
       each region. The MPU supports independent attribute settings for each region, overlapping regions,
       and export of memory attributes to the system.

       The memory attributes affect the behavior of memory accesses to the region. The Cortex-M3 MPU
       defines eight separate memory regions, 0-7, and a background region.

       When memory regions overlap, a memory access is affected by the attributes of the region with the
       highest number. For example, the attributes for region 7 take precedence over the attributes of any
       region that overlaps region 7.

       The background region has the same memory access attributes as the default memory map, but is
       accessible from privileged software only.

       The Cortex-M3 MPU memory map is unified, meaning that instruction accesses and data accesses
       have the same region settings.

       If a program accesses a memory location that is prohibited by the MPU, the processor generates
       a memory management fault, causing a fault exception and possibly causing termination of the
       process in an OS environment. In an OS environment, the kernel can update the MPU region setting
       dynamically based on the process to be executed. Typically, an embedded OS uses the MPU for
       memory protection.

       Configuration of MPU regions is based on memory types (see "Memory Regions, Types and
       Attributes" on page 72 for more information).

       Table 3-2 on page 96 shows the possible MPU region attributes. See the section called "MPU
       Configuration for a Stellaris Microcontroller" on page 100 for guidelines for programming a
       microcontroller implementation.

       Table 3-2. Memory Attributes Summary

       Memory Type       Description
       Strongly Ordered  All accesses to Strongly Ordered memory occur in program order.
       Device            Memory-mapped peripherals
       Normal            Normal memory

       To avoid unexpected behavior, disable the interrupts before updating the attributes of a region that
       the interrupt handlers might access.
       Ensure software uses aligned accesses of the correct size to access MPU registers:

        Except for the MPU Region Attribute and Size (MPUATTR) register, all MPU registers must
           be accessed with aligned word accesses.

        The MPUATTR register can be accessed with byte or aligned halfword or word accesses.

96                                                          November 17, 2011

                         Texas Instruments-Production Data
                                                          Stellaris LM3S3634 Microcontroller

         The processor does not support unaligned accesses to MPU registers.

         When setting up the MPU, and if the MPU has previously been programmed, disable unused regions
         to prevent any previous region settings from affecting the new MPU setup.

3.1.4.1  Updating an MPU Region

         To update the attributes for an MPU region, the MPU Region Number (MPUNUMBER), MPU
         Region Base Address (MPUBASE) and MPUATTR registers must be updated. Each register can
         be programmed separately or with a multiple-word write to program all of these registers. You can
         use the MPUBASEx and MPUATTRx aliases to program up to four regions simultaneously using
         an STM instruction.

         Updating an MPU Region Using Separate Words
         This example simple code configures one region:

         ; R1 = region number  ; 0xE000ED98, MPU region number register
         ; R2 = size/enable    ; Region Number
         ; R3 = attributes     ; Region Base Address
         ; R4 = address        ; Region Size and Enable
         LDR R0,=MPUNUMBER     ; Region Attribute
         STR R1, [R0, #0x0]
         STR R4, [R0, #0x4]
         STRH R2, [R0, #0x8]
         STRH R3, [R0, #0xA]

         Disable a region before writing new region settings to the MPU if you have previously enabled the
         region being changed. For example:

         ; R1 = region number  ; 0xE000ED98, MPU region number register
         ; R2 = size/enable    ; Region Number
         ; R3 = attributes     ; Disable
         ; R4 = address        ; Region Size and Enable
         LDR R0,=MPUNUMBER     ; Region Base Address
         STR R1, [R0, #0x0]    ; Region Attribute
         BIC R2, R2, #1        ; Enable
         STRH R2, [R0, #0x8]   ; Region Size and Enable
         STR R4, [R0, #0x4]
         STRH R3, [R0, #0xA]
         ORR R2, #1
         STRH R2, [R0, #0x8]

         Software must use memory barrier instructions:

          Before MPU setup, if there might be outstanding memory transfers, such as buffered writes, that
             might be affected by the change in MPU settings.

          After MPU setup, if it includes memory transfers that must use the new MPU settings.

         However, memory barrier instructions are not required if the MPU setup process starts by entering
         an exception handler, or is followed by an exception return, because the exception entry and
         exception return mechanism cause memory barrier behavior.

         Software does not need any memory barrier instructions during MPU setup, because it accesses
         the MPU through the Private Peripheral Bus (PPB), which is a Strongly Ordered memory region.

November 17, 2011                                                                               97

                   Texas Instruments-Production Data
Cortex-M3 Peripherals

    For example, if all of the memory access behavior is intended to take effect immediately after the
    programming sequence, then a DSB instruction and an ISB instruction should be used. A DSB is
    required after changing MPU settings, such as at the end of context switch. An ISB is required if
    the code that programs the MPU region or regions is entered using a branch or call. If the
    programming sequence is entered using a return from exception, or by taking an exception, then
    an ISB is not required.

    Updating an MPU Region Using Multi-Word Writes

    The MPU can be programmed directly using multi-word writes, depending how the information is
    divided. Consider the following reprogramming:

    ; R1 = region number
    ; R2 = address
    ; R3 = size, attributes in one
    LDR R0, =MPUNUMBER ; 0xE000ED98, MPU region number register
    STR R1, [R0, #0x0] ; Region Number
    STR R2, [R0, #0x4] ; Region Base Address
    STR R3, [R0, #0x8] ; Region Attribute, Size and Enable

    An STM instruction can be used to optimize this:

    ; R1 = region number

    ; R2 = address

    ; R3 = size, attributes in one

    LDR R0, =MPUNUMBER ; 0xE000ED98, MPU region number register

    STM R0, {R1-R3}    ; Region number, address, attribute, size and enable

    This operation can be done in two words for pre-packed information, meaning that the MPU Region
    Base Address (MPUBASE) register (see page 152) contains the required region number and has
    the VALID bit set. This method can be used when the data is statically packed, for example in a
    boot loader:

    ; R1 = address and region number in one
    ; R2 = size and attributes in one
    LDR R0, =MPUBASE ; 0xE000ED9C, MPU Region Base register
    STR R1, [R0, #0x0] ; Region base address and region number combined

                                        ; with VALID (bit 4) set
    STR R2, [R0, #0x4] ; Region Attribute, Size and Enable

    Subregions

    Regions of 256 bytes or more are divided into eight equal-sized subregions. Set the corresponding
    bit in the SRD field of the MPU Region Attribute and Size (MPUATTR) register (see page 154) to
    disable a subregion. The least-significant bit of the SRD field controls the first subregion, and the
    most-significant bit controls the last subregion. Disabling a subregion means another region
    overlapping the disabled range matches instead. If no other enabled region overlaps the disabled
    subregion, the MPU issues a fault.

    Regions of 32, 64, and 128 bytes do not support subregions. With regions of these sizes, the SRD
    field must be configured to 0x00, otherwise the MPU behavior is unpredictable.

98                                                        November 17, 2011

                       Texas Instruments-Production Data
                                                                                    Stellaris LM3S3634 Microcontroller

         Example of SRD Use

         Two regions with the same base address overlap. Region one is 128 KB, and region two is 512 KB.
         To ensure the attributes from region one apply to the first 128 KB region, configure the SRD field for
         region two to 0x03 to disable the first two subregions, as Figure 3-1 on page 99 shows.

         Figure 3-1. SRD Use Example                                Region 2, with  Offset from
                                                                      subregions    base address
                                                          Region 1
         Base address of both regions                                               512KB

                                                                                    448KB

                                                                                    384KB

                                                                                    320KB

                                                                                    256KB

                                                                                    192KB

                                                                                                128KB
                                                                    Disabled subregion

                                                                                                  64KB
                                                                    Disabled subregion

                                                                                                       0

3.1.4.2  MPU Access Permission Attributes

         The access permission bits, TEX, S, C, B, AP, and XN of the MPUATTR register, control access to
         the corresponding memory region. If an access is made to an area of memory without the required
         permissions, then the MPU generates a permission fault.

         Table 3-3 on page 99 shows the encodings for the TEX, C, B, and S access permission bits. All
         encodings are shown for completeness, however the current implementation of the Cortex-M3 does
         not support the concept of cacheability or shareability. Refer to the section called "MPU Configuration
         for a Stellaris Microcontroller" on page 100 for information on programming the MPU for Stellaris
         implementations.

         Table 3-3. TEX, S, C, and B Bit Field Encoding

         TEX       S   C  B   Memory Type                                           Shareability          Other Attributes
         000b                                                                       Shareable             -
         000       xa  0  0   Strongly Ordered                                      Shareable             -
         000                                                                        Not shareable
         000       xa  0  1   Device                                                Shareable             Outer and inner
         000                                                                        Not shareable         write-through. No write
         000       0   1  0   Normal                                                Shareable             allocate.
         001                                                                        Not shareable
         001       1   1  0   Normal                                                Shareable             Outer and inner
         001                                                                        -                     noncacheable.
         001       0   1  1   Normal                                                -                     -
         001                                                                        Not shareable         -
         001       1   1  1   Normal                                                Shareable             Outer and inner
                                                                                                          write-back. Write and
                   0   0  0   Normal                                                Not shareable         read allocate.
                                                                                    -                     Nonshared Device.
                   1   0  0   Normal                                                -                     -
                                                                                                          -
                   xa  0  1   Reserved encoding

                   xa  1  0   Reserved encoding

                   0   1  1   Normal

                   1   1  1   Normal

         010       xa  0  0   Device

         010       xa  0  1   Reserved encoding

         010       xa  1  xa  Reserved encoding

November 17, 2011                                                                                         99

                          Texas Instruments-Production Data
Cortex-M3 Peripherals

     Table 3-3. TEX, S, C, and B Bit Field Encoding (continued)

     TEX               S       C         B      Memory Type       Shareability    Other Attributes
                                                                  Not shareable
     1BB               0       A         A      Normal            Shareable       Cached memory (BB =
                                                                                  outer policy, AA = inner
     1BB               1       A         A      Normal                            policy).

                                                                                  See Table 3-4 for the
                                                                                  encoding of the AA and
                                                                                  BB bits.

     a. The MPU ignores the value of this bit.

     Table 3-4 on page 100 shows the cache policy for memory attribute encodings with a TEX value in
     the range of 0x4-0x7.

     Table 3-4. Cache Policy for Memory Attribute Encoding

     Encoding, AA or BB                     Corresponding Cache Policy
     00                                     Non-cacheable
     01                                     Write back, write and read allocate
     10                                     Write through, no write allocate
     11                                     Write back, no write allocate

     Table 3-5 on page 100 shows the AP encodings in the MPUATTR register that define the access
     permissions for privileged and unprivileged software.

     Table 3-5. AP Bit Field Encoding

     AP Bit Field         Privileged            Unprivileged      Description
                          Permissions           Permissions
     000                  No access             No access         All accesses generate a permission fault.
     001                  R/W                   No access         Access from privileged software only.
     010                  R/W                   RO                Writes by unprivileged software generate a
                                                                  permission fault.
     011                  R/W                   R/W               Full access.
                                                                  Reserved.
     100                  Unpredictable         Unpredictable     Reads by privileged software only.
                                                                  Read-only, by privileged or unprivileged software.
     101                  RO                    No access         Read-only, by privileged or unprivileged software.

     110                  RO                    RO

     111                  RO                    RO

     MPU Configuration for a Stellaris Microcontroller

     Stellaris microcontrollers have only a single processor and no caches. As a result, the MPU should
     be programmed as shown in Table 3-6 on page 100.

     Table 3-6. Memory Region Attributes for Stellaris Microcontrollers

     Memory Region                TEX           S          C   B  Memory Type and Attributes
     Flash memory                 000b
     Internal SRAM                000b          0          1   0  Normal memory, non-shareable, write-through
     External SRAM                000b
                                                1          1   0  Normal memory, shareable, write-through
     Peripherals                  000b
                                                1          1   1  Normal memory, shareable, write-back,

                                                                  write-allocate

                                                1          0   1  Device memory, shareable

100                                                                               November 17, 2011

                                  Texas Instruments-Production Data
                                                                           Stellaris LM3S3634 Microcontroller

3.1.4.3  In current Stellaris microcontroller implementations, the shareability and cache policy attributes do
         not affect the system behavior. However, using these settings for the MPU regions can make the
         application code more portable. The values given are for typical situations.

         MPU Mismatch

         When an access violates the MPU permissions, the processor generates a memory management
         fault (see "Exceptions and Interrupts" on page 70 for more information). The MFAULTSTAT register
         indicates the cause of the fault. See page 139 for more information.

3.2 Register Map

                Table 3-7 on page 101 lists the Cortex-M3 Peripheral SysTick, NVIC, MPU and SCB registers. The
                offset listed is a hexadecimal increment to the register's address, relative to the Core Peripherals
                base address of 0xE000.E000.

                Note: Register spaces that are not used are reserved for future or internal use. Software should
                           not modify any reserved memory address.

Table 3-7. Peripherals Register Map

Offset Name                       Type  Reset          Description                          See
                                                                                            page
System Timer (SysTick) Registers
                                                                                             104
0x010 STCTRL                      R/W   0x0000.0000    SysTick Control and Status Register   106
                                                       SysTick Reload Value Register         107
0x014 STRELOAD                    R/W   0x0000.0000    SysTick Current Value Register
                                                                                             108
0x018 STCURRENT                   R/WC  0x0000.0000    Interrupt 0-31 Set Enable             109
                                                       Interrupt 32-47 Set Enable            110
Nested Vectored Interrupt Controller (NVIC) Registers  Interrupt 0-31 Clear Enable           111
                                                       Interrupt 32-47 Clear Enable          112
0x100 EN0                         R/W   0x0000.0000    Interrupt 0-31 Set Pending            113
                                                       Interrupt 32-47 Set Pending           114
0x104 EN1                         R/W   0x0000.0000    Interrupt 0-31 Clear Pending          115
                                                       Interrupt 32-47 Clear Pending         116
0x180 DIS0                        R/W   0x0000.0000    Interrupt 0-31 Active Bit             117
                                                       Interrupt 32-47 Active Bit            118
0x184 DIS1                        R/W   0x0000.0000    Interrupt 0-3 Priority                118
                                                       Interrupt 4-7 Priority                118
0x200 PEND0                       R/W   0x0000.0000    Interrupt 8-11 Priority               118
                                                       Interrupt 12-15 Priority              118
0x204 PEND1                       R/W   0x0000.0000    Interrupt 16-19 Priority

0x280 UNPEND0                     R/W   0x0000.0000

0x284 UNPEND1                     R/W   0x0000.0000

0x300 ACTIVE0                     RO    0x0000.0000

0x304 ACTIVE1                     RO    0x0000.0000

0x400 PRI0                        R/W   0x0000.0000

0x404 PRI1                        R/W   0x0000.0000

0x408 PRI2                        R/W   0x0000.0000

0x40C PRI3                        R/W   0x0000.0000

0x410 PRI4                        R/W   0x0000.0000

November 17, 2011                                                                           101

                                        Texas Instruments-Production Data
Cortex-M3 Peripherals

Table 3-7. Peripherals Register Map (continued)

Offset Name            Type             Reset        Description                              See
                                                                                              page
0x414 PRI5             R/W              0x0000.0000  Interrupt 20-23 Priority                  118
                                        0x0000.0000  Interrupt 24-27 Priority                  118
0x418 PRI6             R/W              0x0000.0000  Interrupt 28-31 Priority                  118
                                        0x0000.0000  Interrupt 32-35 Priority                  118
0x41C PRI7             R/W              0x0000.0000  Interrupt 36-39 Priority                  118
                                        0x0000.0000  Interrupt 40-43 Priority                  118
0x420 PRI8             R/W              0x0000.0000  Interrupt 44-47 Priority                  118
                                        0x0000.0000  Software Trigger Interrupt                120
0x424 PRI9             R/W
                                        0x411F.C231  CPU ID Base                               121
0x428 PRI10            R/W              0x0000.0000  Interrupt Control and State               122
                                        0x0000.0000  Vector Table Offset                       125
0x42C PRI11            R/W              0xFA05.0000  Application Interrupt and Reset Control   126
                                        0x0000.0000  System Control                            128
0xF00 SWTRIG           WO               0x0000.0000  Configuration and Control                 130
                                        0x0000.0000  System Handler Priority 1                 132
System Control Block (SCB) Registers    0x0000.0000  System Handler Priority 2                 133
                                        0x0000.0000  System Handler Priority 3                 134
0xD00 CPUID            RO               0x0000.0000  System Handler Control and State          135
                                        0x0000.0000  Configurable Fault Status                 139
0xD04 INTCTRL          R/W              0x0000.0000  Hard Fault Status                         145
                                                     Memory Management Fault Address           146
0xD08 VTABLE           R/W                      -    Bus Fault Address                         147
                                                -
0xD0C APINT            R/W                           MPU Type                                  148
                                        0x0000.0800  MPU Control                               149
0xD10 SYSCTRL          R/W              0x0000.0000  MPU Region Number                         151
                                        0x0000.0000  MPU Region Base Address                   152
0xD14 CFGCTRL          R/W              0x0000.0000  MPU Region Attribute and Size             154
                                        0x0000.0000  MPU Region Base Address Alias 1           152
0xD18 SYSPRI1          R/W              0x0000.0000  MPU Region Attribute and Size Alias 1     154
                                        0x0000.0000  MPU Region Base Address Alias 2           152
0xD1C SYSPRI2          R/W              0x0000.0000

0xD20 SYSPRI3          R/W

0xD24 SYSHNDCTRL       R/W

0xD28 FAULTSTAT        R/W1C

0xD2C HFAULTSTAT       R/W1C

0xD34 MMADDR           R/W

0xD38 FAULTADDR        R/W

Memory Protection Unit (MPU) Registers

0xD90 MPUTYPE          RO

0xD94 MPUCTRL          R/W

0xD98 MPUNUMBER        R/W

0xD9C MPUBASE          R/W

0xDA0 MPUATTR          R/W

0xDA4 MPUBASE1         R/W

0xDA8 MPUATTR1         R/W

0xDAC MPUBASE2         R/W

102                                                                                           November 17, 2011

                                        Texas Instruments-Production Data
                                                              Stellaris LM3S3634 Microcontroller

Table 3-7. Peripherals Register Map (continued)

Offset Name        Type  Reset                   Description                See
                                                                            page
0xDB0 MPUATTR2     R/W   0x0000.0000 MPU Region Attribute and Size Alias 2
0xDB4 MPUBASE3                                                               154
0xDB8 MPUATTR3     R/W   0x0000.0000 MPU Region Base Address Alias 3         152
                                                                             154
                   R/W   0x0000.0000 MPU Region Attribute and Size Alias 3

3.3 System Timer (SysTick) Register Descriptions

                This section lists and describes the System Timer registers, in numerical order by address offset.

November 17, 2011                                                           103

                         Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 1: SysTick Control and Status Register (STCTRL), offset 0x010

                  Note: This register can only be accessed from privileged mode.
                  The SysTick STCTRL register enables the SysTick features.

SysTick Control and Status Register (STCTRL)

Base 0xE000.E000
Offset 0x010
Type R/W, reset 0x0000.0000

       31         30  29     28  27        26  25        24        23  22  21  20  19  18   17   16

                                                         reserved                                COUNT

Type RO           RO  RO     RO  RO        RO  RO        RO        RO  RO  RO  RO  RO  RO   RO   RO

Reset  0          0   0      0   0         0   0         0         0   0   0   0   0   0    0    0

       15         14  13     12  11        10  9         8         7   6   5   4   3   2    1    0

                                               reserved                                CLK_SRC INTEN ENABLE

Type RO           RO  RO     RO  RO        RO  RO        RO        RO  RO  RO  RO  RO  R/W  R/W  R/W

Reset  0          0   0      0   0         0   0         0         0   0   0   0   0   0    0    0

       Bit/Field        Name         Type      Reset     Description
        31:17          reserved       RO       0x000
          16           COUNT          RO                 Software should not rely on the value of a reserved bit. To provide
                                                  0      compatibility with future products, the value of a reserved bit should be
         15:3          reserved       RO                 preserved across a read-modify-write operation.
           2          CLK_SRC        R/W       0x000
                                                  0      Count Flag

                                                            Value      Description
                                                            0
                                                                       The SysTick timer has not counted to 0 since the last time
                                                            1          this bit was read.

                                                                       The SysTick timer has counted to 0 since the last time
                                                                       this bit was read.

                                                         This bit is cleared by a read of the register or if the STCURRENT register
                                                         is written with any value.

                                                         If read by the debugger using the DAP, this bit is cleared only if the
                                                         MasterType bit in the AHB-AP Control Register is clear. Otherwise,
                                                         the COUNT bit is not changed by the debugger read. See the ARM
                                                         Debug Interface V5 Architecture Specification for more information on
                                                         MasterType.

                                                         Software should not rely on the value of a reserved bit. To provide
                                                         compatibility with future products, the value of a reserved bit should be
                                                         preserved across a read-modify-write operation.

                                                         Clock Source

                                                            Value Description

                                                            0 External reference clock. (Not implemented for most Stellaris
                                                                     microcontrollers.)

                                                            1 System clock

                                                         Because an external reference clock is not implemented, this bit must
                                                         be set in order for SysTick to operate.

104                                                                                    November 17, 2011

                                     Texas Instruments-Production Data
                                                              Stellaris LM3S3634 Microcontroller

Bit/Field           Name   Type  Reset  Description
    1               INTEN  R/W      0
                                        Interrupt Enable
    0              ENABLE  R/W
                                        Value        Description
                                        0
                                                     Interrupt generation is disabled. Software can use the
                                        1            COUNT bit to determine if the counter has ever reached 0.

                                                     An interrupt is generated to the NVIC when SysTick counts
                                                     to 0.

                                 0      Enable

                                        Value   Description
                                        0
                                        1       The counter is disabled.

                                                Enables SysTick to operate in a multi-shot way. That is, the
                                                counter loads the RELOAD value and begins counting down.
                                                On reaching 0, the COUNT bit is set and an interrupt is
                                                generated if enabled by INTEN. The counter then loads the
                                                RELOAD value again and begins counting.

November 17, 2011                                             105

                           Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 2: SysTick Reload Value Register (STRELOAD), offset 0x014

                  Note: This register can only be accessed from privileged mode.

                  The STRELOAD register specifies the start value to load into the SysTick Current Value
                  (STCURRENT) register when the counter reaches 0. The start value can be between 0x1 and
                  0x00FF.FFFF. A start value of 0 is possible but has no effect because the SysTick interrupt and the
                  COUNT bit are activated when counting from 1 to 0.

                  SysTick can be configured as a multi-shot timer, repeated over and over, firing every N+1 clock
                  pulses, where N is any value from 1 to 0x00FF.FFFF. For example, if a tick interrupt is required
                  every 100 clock pulses, 99 must be written into the RELOAD field.

SysTick Reload Value Register (STRELOAD)

Base 0xE000.E000
Offset 0x014
Type R/W, reset 0x0000.0000

       31         30   29    28     27                 26   25         24   23       22   21   20   19       18   17   16

                                    reserved                                                      RELOAD

Type RO           RO   RO    RO     RO                 RO   RO         RO   R/W      R/W  R/W  R/W  R/W      R/W  R/W  R/W

Reset  0          0    0         0            0        0    0          0          0  0    0    0          0  0    0    0

       15         14   13    12     11                 10   9          8          7  6    5    4          3  2    1    0

                                                                          RELOAD

Type R/W          R/W  R/W   R/W    R/W                R/W  R/W        R/W  R/W      R/W  R/W  R/W  R/W      R/W  R/W  R/W

Reset  0          0    0         0            0        0    0          0          0  0    0    0          0  0    0    0

       Bit/Field         Name                    Type       Reset Description
        31:24          reserved                   RO
                                                            0x00       Software should not rely on the value of a reserved bit. To provide
         23:0          RELOAD                    R/W                   compatibility with future products, the value of a reserved bit should be
                                                                       preserved across a read-modify-write operation.

                                                            0x00.0000  Reload Value

                                                                       Value to load into the SysTick Current Value (STCURRENT) register
                                                                       when the counter reaches 0.

106                                                                                                          November 17, 2011

                                                 Texas Instruments-Production Data
                                                                                       Stellaris LM3S3634 Microcontroller

                  Register 3: SysTick Current Value Register (STCURRENT), offset 0x018

                  Note: This register can only be accessed from privileged mode.
                  The STCURRENT register contains the current value of the SysTick counter.

SysTick Current Value Register (STCURRENT)

Base 0xE000.E000
Offset 0x018
Type R/WC, reset 0x0000.0000

       31         30    29    28    27                26  25         24    23      22    21  20    19      18    17    16

                                   reserved                                      R/WC  R/WC  CURRENT     R/WC  R/WC  R/WC
                                                                                    0     0                 0     0     0
Type RO           RO    RO    RO    RO                RO  RO         RO    R/WC     6     5  R/WC  R/WC     2     1     0
                                                                                                0     0
Reset  0          0     0     0              0        0   0          0     0     R/WC  R/WC              R/WC  R/WC  R/WC
                                                                                    0     0                 0     0     0
       15         14    13    12    11                10  9          8     7                 4     3

                                                                     CURRENT

Type R/WC         R/WC  R/WC  R/WC  R/WC        R/WC      R/WC       R/WC  R/WC              R/WC  R/WC
                     0     0     0     0           0         0          0     0                 0     0
Reset  0

       Bit/Field           Name                 Type      Reset Description
        31:24            reserved                RO
                                                          0x00       Software should not rely on the value of a reserved bit. To provide
         23:0           CURRENT                 R/WC                 compatibility with future products, the value of a reserved bit should be
                                                                     preserved across a read-modify-write operation.

                                                          0x00.0000  Current Value

                                                                     This field contains the current value at the time the register is accessed.
                                                                     No read-modify-write protection is provided, so change with care.

                                                                     This register is write-clear. Writing to it with any value clears the register.
                                                                     Clearing this register also clears the COUNT bit of the STCTRL register.

3.4 NVIC Register Descriptions

                This section lists and describes the NVIC registers, in numerical order by address offset.

                The NVIC registers can only be fully accessed from privileged mode, but interrupts can be pended
                while in unprivileged mode by enabling the Configuration and Control (CFGCTRL) register. Any
                other unprivileged mode access causes a bus fault.

                Ensure software uses correctly aligned register accesses. The processor does not support unaligned
                accesses to NVIC registers.

                An interrupt can enter the pending state even if it is disabled.

                Before programming the VTABLE register to relocate the vector table, ensure the vector table
                entries of the new vector table are set up for fault handlers, NMI, and all enabled exceptions such
                as interrupts. For more information, see page 125.

November 17, 2011                                                                                                    107

                                                Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 4: Interrupt 0-31 Set Enable (EN0), offset 0x100

                  Note: This register can only be accessed from privileged mode.

                  The EN0 register enables interrupts and shows which interrupts are enabled. Bit 0 corresponds to
                  Interrupt 0; bit 31 corresponds to Interrupt 31.

                  See Table 2-9 on page 81 for interrupt assignments.

                  If a pending interrupt is enabled, the NVIC activates the interrupt based on its priority. If an interrupt
                  is not enabled, asserting its interrupt signal changes the interrupt state to pending, but the NVIC
                  never activates the interrupt, regardless of its priority.

Interrupt 0-31 Set Enable (EN0)

Base 0xE000.E000
Offset 0x100
Type R/W, reset 0x0000.0000

       31         30   29    28   27        26   25   24        23   22     21   20   19   18   17                    16

                                                           INT

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W  R/W       R/W  R/W    R/W  R/W  R/W  R/W  R/W                   R/W

Reset  0          0    0     0    0         0    0    0         0        0  0    0    0    0    0                     0

       15         14   13    12   11        10   9    8         7        6  5    4    3    2    1                     0

                                                           INT

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W  R/W       R/W  R/W    R/W  R/W  R/W  R/W  R/W                   R/W

Reset  0          0    0     0    0         0    0    0         0        0  0    0    0    0    0                     0

       Bit/Field       Name           Type       Reset Description
         31:0           INT
                                       R/W 0x0000.0000 Interrupt Enable

                                                         Value       Description
                                                         0           On a read, indicates the interrupt is disabled.
                                                                     On a write, no effect.
                                                         1           On a read, indicates the interrupt is enabled.
                                                                     On a write, enables the interrupt.

                                                      A bit can only be cleared by setting the corresponding INT[n] bit in
                                                      the DISn register.

108                                                                                        November 17, 2011

                                       Texas Instruments-Production Data
                                                                                      Stellaris LM3S3634 Microcontroller

                  Register 5: Interrupt 32-47 Set Enable (EN1), offset 0x104

                  Note: This register can only be accessed from privileged mode.

                  The EN1 register enables interrupts and shows which interrupts are enabled. Bit 0 corresponds to
                  Interrupt 32; bit 15 corresponds to Interrupt 47. See Table 2-9 on page 81 for interrupt assignments.

                  If a pending interrupt is enabled, the NVIC activates the interrupt based on its priority. If an interrupt
                  is not enabled, asserting its interrupt signal changes the interrupt state to pending, but the NVIC
                  never activates the interrupt, regardless of its priority.

Interrupt 32-47 Set Enable (EN1)

Base 0xE000.E000
Offset 0x104
Type R/W, reset 0x0000.0000

       31         30   29        28  27        26   25     24        23    22     21   20   19   18   17                    16

                                                              reserved

Type RO           RO   RO    RO      RO        RO   RO     RO        RO    RO     RO   RO   RO   RO   RO                    RO

Reset  0          0    0         0   0         0    0      0            0      0  0    0    0    0    0                     0

       15         14   13        12  11        10   9      8            7      6  5    4    3    2    1                     0

                                                                INT

Type R/W          R/W  R/W   R/W     R/W       R/W  R/W    R/W       R/W   R/W    R/W  R/W  R/W  R/W  R/W                   R/W

Reset  0          0    0         0   0         0    0      0            0      0  0    0    0    0    0                     0

       Bit/Field        Name             Type       Reset Description
        31:16          reserved           RO
                                                    0x000  Software should not rely on the value of a reserved bit. To provide
         15:0             INT            R/W               compatibility with future products, the value of a reserved bit should be
                                                           preserved across a read-modify-write operation.

                                                    0x0.0000 Interrupt Enable

                                                              Value        Description
                                                              0            On a read, indicates the interrupt is disabled.
                                                                           On a write, no effect.
                                                              1            On a read, indicates the interrupt is enabled.
                                                                           On a write, enables the interrupt.

                                                           A bit can only be cleared by setting the corresponding INT[n] bit in
                                                           the DIS1 register.

November 17, 2011                                                                                                           109

                                          Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 6: Interrupt 0-31 Clear Enable (DIS0), offset 0x180

                  Note: This register can only be accessed from privileged mode.
                  The DIS0 register disables interrupts. Bit 0 corresponds to Interrupt 0; bit 31 corresponds to Interrupt
                  31.
                  See Table 2-9 on page 81 for interrupt assignments.

Interrupt 0-31 Clear Enable (DIS0)

Base 0xE000.E000
Offset 0x180
Type R/W, reset 0x0000.0000

       31         30   29    28     27        26   25   24        23   22   21   20   19   18   17   16

                                                             INT

Type R/W          R/W  R/W   R/W    R/W       R/W  R/W  R/W       R/W  R/W  R/W  R/W  R/W  R/W  R/W  R/W

Reset  0          0    0     0      0         0    0    0         0    0    0    0    0    0    0    0

       15         14   13    12     11        10   9    8         7    6    5    4    3    2    1    0

                                                             INT

Type R/W          R/W  R/W   R/W    R/W       R/W  R/W  R/W       R/W  R/W  R/W  R/W  R/W  R/W  R/W  R/W

Reset  0          0    0     0      0         0    0    0         0    0    0    0    0    0    0    0

       Bit/Field       Name             Type       Reset Description
         31:0           INT
                                         R/W 0x0000.0000 Interrupt Disable

                                                           Value Description
                                                           0 On a read, indicates the interrupt is disabled.

                                                                    On a write, no effect.
                                                           1 On a read, indicates the interrupt is enabled.

                                                                    On a write, clears the corresponding INT[n] bit in the EN0
                                                                    register, disabling interrupt [n].

110                                                                                        November 17, 2011

                                         Texas Instruments-Production Data
                                                                                    Stellaris LM3S3634 Microcontroller

                  Register 7: Interrupt 32-47 Clear Enable (DIS1), offset 0x184

                  Note: This register can only be accessed from privileged mode.

                  The DIS1 register disables interrupts. Bit 0 corresponds to Interrupt 32; bit 15 corresponds to Interrupt
                  47. See Table 2-9 on page 81 for interrupt assignments.

Interrupt 32-47 Clear Enable (DIS1)

Base 0xE000.E000
Offset 0x184
Type R/W, reset 0x0000.0000

       31         30   29        28  27        26   25     24        23    22   21   20   19   18   17   16

                                                              reserved

Type RO           RO   RO    RO      RO        RO   RO     RO        RO    RO   RO   RO   RO   RO   RO   RO

Reset  0          0    0         0   0         0    0      0            0  0    0    0    0    0    0    0

       15         14   13        12  11        10   9      8            7  6    5    4    3    2    1    0

                                                                INT

Type R/W          R/W  R/W   R/W     R/W       R/W  R/W    R/W       R/W   R/W  R/W  R/W  R/W  R/W  R/W  R/W

Reset  0          0    0         0   0         0    0      0            0  0    0    0    0    0    0    0

       Bit/Field        Name             Type       Reset Description
        31:16          reserved           RO
                                                    0x000  Software should not rely on the value of a reserved bit. To provide
         15:0             INT            R/W               compatibility with future products, the value of a reserved bit should be
                                                           preserved across a read-modify-write operation.

                                                    0x0.0000 Interrupt Disable

                                                              Value Description
                                                              0 On a read, indicates the interrupt is disabled.

                                                                       On a write, no effect.
                                                              1 On a read, indicates the interrupt is enabled.

                                                                       On a write, clears the corresponding INT[n] bit in the EN1
                                                                       register, disabling interrupt [n].

November 17, 2011                                                                                                                  111

                                          Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 8: Interrupt 0-31 Set Pending (PEND0), offset 0x200

                  Note: This register can only be accessed from privileged mode.
                  The PEND0 register forces interrupts into the pending state and shows which interrupts are pending.
                  Bit 0 corresponds to Interrupt 0; bit 31 corresponds to Interrupt 31.
                  See Table 2-9 on page 81 for interrupt assignments.

Interrupt 0-31 Set Pending (PEND0)

Base 0xE000.E000
Offset 0x200
Type R/W, reset 0x0000.0000

       31         30   29    28     27        26   25   24        23   22      21   20   19   18   17   16

                                                             INT

Type R/W          R/W  R/W   R/W  R/W         R/W  R/W  R/W       R/W  R/W     R/W  R/W  R/W  R/W  R/W  R/W

Reset  0          0    0     0      0         0    0    0         0    0       0    0    0    0    0    0

       15         14   13    12     11        10   9    8         7    6       5    4    3    2    1    0

                                                             INT

Type R/W          R/W  R/W   R/W  R/W         R/W  R/W  R/W       R/W  R/W     R/W  R/W  R/W  R/W  R/W  R/W

Reset  0          0    0     0      0         0    0    0         0    0       0    0    0    0    0    0

       Bit/Field       Name             Type       Reset Description
         31:0           INT
                                        R/W 0x0000.0000 Interrupt Set Pending

                                                           Value       Description
                                                           0           On a read, indicates that the interrupt is not pending.
                                                                       On a write, no effect.
                                                           1           On a read, indicates that the interrupt is pending.
                                                                       On a write, the corresponding interrupt is set to pending
                                                                       even if it is disabled.

                                                        If the corresponding interrupt is already pending, setting a bit has no
                                                        effect.

                                                        A bit can only be cleared by setting the corresponding INT[n] bit in
                                                        the UNPEND0 register.

112                                                                                           November 17, 2011

                                        Texas Instruments-Production Data
                                                                                        Stellaris LM3S3634 Microcontroller

                  Register 9: Interrupt 32-47 Set Pending (PEND1), offset 0x204

                  Note: This register can only be accessed from privileged mode.

                  The PEND1 register forces interrupts into the pending state and shows which interrupts are pending.
                  Bit 0 corresponds to Interrupt 32; bit 15 corresponds to Interrupt 47. See Table 2-9 on page 81 for
                  interrupt assignments.

Interrupt 32-47 Set Pending (PEND1)

Base 0xE000.E000
Offset 0x204
Type R/W, reset 0x0000.0000

       31         30   29        28  27        26   25     24        23    22       21   20   19   18   17   16

                                                              reserved

Type RO           RO   RO    RO      RO        RO   RO     RO        RO    RO       RO   RO   RO   RO   RO   RO

Reset  0          0    0         0   0         0    0      0            0  0        0    0    0    0    0    0

       15         14   13        12  11        10   9      8            7  6        5    4    3    2    1    0

                                                                INT

Type R/W          R/W  R/W   R/W     R/W       R/W  R/W    R/W       R/W   R/W      R/W  R/W  R/W  R/W  R/W  R/W

Reset  0          0    0         0   0         0    0      0            0  0        0    0    0    0    0    0

       Bit/Field        Name             Type       Reset Description
        31:16          reserved           RO
                                                    0x000  Software should not rely on the value of a reserved bit. To provide
         15:0             INT            R/W               compatibility with future products, the value of a reserved bit should be
                                                           preserved across a read-modify-write operation.

                                                    0x0.0000 Interrupt Set Pending

                                                              Value        Description
                                                              0            On a read, indicates that the interrupt is not pending.
                                                                           On a write, no effect.
                                                              1            On a read, indicates that the interrupt is pending.
                                                                           On a write, the corresponding interrupt is set to pending
                                                                           even if it is disabled.

                                                           If the corresponding interrupt is already pending, setting a bit has no
                                                           effect.

                                                           A bit can only be cleared by setting the corresponding INT[n] bit in
                                                           the UNPEND1 register.

November 17, 2011                                                                                            113

                                          Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 10: Interrupt 0-31 Clear Pending (UNPEND0), offset 0x280

                  Note: This register can only be accessed from privileged mode.
                  The UNPEND0 register shows which interrupts are pending and removes the pending state from
                  interrupts. Bit 0 corresponds to Interrupt 0; bit 31 corresponds to Interrupt 31.
                  See Table 2-9 on page 81 for interrupt assignments.

Interrupt 0-31 Clear Pending (UNPEND0)

Base 0xE000.E000
Offset 0x280
Type R/W, reset 0x0000.0000

       31         30   29    28   27        26   25   24        23   22         21  20   19   18   17   16

                                                           INT

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W  R/W       R/W  R/W  R/W       R/W  R/W  R/W  R/W  R/W

Reset  0          0    0     0    0         0    0    0         0    0          0   0    0    0    0    0

       15         14   13    12   11        10   9    8         7    6          5   4    3    2    1    0

                                                           INT

Type R/W          R/W  R/W   R/W  R/W       R/W  R/W  R/W       R/W  R/W  R/W       R/W  R/W  R/W  R/W  R/W

Reset  0          0    0     0    0         0    0    0         0    0          0   0    0    0    0    0

       Bit/Field       Name           Type       Reset Description
         31:0           INT
                                       R/W 0x0000.0000 Interrupt Clear Pending

                                                         Value Description

                                                         0 On a read, indicates that the interrupt is not pending.
                                                                  On a write, no effect.

                                                         1 On a read, indicates that the interrupt is pending.
                                                                  On a write, clears the corresponding INT[n] bit in the PEND0
                                                                  register, so that interrupt [n] is no longer pending.
                                                                  Setting a bit does not affect the active state of the corresponding
                                                                  interrupt.

114                                                                                           November 17, 2011

                                        Texas Instruments-Production Data
                                                                                          Stellaris LM3S3634 Microcontroller

                  Register 11: Interrupt 32-47 Clear Pending (UNPEND1), offset 0x284

                  Note: This register can only be accessed from privileged mode.

                  The UNPEND1 register shows which interrupts are pending and removes the pending state from
                  interrupts. Bit 0 corresponds to Interrupt 32; bit 15 corresponds to Interrupt 47. See Table
                  2-9 on page 81 for interrupt assignments.

Interrupt 32-47 Clear Pending (UNPEND1)

Base 0xE000.E000
Offset 0x284
Type R/W, reset 0x0000.0000

       31         30   29        28  27        26   25     24        23    22         21  20   19   18   17   16

                                                              reserved

Type RO           RO   RO    RO      RO        RO   RO     RO        RO    RO         RO  RO   RO   RO   RO   RO

Reset  0          0    0         0   0         0    0      0            0  0          0   0    0    0    0    0

       15         14   13        12  11        10   9      8            7  6          5   4    3    2    1    0

                                                                INT

Type R/W          R/W  R/W   R/W     R/W       R/W  R/W    R/W       R/W   R/W  R/W       R/W  R/W  R/W  R/W  R/W

Reset  0          0    0         0   0         0    0      0            0  0          0   0    0    0    0    0

       Bit/Field        Name             Type       Reset Description
        31:16          reserved           RO
                                                    0x000  Software should not rely on the value of a reserved bit. To provide
         15:0             INT            R/W               compatibility with future products, the value of a reserved bit should be
                                                           preserved across a read-modify-write operation.

                                                    0x0.0000 Interrupt Clear Pending

                                                              Value Description

                                                              0 On a read, indicates that the interrupt is not pending.
                                                                       On a write, no effect.

                                                              1 On a read, indicates that the interrupt is pending.
                                                                       On a write, clears the corresponding INT[n] bit in the PEND1
                                                                       register, so that interrupt [n] is no longer pending.
                                                                       Setting a bit does not affect the active state of the corresponding
                                                                       interrupt.

November 17, 2011                                                                                             115

                                          Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 12: Interrupt 0-31 Active Bit (ACTIVE0), offset 0x300

                  Note: This register can only be accessed from privileged mode.
                  The ACTIVE0 register indicates which interrupts are active. Bit 0 corresponds to Interrupt 0; bit 31
                  corresponds to Interrupt 31.
                  See Table 2-9 on page 81 for interrupt assignments.

                  Caution Do not manually set or clear the bits in this register.

Interrupt 0-31 Active Bit (ACTIVE0)

Base 0xE000.E000
Offset 0x300
Type RO, reset 0x0000.0000

       31         30  29    28       27        26  25  24       23        22  21  20  19  18  17  16

                                                           INT

Type RO           RO  RO    RO       RO        RO  RO  RO       RO        RO  RO  RO  RO  RO  RO  RO

Reset  0          0   0     0        0         0   0   0        0         0   0   0   0   0   0   0

       15         14  13    12       11        10  9   8        7         6   5   4   3   2   1   0

                                                           INT

Type RO           RO  RO    RO       RO        RO  RO  RO       RO        RO  RO  RO  RO  RO  RO  RO

Reset  0          0   0     0        0         0   0   0        0         0   0   0   0   0   0   0

       Bit/Field      Name               Type      Reset Description
         31:0          INT
                                         RO 0x0000.0000 Interrupt Active

                                                          Value Description
                                                          0 The corresponding interrupt is not active.
                                                          1 The corresponding interrupt is active, or active and pending.

116                                                                                       November 17, 2011

                                         Texas Instruments-Production Data
                                                                                      Stellaris LM3S3634 Microcontroller

                  Register 13: Interrupt 32-47 Active Bit (ACTIVE1), offset 0x304

                  Note: This register can only be accessed from privileged mode.
                  The ACTIVE1 register indicates which interrupts are active. Bit 0 corresponds to Interrupt 32; bit
                  15 corresponds to Interrupt 47. See Table 2-9 on page 81 for interrupt assignments.

                  Caution Do not manually set or clear the bits in this register.

Interrupt 32-47 Active Bit (ACTIVE1)

Base 0xE000.E000
Offset 0x304
Type RO, reset 0x0000.0000

       31         30  29        28  27         26  25     24       23         22  21  20  19  18  17  16

                                                             reserved

Type RO           RO  RO    RO      RO         RO  RO     RO       RO         RO  RO  RO  RO  RO  RO  RO

Reset  0          0   0         0     0        0   0      0            0      0   0   0   0   0   0   0

       15         14  13        12  11         10  9      8            7      6   5   4   3   2   1   0

                                                              INT

Type RO           RO  RO    RO      RO         RO  RO     RO       RO         RO  RO  RO  RO  RO  RO  RO

Reset  0          0   0         0     0        0   0      0            0      0   0   0   0   0   0   0

       Bit/Field       Name              Type      Reset Description
        31:16         reserved            RO
                                                   0x000  Software should not rely on the value of a reserved bit. To provide
         15:0            INT              RO              compatibility with future products, the value of a reserved bit should be
                                                          preserved across a read-modify-write operation.

                                                   0x0.0000 Interrupt Active

                                                             Value Description
                                                             0 The corresponding interrupt is not active.
                                                             1 The corresponding interrupt is active, or active and pending.

November 17, 2011                                                                                     117

                                         Texas Instruments-Production Data
Cortex-M3 Peripherals

           Register 14: Interrupt 0-3 Priority (PRI0), offset 0x400
           Register 15: Interrupt 4-7 Priority (PRI1), offset 0x404
           Register 16: Interrupt 8-11 Priority (PRI2), offset 0x408
           Register 17: Interrupt 12-15 Priority (PRI3), offset 0x40C
           Register 18: Interrupt 16-19 Priority (PRI4), offset 0x410
           Register 19: Interrupt 20-23 Priority (PRI5), offset 0x414
           Register 20: Interrupt 24-27 Priority (PRI6), offset 0x418
           Register 21: Interrupt 28-31 Priority (PRI7), offset 0x41C
           Register 22: Interrupt 32-35 Priority (PRI8), offset 0x420
           Register 23: Interrupt 36-39 Priority (PRI9), offset 0x424
           Register 24: Interrupt 40-43 Priority (PRI10), offset 0x428
           Register 25: Interrupt 44-47 Priority (PRI11), offset 0x42C

           Note: This register can only be accessed from privileged mode.
           The PRIn registers provide 3-bit priority fields for each interrupt. These registers are byte accessible.
           Each register holds four priority fields that are assigned to interrupts as follows:

           PRIn Register Bit Field                        Interrupt
           Bits 31:29                                     Interrupt [4n+3]
           Bits 23:21                                     Interrupt [4n+2]
           Bits 15:13                                     Interrupt [4n+1]
           Bits 7:5                                       Interrupt [4n]

           See Table 2-9 on page 81 for interrupt assignments.

           Each priority level can be split into separate group priority and subpriority fields. The PRIGROUP
           field in the Application Interrupt and Reset Control (APINT) register (see page 126) indicates the
           position of the binary point that splits the priority and subpriority fields.

           These registers can only be accessed from privileged mode.

Interrupt 0-3 Priority (PRI0)

Base 0xE000.E000
Offset 0x400
Type R/W, reset 0x0000.0000

       31  30    29            28   27  26        25  24  23   22          21  20  19  18        17  16

           INTD                         reserved               INTC                    reserved

Type R/W   R/W   R/W           RO   RO  RO        RO  RO  R/W  R/W   R/W       RO  RO  RO        RO  RO

Reset  0   0     0             0    0   0         0   0   0    0            0  0   0   0         0   0

       15  14    13            12   11  10        9   8   7    6            5  4   3   2         1   0

           INTB                         reserved               INTA                    reserved

Type R/W   R/W   R/W           RO   RO  RO        RO  RO  R/W  R/W   R/W       RO  RO  RO        RO  RO

Reset  0   0     0             0    0   0         0   0   0    0            0  0   0   0         0   0

118                                                                                    November 17, 2011

                                        Texas Instruments-Production Data
                                                                Stellaris LM3S3634 Microcontroller

Bit/Field           Name     Type  Reset  Description
31:29               INTD    R/W    0x0
                                          Interrupt Priority for Interrupt [4n+3]
28:24             reserved   RO    0x0   This field holds a priority value, 0-7, for the interrupt with the number
23:21               INTC    R/W    0x0   [4n+3], where n is the number of the Interrupt Priority register (n=0 for
                                          PRI0, and so on). The lower the value, the greater the priority of the
20:16             reserved   RO    0x0   corresponding interrupt.
15:13               INTB    R/W    0x0
                                          Software should not rely on the value of a reserved bit. To provide
  12:8             reserved   RO    0x0   compatibility with future products, the value of a reserved bit should be
   7:5               INTA    R/W    0x0   preserved across a read-modify-write operation.

   4:0             reserved   RO    0x0   Interrupt Priority for Interrupt [4n+2]
                                          This field holds a priority value, 0-7, for the interrupt with the number
                                          [4n+2], where n is the number of the Interrupt Priority register (n=0 for
                                          PRI0, and so on). The lower the value, the greater the priority of the
                                          corresponding interrupt.

                                          Software should not rely on the value of a reserved bit. To provide
                                          compatibility with future products, the value of a reserved bit should be
                                          preserved across a read-modify-write operation.

                                          Interrupt Priority for Interrupt [4n+1]
                                          This field holds a priority value, 0-7, for the interrupt with the number
                                          [4n+1], where n is the number of the Interrupt Priority register (n=0 for
                                          PRI0, and so on). The lower the value, the greater the priority of the
                                          corresponding interrupt.

                                          Software should not rely on the value of a reserved bit. To provide
                                          compatibility with future products, the value of a reserved bit should be
                                          preserved across a read-modify-write operation.

                                          Interrupt Priority for Interrupt [4n]
                                          This field holds a priority value, 0-7, for the interrupt with the number
                                          [4n], where n is the number of the Interrupt Priority register (n=0 for
                                          PRI0, and so on). The lower the value, the greater the priority of the
                                          corresponding interrupt.

                                          Software should not rely on the value of a reserved bit. To provide
                                          compatibility with future products, the value of a reserved bit should be
                                          preserved across a read-modify-write operation.

November 17, 2011                                               119

                             Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 26: Software Trigger Interrupt (SWTRIG), offset 0xF00

                  Note: Only privileged software can enable unprivileged access to the SWTRIG register.

                  Writing an interrupt number to the SWTRIG register generates a Software Generated Interrupt (SGI).
                  See Table 2-9 on page 81 for interrupt assignments.

                  When the MAINPEND bit in the Configuration and Control (CFGCTRL) register (see page 130) is
                  set, unprivileged software can access the SWTRIG register.

Software Trigger Interrupt (SWTRIG)

Base 0xE000.E000
Offset 0xF00
Type WO, reset 0x0000.0000

       31         30  29        28  27        26    25    24  23          22  21  20  19         18  17  16

                                                             reserved

Type RO           RO  RO    RO      RO        RO    RO    RO  RO          RO  RO  RO  RO         RO  RO  RO

Reset  0          0   0         0   0            0  0     0            0  0   0   0   0          0   0   0

       15         14  13        12  11        10    9     8            7  6   5   4   3          2   1   0

                                       reserved                                           INTID

Type RO           RO  RO    RO      RO        RO    RO    RO  RO          RO  WO  WO  WO         WO  WO  WO

Reset  0          0   0         0   0            0  0     0            0  0   0   0   0          0   0   0

       Bit/Field       Name             Type        Reset Description
         31:6         reserved           RO
                                                    0x0000.00 Software should not rely on the value of a reserved bit. To provide
          5:0          INTID            WO                            compatibility with future products, the value of a reserved bit should be
                                                                      preserved across a read-modify-write operation.

                                                    0x00  Interrupt ID

                                                          This field holds the interrupt ID of the required SGI. For example, a value
                                                          of 0x3 generates an interrupt on IRQ3.

3.5 System Control Block (SCB) Register Descriptions

                This section lists and describes the System Control Block (SCB) registers, in numerical order by
                address offset. The SCB registers can only be accessed from privileged mode.

                All registers must be accessed with aligned word accesses except for the FAULTSTAT and
                SYSPRI1-SYSPRI3 registers, which can be accessed with byte or aligned halfword or word accesses.
                The processor does not support unaligned accesses to system control block registers.

120                                                                                       November 17, 2011

                                        Texas Instruments-Production Data
                                                                                               Stellaris LM3S3634 Microcontroller

                  Register 27: CPU ID Base (CPUID), offset 0xD00

                  Note: This register can only be accessed from privileged mode.

                  The CPUID register contains the ARM CortexTM-M3 processor part number, version, and
                  implementation information.

CPU ID Base (CPUID)

Base 0xE000.E000
Offset 0xD00
Type RO, reset 0x411F.C231

       31         30  29         28       27        26  25        24  23          22       21    20  19  18       17  16

                                     IMP                                              VAR                    CON

Type R0           R0  R0         R0       R0        R0  R0        R0  RO    RO             RO    RO  RO  RO       RO  RO

Reset  0          1   0          0        0         0          0  1   0           0        0     1   1   1        1   1

       15         14  13         12       11        10         9  8   7           6        5     4   3   2        1   0

                                                       PARTNO                                                REV

Type RO           RO  RO         RO       RO        RO  RO        RO  RO    RO             RO    RO  RO  RO       RO  RO

Reset  1          1   0          0        0         0          1  0   0           0        1     1   0   0        0   1

       Bit/Field      Name                    Type      Reset     Description
        31:24          IMP                     R0       0x41      Implementer Code
                                                                  Value Description
                                                                  0x41 ARM

       23:20                VAR               RO        0x1       Variant Number

                                                                     Value Description

                                                                     0x1 The rn value in the rnpn product revision identifier, for example,
                                                                              the 1 in r1p1.

       19:16                CON               RO        0xF       Constant

                                                                     Value Description
                                                                     0xF Always reads as 0xF.

       15:4           PARTNO                  RO        0xC23 Part Number

                                                                     Value Description
                                                                     0xC23 Cortex-M3 processor.

       3:0                  REV               RO        0x1       Revision Number

                                                                     Value Description

                                                                     0x1 The pn value in the rnpn product revision identifier, for example,
                                                                              the 1 in r1p1.

November 17, 2011                                                                                                     121

                                              Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 28: Interrupt Control and State (INTCTRL), offset 0xD04

                  Note: This register can only be accessed from privileged mode.

                  The INCTRL register provides a set-pending bit for the NMI exception, and set-pending and
                  clear-pending bits for the PendSV and SysTick exceptions. In addition, bits in this register indicate
                  the exception number of the exception being processed, whether there are preempted active
                  exceptions, the exception number of the highest priority pending exception, and whether any interrupts
                  are pending.

                  When writing to INCTRL, the effect is unpredictable when writing a 1 to both the PENDSV and
                  UNPENDSV bits, or writing a 1 to both the PENDSTSET and PENDSTCLR bits.

Interrupt Control and State (INTCTRL)

Base 0xE000.E000
Offset 0xD04
Type R/W, reset 0x0000.0000

       31         30  29          28   27        26   25     24       23  22                   21  20        19      18  17       16

       NMISET        reserved     PENDSV UNPENDSV PENDSTSET PENDSTCLR reserved ISRPRE ISRPEND      reserved              VECPEND

Type R/W          RO  RO          R/W  WO        R/W  WO     RO       RO  RO                   RO  RO        RO      RO  RO       RO

Reset  0          0            0  0    0         0    0            0  0   0                    0   0         0       0   0        0

       15         14  13          12   11        10   9            8  7   6                    5   4         3       2   1        0

                  VECPEND              RETBASE           reserved                                            VECACT

Type RO           RO  RO          RO   RO        RO   RO     RO       RO  RO                   RO  RO        RO      RO  RO       RO

Reset  0          0            0  0    0         0    0            0  0   0                    0   0         0       0   0        0

       Bit/Field        Name               Type       Reset        Description
          31          NMISET               R/W           0
                                                                   NMI Set Pending
        30:29         reserved              RO         0x0
          28          PENDSV               R/W           0         Value Description
                                                                   0 On a read, indicates an NMI exception is not pending.

                                                                             On a write, no effect.
                                                                   1 On a read, indicates an NMI exception is pending.

                                                                             On a write, changes the NMI exception state to pending.

                                                                   Because NMI is the highest-priority exception, normally the processor
                                                                   enters the NMI exception handler as soon as it registers the setting of
                                                                   this bit, and clears this bit on entering the interrupt handler. A read of
                                                                   this bit by the NMI exception handler returns 1 only if the NMI signal is
                                                                   reasserted while the processor is executing that handler.

                                                                   Software should not rely on the value of a reserved bit. To provide
                                                                   compatibility with future products, the value of a reserved bit should be
                                                                   preserved across a read-modify-write operation.

                                                                   PendSV Set Pending

                                                                   Value Description
                                                                   0 On a read, indicates a PendSV exception is not pending.

                                                                             On a write, no effect.
                                                                   1 On a read, indicates a PendSV exception is pending.

                                                                             On a write, changes the PendSV exception state to pending.

                                                                   Setting this bit is the only way to set the PendSV exception state to
                                                                   pending. This bit is cleared by writing a 1 to the UNPENDSV bit.

122                                                                                                                  November 17, 2011

                                                Texas Instruments-Production Data
                                                           Stellaris LM3S3634 Microcontroller

Bit/Field       Name    Type  Reset  Description
   27      UNPENDSV     WO       0
                                     PendSV Clear Pending
   26      PENDSTSET    R/W      0
                                     Value Description
   25      PENDSTCLR    WO       0   0 On a write, no effect.
                                     1 On a write, removes the pending state from the PendSV
   24         reserved   RO      0
   23         ISRPRE     RO      0             exception.

   22        ISRPEND     RO      0   This bit is write only; on a register read, its value is unknown.
21:19        reserved   RO    0x0
                                     SysTick Set Pending

                                     Value Description
                                     0 On a read, indicates a SysTick exception is not pending.

                                               On a write, no effect.
                                     1 On a read, indicates a SysTick exception is pending.

                                               On a write, changes the SysTick exception state to pending.

                                     This bit is cleared by writing a 1 to the PENDSTCLR bit.

                                     SysTick Clear Pending

                                     Value Description
                                     0 On a write, no effect.
                                     1 On a write, removes the pending state from the SysTick

                                               exception.

                                     This bit is write only; on a register read, its value is unknown.

                                     Software should not rely on the value of a reserved bit. To provide
                                     compatibility with future products, the value of a reserved bit should be
                                     preserved across a read-modify-write operation.

                                     Debug Interrupt Handling

                                     Value Description
                                     0 The release from halt does not take an interrupt.
                                     1 The release from halt takes an interrupt.

                                     This bit is only meaningful in Debug mode and reads as zero when the
                                     processor is not in Debug mode.

                                     Interrupt Pending

                                     Value Description
                                     0 No interrupt is pending.
                                     1 An interrupt is pending.

                                     This bit provides status for all interrupts excluding NMI and Faults.

                                     Software should not rely on the value of a reserved bit. To provide
                                     compatibility with future products, the value of a reserved bit should be
                                     preserved across a read-modify-write operation.

November 17, 2011                                          123

                        Texas Instruments-Production Data
Cortex-M3 Peripherals

Bit/Field     Name     Type  Reset  Description
18:12     VECPEND      RO   0x00
                                    Interrupt Pending Vector Number
   11      RETBASE      RO
  10:7      reserved    RO          This field contains the exception number of the highest priority pending
   6:0      VECACT      RO          enabled exception. The value indicated by this field includes the effect
                                    of the BASEPRI and FAULTMASK registers, but not any effect of the
                                    PRIMASK register.

                                    Value        Description

                                    0x00         No exceptions are pending

                                    0x01         Reserved

                                    0x02         NMI

                                    0x03         Hard fault

                                    0x04         Memory management fault

                                    0x05         Bus fault

                                    0x06         Usage fault

                                    0x07-0x0A Reserved

                                    0x0B         SVCall

                                    0x0C         Reserved for Debug

                                    0x0D         Reserved

                                    0x0E         PendSV

                                    0x0F         SysTick

                                    0x10         Interrupt Vector 0

                                    0x11         Interrupt Vector 1

                                    ...          ...

                                    0x3F         Interrupt Vector 47

                                    0x40-0x7F Reserved

                               0    Return to Base

                             0x0    Value Description
                             0x00   0 There are preempted active exceptions to execute.
                                    1 There are no active exceptions, or the currently executing

                                              exception is the only active exception.

                                    This bit provides status for all interrupts excluding NMI and Faults. This
                                    bit only has meaning if the processor is currently executing an ISR (the
                                    Interrupt Program Status (IPSR) register is non-zero).

                                    Software should not rely on the value of a reserved bit. To provide
                                    compatibility with future products, the value of a reserved bit should be
                                    preserved across a read-modify-write operation.

                                    Interrupt Pending Vector Number
                                    This field contains the active exception number. The exception numbers
                                    can be found in the description for the VECPEND field. If this field is clear,
                                    the processor is in Thread mode. This field contains the same value as
                                    the ISRNUM field in the IPSR register.
                                    Subtract 16 from this value to obtain the IRQ number required to index
                                    into the Interrupt Set Enable (ENn), Interrupt Clear Enable (DISn),
                                    Interrupt Set Pending (PENDn), Interrupt Clear Pending (UNPENDn),
                                    and Interrupt Priority (PRIn) registers (see page 62).

124                                                                         November 17, 2011

                       Texas Instruments-Production Data
                                                                                              Stellaris LM3S3634 Microcontroller

                  Register 29: Vector Table Offset (VTABLE), offset 0xD08

                  Note: This register can only be accessed from privileged mode.

                  The VTABLE register indicates the offset of the vector table base address from memory address
                  0x0000.0000.

Vector Table Offset (VTABLE)

Base 0xE000.E000
Offset 0xD08
Type R/W, reset 0x0000.0000

       31         30     29        28  27              26   25     24   23   22           21   20   19              18   17   16

            reserved     BASE                                                OFFSET

Type RO           RO     R/W   R/W     R/W             R/W  R/W    R/W  R/W  R/W          R/W  R/W  R/W             R/W  R/W  R/W

Reset  0              0  0         0          0        0    0      0    0    0            0    0            0       0    0            0

       15         14     13        12  11              10   9      8    7    6            5    4            3       2    1            0

                                      OFFSET                                                      reserved

Type R/W          R/W    R/W   R/W     R/W             R/W  R/W    R/W  RO   RO           RO   RO   RO              RO   RO   RO

Reset  0              0  0         0          0        0    0      0    0    0            0    0            0       0    0            0

       Bit/Field          Name                   Type       Reset  Description
        31:30            reserved                 RO         0x0
                                                                   Software should not rely on the value of a reserved bit. To provide
          29              BASE                   R/W           0   compatibility with future products, the value of a reserved bit should be
                                                                   preserved across a read-modify-write operation.

                                                                   Vector Table Base

                                                                   Value Description
                                                                   0 The vector table is in the code memory region.
                                                                   1 The vector table is in the SRAM memory region.

       28:8              OFFSET                  R/W        0x000.00 Vector Table Offset

                                                                   When configuring the OFFSET field, the offset must be aligned to the
                                                                   number of exception entries in the vector table. Because there are 47
                                                                   interrupts, the offset must be aligned on a 256-byte boundary.

       7:0               reserved                RO         0x00 Software should not rely on the value of a reserved bit. To provide

                                                                   compatibility with future products, the value of a reserved bit should be

                                                                   preserved across a read-modify-write operation.

November 17, 2011                                                                                                                     125

                                                 Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 30: Application Interrupt and Reset Control (APINT), offset 0xD0C

                  Note: This register can only be accessed from privileged mode.

                  The APINT register provides priority grouping control for the exception model, endian status for
                  data accesses, and reset control of the system. To write to this register, 0x05FA must be written to
                  the VECTKEY field, otherwise the write is ignored.

                  The PRIGROUP field indicates the position of the binary point that splits the INTx fields in the
                  Interrupt Priority (PRIx) registers into separate group priority and subpriority fields. Table
                  3-8 on page 126 shows how the PRIGROUP value controls this split. The bit numbers in the Group
                  Priority Field and Subpriority Field columns in the table refer to the bits in the INTA field. For the
                  INTB field, the corresponding bits are 15:13; for INTC, 23:21; and for INTD, 31:29.

                  Note: Determining preemption of an exception uses only the group priority field.

                  Table 3-8. Interrupt Priority Levels

                  PRIGROUP Bit Field Binary Pointa            Group Priority Field Subpriority Field Group                                Subpriorities
                                                                                                                         Priorities

                  0x0 - 0x4               bxxx.               [7:5]            None                  8                                    1

                  0x5                     bxx.y               [7:6]            [5]                   4                                    2

                  0x6                     bx.yy               [7]              [6:5]                 2                                    4

                  0x7                     b.yyy               None             [7:5]                 1                                    8

                  a. INTx field showing the binary point. An x denotes a group priority field bit, and a y denotes a subpriority field bit.

Application Interrupt and Reset Control (APINT)

Base 0xE000.E000
Offset 0xD0C
Type R/W, reset 0xFA05.0000

       31         30   29    28           27        26   25          24   23   22     21        20      19                           18      17   16

                                                                     VECTKEY

Type R/W          R/W  R/W   R/W          R/W       R/W  R/W         R/W  R/W  R/W    R/W       R/W     R/W                          R/W     R/W  R/W

Reset  1          1    1               1  1         0    1           0    0    0      0         0       0                            1       0    1

       15         14   13    12           11        10   9           8    7    6      5         4       3                            2       1    0

       ENDIANESS             reserved                    PRIGROUP                     reserved               SYSRESREQ VECTCLRACT VECTRESET

Type RO           RO   RO    RO           RO        R/W  R/W         R/W  RO   RO     RO        RO      RO                           WO      WO   WO

Reset  0          0    0               0  0         0    0           0    0    0      0         0       0                            0       0    0

       Bit/Field           Name               Type        Reset      Description
        31:16           VECTKEY               R/W        0xFA05
                                                                     Register Key
          15           ENDIANESS               RO            0       This field is used to guard against accidental writes to this register.
        14:11            reserved              RO          0x0       0x05FA must be written to this field in order to change the bits in this
                                                                     register. On a read, 0xFA05 is returned.

                                                                     Data Endianess
                                                                     The Stellaris implementation uses only little-endian mode so this is
                                                                     cleared to 0.

                                                                     Software should not rely on the value of a reserved bit. To provide
                                                                     compatibility with future products, the value of a reserved bit should be
                                                                     preserved across a read-modify-write operation.

126                                                                                                                                  November 17, 2011

                                                 Texas Instruments-Production Data
                                                            Stellaris LM3S3634 Microcontroller

Bit/Field        Name    Type  Reset  Description
  10:8       PRIGROUP    R/W    0x0
   7:3                    RO    0x0   Interrupt Priority Grouping
    2          reserved  WO           This field determines the split of group priority from subpriority (see
           SYSRESREQ              0   Table 3-8 on page 126 for more information).
    1                    WO
    0      VECTCLRACT    WO       0   Software should not rely on the value of a reserved bit. To provide
            VECTRESET             0   compatibility with future products, the value of a reserved bit should be
                                      preserved across a read-modify-write operation.

                                      System Reset Request

                                      Value Description
                                      0 No effect.
                                      1 Resets the core and all on-chip peripherals except the Debug

                                                interface.

                                      This bit is automatically cleared during the reset of the core and reads
                                      as 0.

                                      Clear Active NMI / Fault
                                      This bit is reserved for Debug use and reads as 0. This bit must be
                                      written as a 0, otherwise behavior is unpredictable.

                                      System Reset
                                      This bit is reserved for Debug use and reads as 0. This bit must be
                                      written as a 0, otherwise behavior is unpredictable.

November 17, 2011                                           127

                         Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 31: System Control (SYSCTRL), offset 0xD10

                  Note: This register can only be accessed from privileged mode.
                  The SYSCTRL register controls features of entry to and exit from low-power state.

System Control (SYSCTRL)

Base 0xE000.E000
Offset 0xD10
Type R/W, reset 0x0000.0000

       31         30  29     28    27        26  25  24  23          22   21  20   19                 18   17   16

                                                        reserved

Type RO           RO  RO     RO    RO        RO  RO  RO  RO          RO   RO  RO   RO                 RO   RO   RO

Reset  0          0   0      0     0         0   0   0            0  0    0   0    0                  0    0              0

       15         14  13     12    11        10  9   8            7  6    5   4    3                  2    1              0

                                       reserved                               SEVONPEND reserved SLEEPDEEP SLEEPEXIT reserved

Type RO           RO  RO     RO    RO        RO  RO  RO  RO          RO   RO  R/W  RO                 R/W  R/W  RO

Reset  0          0   0      0     0         0   0   0            0  0    0   0    0                  0    0              0

       Bit/Field           Name        Type      Reset Description
         31:5            reserved       RO
           4          SEVONPEND        R/W       0x0000.00 Software should not rely on the value of a reserved bit. To provide
                                                                   compatibility with future products, the value of a reserved bit should be
           3             reserved       RO                         preserved across a read-modify-write operation.
           2          SLEEPDEEP        R/W
                                                 0   Wake Up on Pending

                                                        Value Description

                                                        0 Only enabled interrupts or events can wake up the processor;
                                                                 disabled interrupts are excluded.

                                                        1 Enabled events and all interrupts, including disabled interrupts,
                                                                 can wake up the processor.

                                                     When an event or interrupt enters the pending state, the event signal
                                                     wakes up the processor from WFE. If the processor is not waiting for an
                                                     event, the event is registered and affects the next WFE.

                                                     The processor also wakes up on execution of a SEV instruction or an
                                                     external event.

                                                 0   Software should not rely on the value of a reserved bit. To provide

                                                     compatibility with future products, the value of a reserved bit should be

                                                     preserved across a read-modify-write operation.

                                                 0   Deep Sleep Enable

                                                        Value Description
                                                        0 Use Sleep mode as the low power mode.
                                                        1 Use Deep-sleep mode as the low power mode.

128                                                                                    November 17, 2011

                                       Texas Instruments-Production Data
                                                          Stellaris LM3S3634 Microcontroller

Bit/Field      Name    Type  Reset  Description
    1      SLEEPEXIT   R/W      0
                                    Sleep on ISR Exit
    0        reserved   RO      0
                                    Value Description
                                    0 When returning from Handler mode to Thread mode, do not

                                              sleep when returning to Thread mode.
                                    1 When returning from Handler mode to Thread mode, enter sleep

                                              or deep sleep on return from an ISR.

                                    Setting this bit enables an interrupt-driven application to avoid returning
                                    to an empty main application.

                                    Software should not rely on the value of a reserved bit. To provide
                                    compatibility with future products, the value of a reserved bit should be
                                    preserved across a read-modify-write operation.

November 17, 2011                                         129

                       Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 32: Configuration and Control (CFGCTRL), offset 0xD14

                  Note: This register can only be accessed from privileged mode.

                  The CFGCTRL register controls entry to Thread mode and enables: the handlers for NMI, hard fault
                  and faults escalated by the FAULTMASK register to ignore bus faults; trapping of divide by zero
                  and unaligned accesses; and access to the SWTRIG register by unprivileged software (see page 120).

Configuration and Control (CFGCTRL)

Base 0xE000.E000
Offset 0xD14
Type R/W, reset 0x0000.0000

       31         30  29     28       27        26  25   24             23  22        21  20   19         18  17   16

                                                            reserved

Type RO           RO  RO     RO       RO        RO  RO   RO             RO  RO        RO  RO   RO         RO  RO   RO

Reset  0          0   0            0  0         0   0    0              0   0         0   0    0          0   0               0

       15         14  13     12       11        10  9    8              7   6         5   4    3          2   1               0

                         reserved                   STKALIGN BFHFNMIGN      reserved      DIV0 UNALIGNED reserved MAINPEND BASETHR

Type RO           RO  RO     RO       RO        RO  R/W  R/W            RO  RO        RO  R/W  R/W        RO  R/W  R/W

Reset  0          0   0            0  0         0   0    0              0   0         0   0    0          0   0               0

       Bit/Field          Name            Type      Reset Description
        31:10            reserved          RO
           9           STKALIGN           R/W       0x0000.00 Software should not rely on the value of a reserved bit. To provide
                                                                      compatibility with future products, the value of a reserved bit should be
           8          BFHFNMIGN           R/W                         preserved across a read-modify-write operation.

          7:5            reserved          RO       0    Stack Alignment on Exception Entry

                                                            Value Description
                                                            0 The stack is 4-byte aligned.
                                                            1 The stack is 8-byte aligned.

                                                         On exception entry, the processor uses bit 9 of the stacked PSR to
                                                         indicate the stack alignment. On return from the exception, it uses this
                                                         stacked bit to restore the correct stack alignment.

                                                    0    Ignore Bus Fault in NMI and Fault

                                                         This bit enables handlers with priority -1 or -2 to ignore data bus faults
                                                         caused by load and store instructions. The setting of this bit applies to
                                                         the hard fault, NMI, and FAULTMASK escalated handlers.

                                                            Value Description

                                                            0 Data bus faults caused by load and store instructions cause a
                                                                     lock-up.

                                                            1 Handlers running at priority -1 and -2 ignore data bus faults
                                                                     caused by load and store instructions.

                                                         Set this bit only when the handler and its data are in absolutely safe
                                                         memory. The normal use of this bit is to probe system devices and
                                                         bridges to detect control path problems and fix them.

                                                    0x0  Software should not rely on the value of a reserved bit. To provide

                                                         compatibility with future products, the value of a reserved bit should be

                                                         preserved across a read-modify-write operation.

130                                                                                                 November 17, 2011

                                          Texas Instruments-Production Data
                                                              Stellaris LM3S3634 Microcontroller

Bit/Field      Name    Type  Reset  Description
    4           DIV0   R/W      0
                                    Trap on Divide by 0
    3      UNALIGNED   R/W          This bit enables faulting or halting when the processor executes an
                                    SDIV or UDIV instruction with a divisor of 0.
    2        reserved   RO
    1      MAINPEND    R/W          Value Description
    0       BASETHR    R/W          0 Do not trap on divide by 0. A divide by zero returns a quotient

                                              of 0.
                                    1 Trap on divide by 0.

                             0      Trap on Unaligned Access

                                    Value Description

                                    0 Do not trap on unaligned halfword and word accesses.

                                    1 Trap on unaligned halfword and word accesses. An unaligned
                                             access generates a usage fault.

                                    Unaligned LDM, STM, LDRD, and STRD instructions always fault
                                    regardless of whether UNALIGNED is set.

                             0      Software should not rely on the value of a reserved bit. To provide

                                    compatibility with future products, the value of a reserved bit should be

                                    preserved across a read-modify-write operation.

                             0      Allow Main Interrupt Trigger

                                    Value Description

                                    0 Disables unprivileged software access to the SWTRIG register.

                                    1 Enables unprivileged software access to the SWTRIG register
                                             (see page 120).

                             0      Thread State Control

                                    Value Description

                                    0 The processor can enter Thread mode only when no exception
                                             is active.

                                    1 The processor can enter Thread mode from any level under the
                                             control of an EXC_RETURN value (see "Exception
                                             Return" on page 86 for more information).

November 17, 2011                                                                                        131

                       Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 33: System Handler Priority 1 (SYSPRI1), offset 0xD18

                  Note: This register can only be accessed from privileged mode.

                  The SYSPRI1 register configures the priority level, 0 to 7 of the usage fault, bus fault, and memory
                  management fault exception handlers. This register is byte-accessible.

System Handler Priority 1 (SYSPRI1)

Base 0xE000.E000
Offset 0xD18
Type R/W, reset 0x0000.0000

       31         30   29        28  27                26  25     24  23   22       21  20  19  18        17  16

                                    reserved                               USAGE                reserved

Type RO           RO   RO    RO      RO                RO  RO     RO  R/W  R/W    R/W   RO  RO  RO        RO  RO

Reset  0          0    0         0            0        0   0      0   0    0        0   0   0   0         0   0

       15         14   13        12  11                10  9      8   7    6        5   4   3   2         1   0

                  BUS                            reserved                  MEM                  reserved

Type R/W          R/W  R/W   RO      RO                RO  RO     RO  R/W  R/W    R/W   RO  RO  RO        RO  RO

Reset  0          0    0         0            0        0   0      0   0    0        0   0   0   0         0   0

       Bit/Field        Name                     Type      Reset  Description
        31:24          reserved                   RO       0x00
        23:21          USAGE                     R/W        0x0   Software should not rely on the value of a reserved bit. To provide
                                                                  compatibility with future products, the value of a reserved bit should be
        20:16          reserved                   RO        0x0   preserved across a read-modify-write operation.
        15:13            BUS                     R/W        0x0
         12:8                                     RO        0x0   Usage Fault Priority
                       reserved                  R/W        0x0   This field configures the priority level of the usage fault. Configurable
          7:5            MEM                                      priority values are in the range 0-7, with lower values having higher
                                                  RO        0x0   priority.
          4:0          reserved
                                                                  Software should not rely on the value of a reserved bit. To provide
                                                                  compatibility with future products, the value of a reserved bit should be
                                                                  preserved across a read-modify-write operation.

                                                                  Bus Fault Priority
                                                                  This field configures the priority level of the bus fault. Configurable priority
                                                                  values are in the range 0-7, with lower values having higher priority.

                                                                  Software should not rely on the value of a reserved bit. To provide
                                                                  compatibility with future products, the value of a reserved bit should be
                                                                  preserved across a read-modify-write operation.

                                                                  Memory Management Fault Priority
                                                                  This field configures the priority level of the memory management fault.
                                                                  Configurable priority values are in the range 0-7, with lower values
                                                                  having higher priority.

                                                                  Software should not rely on the value of a reserved bit. To provide
                                                                  compatibility with future products, the value of a reserved bit should be
                                                                  preserved across a read-modify-write operation.

132                                                                                             November 17, 2011

                                                 Texas Instruments-Production Data
                                                                                      Stellaris LM3S3634 Microcontroller

                  Register 34: System Handler Priority 2 (SYSPRI2), offset 0xD1C

                  Note: This register can only be accessed from privileged mode.

                  The SYSPRI2 register configures the priority level, 0 to 7 of the SVCall handler. This register is
                  byte-accessible.

System Handler Priority 2 (SYSPRI2)

Base 0xE000.E000
Offset 0xD1C
Type R/W, reset 0x0000.0000

       31         30   29        28  27        26  25   24  23           22       21  20  19  18  17  16

                  SVC                                                   reserved

Type R/W          R/W  R/W   RO      RO        RO  RO   RO  RO           RO       RO  RO  RO  RO  RO  RO

Reset  0          0    0         0   0         0   0    0            0   0        0   0   0   0   0   0

       15         14   13        12  11        10  9    8            7   6        5   4   3   2   1   0

                                                           reserved

Type RO           RO   RO    RO      RO        RO  RO   RO  RO           RO       RO  RO  RO  RO  RO  RO

Reset  0          0    0         0   0         0   0    0            0   0        0   0   0   0   0   0

       Bit/Field        Name             Type      Reset Description
        31:29            SVC
                                         R/W       0x0  SVCall Priority
         28:0          reserved
                                                        This field configures the priority level of SVCall. Configurable priority
                                                        values are in the range 0-7, with lower values having higher priority.

                                         RO 0x000.0000 Software should not rely on the value of a reserved bit. To provide
                                                                       compatibility with future products, the value of a reserved bit should be
                                                                       preserved across a read-modify-write operation.

November 17, 2011                                                                                     133

                                         Texas Instruments-Production Data
Cortex-M3 Peripherals

                  Register 35: System Handler Priority 3 (SYSPRI3), offset 0xD20

                  Note: This register can only be accessed from privileged mode.

                  The SYSPRI3 register configures the priority level, 0 to 7 of the SysTick exception and PendSV
                  handlers. This register is byte-accessible.

System Handler Priority 3 (SYSPRI3)

Base 0xE000.E000
Offset 0xD20
Type R/W, reset 0x0000.0000

       31         30    29   28      27                 26  25        24  23          22   21     20  19               18  17  16

                  TICK                            reserved                     PENDSV                     reserved

Type R/W          R/W   R/W  RO      RO                 RO  RO        RO  R/W         R/W  R/W    RO  RO               RO  RO  RO

Reset  0          0     0         0            0        0   0         0   0            0   0      0   0                0   0               0

       15         14    13   12      11                 10  9         8   7            6   5      4   3                2   1               0

                                     reserved                                  DEBUG                      reserved

Type RO           RO    RO   RO      RO                 RO  RO        RO  R/W         R/W  R/W    RO  RO               RO  RO  RO

Reset  0          0     0         0            0        0   0         0   0            0   0      0   0                0   0               0

       Bit/Field          Name                    Type      Reset Description
        31:29             TICK                    R/W
                                                            0x0       SysTick Exception Priority
        28:24           reserved                   RO
        23:21           PENDSV                    R/W                 This field configures the priority level of the SysTick exception.
         20:8           reserved                   RO                 Configurable priority values are in the range 0-7, with lower values
                        DEBUG                     R/W                 having higher priority.
          7:5           reserved                   RO
          4:0                                               0x0       Software should not rely on the value of a reserved bit. To provide

                                                                      compatibility with future products, the value of a reserved bit should be

                                                                      preserved across a read-modify-write operation.

                                                            0x0       PendSV Priority

                                                                      This field configures the priority level of PendSV. Configurable priority
                                                                      values are in the range 0-7, with lower values having higher priority.

                                                            0x000     Software should not rely on the value of a reserved bit. To provide
                                                                      compatibility with future products, the value of a reserved bit should be
                                                                      preserved across a read-modify-write operation.

                                                            0x0       Debug Priority

                                                                      This field configures the priority level of Debug. Configurable priority
                                                                      values are in the range 0-7, with lower values having higher priority.

                                                            0x0.0000  Software should not rely on the value of a reserved bit. To provide
                                                                      compatibility with future products, the value of a reserved bit should be
                                                                      preserved across a read-modify-write operation.

134                                                                                                       November 17, 2011

                                                  Texas Instruments-Production Data
                                                                                     Stellaris LM3S3634 Microcontroller

                  Register 36: System Handler Control and State (SYSHNDCTRL), offset 0xD24

                  Note: This register can only be accessed from privileged mode.

                  The SYSHNDCTRL register enables the system handlers, and indicates the pending status of the
                  usage fault, bus fault, memory management fault, and SVC exceptions as well as the active status
                  of the system handlers.

                  If a system handler is disabled and the corresponding fault occurs, the processor treats the fault as
                  a hard fault.

                  This register can be modified to change the pending or active status of system exceptions. An OS
                  kernel can write to the active bits to perform a context switch that changes the current exception
                  type.

                  Caution Software that changes the value of an active bit in this register without correct adjustment
                  to the stacked content can cause the processor to generate a fault exception. Ensure software that writes
                  to this register retains and subsequently restores the current active status.

                  If the value of a bit in this register must be modified after enabling the system handlers, a
                  read-modify-write procedure must be used to ensure that only the required bit is modified.

System Handler Control and State (SYSHNDCTRL)

Base 0xE000.E000
Offset 0xD24
Type R/W, reset 0x0000.0000

       31         30    29        28  27        26   25        24     23  22     21        20          19  18        17     16

                                                     reserved        RO                                    USAGE BUS       MEM
                                                                       0
Type RO           RO    RO      RO    RO        RO   RO        RO      7  RO     RO        RO          RO  R/W       R/W   R/W
                                                                    SVCA                                                     0
Reset  0          0     0         0   0         0    0         0     R/W  0      0         0           0   0         0
                                                                       0
        15          14  13        12  11        10   9           8        6      5         4      3            2        1     0

       SVC        BUSP  MEMP USAGEP TICK   PNDSV reserved      MON               reserved      USGA        reserved  BUSA  MEMA

Type  R/W         R/W  R/W     R/W   R/W       R/W  RO        R/W        RO     RO        RO   R/W          RO       R/W   R/W
Reset    0           0                                           0                                0            0        0     0
                        0         0   0         0    0                    0      0         0

       Bit/Field         Name             Type       Reset     Description
        31:19           reserved           RO        0x000
                                                               Software should not rely on the value of a reserved bit. To provide
          18            USAGE             R/W           0      compatibility with future products, the value of a reserved bit should be
                                                               preserved across a read-modify-write operation.

                                                               Usage Fault Enable

                                                               Value Description
                                                               0 Disables the usage fault exception.
                                                               1 Enables the usage fault exception.

       17                  BUS             R/W       0         Bus Fault Enable

                                                                  Value Description
                                                                  0 Disables the bus fault exception.
                                                                  1 Enables the bus fault exception.

November 17, 2011                                                                                                          135

                                           Texas Instruments-Production Data
Cortex-M3 Peripherals

Bit/Field    Name      Type  Reset  Description
   16        MEM       R/W      0
   15         SVC      R/W          Memory Management Fault Enable
   14        BUSP      R/W
   13       MEMP       R/W          Value Description
   12      USAGEP      R/W          0 Disables the memory management fault exception.
   11        TICK      R/W          1 Enables the memory management fault exception.

                             0      SVC Call Pending

                                    Value Description
                                    0 An SVC call exception is not pending.
                                    1 An SVC call exception is pending.

                                    This bit can be modified to change the pending status of the SVC call
                                    exception.

                             0      Bus Fault Pending

                                    Value Description
                                    0 A bus fault exception is not pending.
                                    1 A bus fault exception is pending.

                                    This bit can be modified to change the pending status of the bus fault
                                    exception.

                             0      Memory Management Fault Pending

                                    Value Description
                                    0 A memory management fault exception is not pending.
                                    1 A memory management fault exception is pending.

                                    This bit can be modified to change the pending status of the memory
                                    management fault exception.

                             0      Usage Fault Pending

                                    Value Description
                                    0 A usage fault exception is not pending.
                                    1 A usage fault exception is pending.

                                    This bit can be modified to change the pending status of the usage fault
                                    exception.

                             0      SysTick Exception Active

                                    Value Description
                                    0 A SysTick exception is not active.
                                    1 A SysTick exception is active.

                                    This bit can be modified to change the active status of the SysTick
                                    exception, however, see the Caution above before setting this bit.

136                                                                            November 17, 2011

                       Texas Instruments-Production Data
                                                                Stellaris LM3S3634 Microcontroller

Bit/Field           Name     Type  Reset  Description
   10              PNDSV     R/W      0
                                          PendSV Exception Active
    9              reserved   RO      0
    8                MON     R/W      0   Value Description
    7               SVCA     R/W          0 A PendSV exception is not active.
                                          1 A PendSV exception is active.
   6:4             reserved   RO
    3               USGA     R/W          This bit can be modified to change the active status of the PendSV
                                          exception, however, see the Caution above before setting this bit.
    2              reserved   RO
    1               BUSA     R/W          Software should not rely on the value of a reserved bit. To provide
                                          compatibility with future products, the value of a reserved bit should be
                                          preserved across a read-modify-write operation.

                                          Debug Monitor Active

                                          Value Description
                                          0 The Debug monitor is not active.
                                          1 The Debug monitor is active.

                                   0      SVC Call Active

                                          Value Description
                                          0 SVC call is not active.
                                          1 SVC call is active.

                                          This bit can be modified to change the active status of the SVC call
                                          exception, however, see the Caution above before setting this bit.

                                   0x0    Software should not rely on the value of a reserved bit. To provide

                                          compatibility with future products, the value of a reserved bit should be

                                          preserved across a read-modify-write operation.

                                   0      Usage Fault Active

                                          Value Description
                                          0 Usage fault is not active.
                                          1 Usage fault is active.

                                          This bit can be modified to change the active status of the usage fault
                                          exception, however, see the Caution above before setting this bit.

                                   0      Software should not rely on the value of a reserved bit. To provide

                                          compatibility with future products, the value of a reserved bit should be

                                          preserved across a read-modify-write operation.

                                   0      Bus Fault Active

                                          Value Description
                                          0 Bus fault is not active.
                                          1 Bus fault is active.

                                          This bit can be modified to change the active status of the bus fault
                                          exception, however, see the Caution above before setting this bit.

November 17, 2011                                                                                              137

                             Texas Instruments-Production Data
Cortex-M3 Peripherals

Bit/Field  Name        Type  Reset  Description
    0      MEMA        R/W      0
                                    Memory Management Fault Active

                                    Value Description
                                    0 Memory management fault is not active.
                                    1 Memory management fault is active.

                                    This bit can be modified to change the active status of the memory
                                    management fault exception, however, see the Caution above before
                                    setting this bit.

138                                                       November 17, 2011

                       Texas Instruments-Production Data
                                                                                               Stellaris LM3S3634 Microcontroller

                  Register 37: Configurable Fault Status (FAULTSTAT), offset 0xD28

                  Note: This register can only be accessed from privileged mode.

                  The FAULTSTAT register indicates the cause of a memory management fault, bus fault, or usage
                  fault. Each of these functions is assigned to a subregister as follows:

                   Usage Fault Status (UFAULTSTAT), bits 31:16
                   Bus Fault Status (BFAULTSTAT), bits 15:8
                   Memory Management Fault Status (MFAULTSTAT), bits 7:0

                  FAULTSTAT is byte accessible. FAULTSTAT or its subregisters can be accessed as follows:

                   The complete FAULTSTAT register, with a word access to offset 0xD28
                   The MFAULTSTAT, with a byte access to offset 0xD28
                   The MFAULTSTAT and BFAULTSTAT, with a halfword access to offset 0xD28
                   The BFAULTSTAT, with a byte access to offset 0xD29
                   The UFAULTSTAT, with a halfword access to offset 0xD2A

                  Bits are cleared by writing a 1 to them.
                  In a fault handler, the true faulting address can be determined by:

                  1. Read and save the Memory Management Fault Address (MMADDR) or Bus Fault Address
                       (FAULTADDR) value.

                  2. Read the MMARV bit in MFAULTSTAT, or the BFARV bit in BFAULTSTAT to determine if the
                       MMADDR or FAULTADDR contents are valid.

                  Software must follow this sequence because another higher priority exception might change the
                  MMADDR or FAULTADDR value. For example, if a higher priority handler preempts the current
                  fault handler, the other fault might change the MMADDR or FAULTADDR value.

Configurable Fault Status (FAULTSTAT)

Base 0xE000.E000
Offset 0xD28
Type R/W1C, reset 0x0000.0000

       31         30  29          28           27        26  25     24     23  22     21       20  19  18  17  16

                                  reserved                   DIV0 UNALIGN         reserved         NOCP INVPC INVSTAT UNDEF

Type RO           RO  RO          RO           RO        RO  R/W1C R/W1C RO    RO     RO       RO R/W1C R/W1C R/W1C R/W1C

Reset  0          0            0            0  0         0   0      0      0   0            0  0   0   0   0   0

       15         14  13          12           11        10  9      8      7   6            5  4   3   2   1   0

       BFARV         reserved     BSTKE BUSTKE IMPRE PRECISE IBUS MMARV           reserved     MSTKE MUSTKE reserved DERR IERR

Type R/W1C        RO  RO          R/W1C R/W1C R/W1C R/W1C R/W1C R/W1C          RO     RO       R/W1C R/W1C RO R/W1C R/W1C

Reset  0          0            0            0  0         0   0      0      0   0            0  0   0   0   0   0

       Bit/Field       Name                        Type      Reset  Description
        31:26         reserved                      RO       0x00
                                                                    Software should not rely on the value of a reserved bit. To provide
                                                                    compatibility with future products, the value of a reserved bit should be
                                                                    preserved across a read-modify-write operation.

November 17, 2011                                                                                              139

                                                   Texas Instruments-Production Data
Cortex-M3 Peripherals

Bit/Field    Name       Type  Reset  Description
   25         DIV0     R/W1C     0
                                     Divide-by-Zero Usage Fault
   24      UNALIGN     R/W1C     0
                                     Value Description
23:20     reserved      RO   0x00   0 No divide-by-zero fault has occurred, or divide-by-zero trapping
   19        NOCP      R/W1C     0
   18        INVPC     R/W1C     0             is not enabled.
                                     1 The processor has executed an SDIV or UDIV instruction with

                                               a divisor of 0.

                                     When this bit is set, the PC value stacked for the exception return points
                                     to the instruction that performed the divide by zero.
                                     Trapping on divide-by-zero is enabled by setting the DIV0 bit in the
                                     Configuration and Control (CFGCTRL) register (see page 130).
                                     This bit is cleared by writing a 1 to it.

                                     Unaligned Access Usage Fault

                                     Value Description
                                     0 No unaligned access fault has occurred, or unaligned access

                                               trapping is not enabled.
                                     1 The processor has made an unaligned memory access.

                                     Unaligned LDM, STM, LDRD, and STRD instructions always fault
                                     regardless of the configuration of this bit.
                                     Trapping on unaligned access is enabled by setting the UNALIGNED bit
                                     in the CFGCTRL register (see page 130).
                                     This bit is cleared by writing a 1 to it.

                                     Software should not rely on the value of a reserved bit. To provide
                                     compatibility with future products, the value of a reserved bit should be
                                     preserved across a read-modify-write operation.

                                     No Coprocessor Usage Fault

                                     Value Description
                                     0 A usage fault has not been caused by attempting to access a

                                               coprocessor.
                                     1 The processor has attempted to access a coprocessor.

                                     This bit is cleared by writing a 1 to it.

                                     Invalid PC Load Usage Fault

                                     Value Description
                                     0 A usage fault has not been caused by attempting to load an

                                               invalid PC value.
                                     1 The processor has attempted an illegal load of EXC_RETURN

                                               to the PC as a result of an invalid context or an invalid
                                               EXC_RETURN value.

                                     When this bit is set, the PC value stacked for the exception return points
                                     to the instruction that tried to perform the illegal load of the PC.
                                     This bit is cleared by writing a 1 to it.

140                                                       November 17, 2011

                       Texas Instruments-Production Data
                                                                Stellaris LM3S3634 Microcontroller

Bit/Field            Name     Type  Reset  Description
   17              INVSTAT   R/W1C     0
   16              UNDEF     R/W1C     0   Invalid State Usage Fault
   15               BFARV    R/W1C     0
                                           Value Description
14:13             reserved    RO      0   0 A usage fault has not been caused by an invalid state.
                                           1 The processor has attempted to execute an instruction that

                                                     makes illegal use of the EPSR register.

                                           When this bit is set, the PC value stacked for the exception return points
                                           to the instruction that attempted the illegal use of the Execution
                                           Program Status Register (EPSR) register.
                                           This bit is not set if an undefined instruction uses the EPSR register.
                                           This bit is cleared by writing a 1 to it.

                                           Undefined Instruction Usage Fault

                                           Value Description
                                           0 A usage fault has not been caused by an undefined instruction.
                                           1 The processor has attempted to execute an undefined

                                                     instruction.

                                           When this bit is set, the PC value stacked for the exception return points
                                           to the undefined instruction.
                                           An undefined instruction is an instruction that the processor cannot
                                           decode.
                                           This bit is cleared by writing a 1 to it.

                                           Bus Fault Address Register Valid

                                           Value Description
                                           0 The value in the Bus Fault Address (FAULTADDR) register

                                                     is not a valid fault address.
                                           1 The FAULTADDR register is holding a valid fault address.

                                           This bit is set after a bus fault, where the address is known. Other faults
                                           can clear this bit, such as a memory management fault occurring later.
                                           If a bus fault occurs and is escalated to a hard fault because of priority,
                                           the hard fault handler must clear this bit. This action prevents problems
                                           if returning to a stacked active bus fault handler whose FAULTADDR
                                           register value has been overwritten.
                                           This bit is cleared by writing a 1 to it.

                                           Software should not rely on the value of a reserved bit. To provide
                                           compatibility with future products, the value of a reserved bit should be
                                           preserved across a read-modify-write operation.

November 17, 2011                                               141

                             Texas Instruments-Production Data
Cortex-M3 Peripherals

Bit/Field    Name       Type  Reset  Description
   12       BSTKE      R/W1C     0
   11      BUSTKE      R/W1C     0   Stack Bus Fault
   10       IMPRE      R/W1C     0
                                     Value Description
    9      PRECISE     R/W1C     0   0 No bus fault has occurred on stacking for exception entry.
                                     1 Stacking for an exception entry has caused one or more bus

                                               faults.

                                     When this bit is set, the SP is still adjusted but the values in the context
                                     area on the stack might be incorrect. A fault address is not written to
                                     the FAULTADDR register.
                                     This bit is cleared by writing a 1 to it.

                                     Unstack Bus Fault

                                     Value Description
                                     0 No bus fault has occurred on unstacking for a return from

                                               exception.
                                     1 Unstacking for a return from exception has caused one or more

                                               bus faults.

                                     This fault is chained to the handler. Thus, when this bit is set, the original
                                     return stack is still present. The SP is not adjusted from the failing return,
                                     a new save is not performed, and a fault address is not written to the
                                     FAULTADDR register.
                                     This bit is cleared by writing a 1 to it.

                                     Imprecise Data Bus Error

                                     Value Description
                                     0 An imprecise data bus error has not occurred.
                                     1 A data bus error has occurred, but the return address in the

                                               stack frame is not related to the instruction that caused the error.

                                     When this bit is set, a fault address is not written to the FAULTADDR
                                     register.
                                     This fault is asynchronous. Therefore, if the fault is detected when the
                                     priority of the current process is higher than the bus fault priority, the
                                     bus fault becomes pending and becomes active only when the processor
                                     returns from all higher-priority processes. If a precise fault occurs before
                                     the processor enters the handler for the imprecise bus fault, the handler
                                     detects that both the IMPRE bit is set and one of the precise fault status
                                     bits is set.
                                     This bit is cleared by writing a 1 to it.

                                     Precise Data Bus Error

                                     Value Description
                                     0 A precise data bus error has not occurred.
                                     1 A data bus error has occurred, and the PC value stacked for

                                               the exception return points to the instruction that caused the
                                               fault.

                                     When this bit is set, the fault address is written to the FAULTADDR
                                     register.
                                     This bit is cleared by writing a 1 to it.

142                                                       November 17, 2011

                       Texas Instruments-Production Data
                                                                Stellaris LM3S3634 Microcontroller

Bit/Field           Name      Type  Reset  Description
    8                IBUS    R/W1C     0
                                           Instruction Bus Error
    7              MMARV     R/W1C     0
                                           Value Description
   6:5             reserved    RO      0   0 An instruction bus error has not occurred.
    4&