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

型号

产品描述

搜索

LM3S6G65-IBZ80-A1T

器件型号:LM3S6G65-IBZ80-A1T
器件类别:半导体    嵌入式处理器和控制器   
文件大小:60024.01KB,共10页
厂商名称:Texas Instruments
厂商官网:http://www.ti.com/
标准:  
下载文档

器件描述

ARM Microcontrollers - MCU IC ARM Cortex-M3 MCU

参数

产品属性属性值
Product AttributeAttribute Value
制造商:
Manufacturer:
Texas Instruments
产品种类:
Product Category:
ARM Microcontrollers - MCU
系列:
Series:
LM3S
Core:ARM Cortex M3
Data Bus Width:32 bit
产品:
Product:
MCU
商标:
Brand:
Texas Instruments
工厂包装数量:
Factory Pack Quantity:
1500

LM3S6G65-IBZ80-A1T器件文档内容

                  TEXAS INSTRUMENTS-ADVANCE INFORMATION

Stellaris LM3S6G65 Microcontroller

                                                          DATA SHEET

DS-LM3S6G65-9970               Copyright 2007-2011
                  Texas Instruments Incorporated
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.

PRODUCT PREVIEW information concerns products in the formative or design phase of development. Characteristic data and other specifications are
design goals. Texas Instruments reserves the right to change or discontinue these products without notice.

     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                                         July 03, 2011

   Texas Instruments-Advance Information
                                                          Stellaris LM3S6G65 Microcontroller

Table of Contents

Revision History ............................................................................................................................. 29

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

1              Architectural Overview .......................................................................................... 33
1.1            Functional Overview ...................................................................................................... 35
1.1.1          ARM Cortex-M3 ............................................................................................................ 35
1.1.2          On-Chip Memory ........................................................................................................... 37
1.1.3          Serial Communications Peripherals ................................................................................ 38
1.1.4          System Integration ........................................................................................................ 42
1.1.5          Advanced Motion Control ............................................................................................... 47
1.1.6          Analog .......................................................................................................................... 49
1.1.7          JTAG and ARM Serial Wire Debug ................................................................................ 51
1.1.8          Packaging and Temperature .......................................................................................... 52
1.2            Target Applications ........................................................................................................ 52
1.3            High-Level Block Diagram ............................................................................................. 52
1.4            Hardware Details .......................................................................................................... 54

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

July 03, 2011                                             3

                   Texas Instruments-Advance Information
Table of Contents

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

   3      Cortex-M3 Peripherals ........................................................................................... 98
   3.1    Functional Description ................................................................................................... 98
   3.1.1  System Timer (SysTick) ................................................................................................. 98
   3.1.2  Nested Vectored Interrupt Controller (NVIC) .................................................................... 99
   3.1.3  System Control Block (SCB) ........................................................................................ 101
   3.1.4  Memory Protection Unit (MPU) ..................................................................................... 101
   3.2    Register Map .............................................................................................................. 106
   3.3    System Timer (SysTick) Register Descriptions .............................................................. 108
   3.4    NVIC Register Descriptions .......................................................................................... 112
   3.5    System Control Block (SCB) Register Descriptions ........................................................ 125
   3.6    Memory Protection Unit (MPU) Register Descriptions .................................................... 154

   4      JTAG Interface ...................................................................................................... 164
   4.1    Block Diagram ............................................................................................................ 165
   4.2    Signal Description ....................................................................................................... 165
   4.3    Functional Description ................................................................................................. 166
   4.3.1  JTAG Interface Pins ..................................................................................................... 166
   4.3.2  JTAG TAP Controller ................................................................................................... 168
   4.3.3  Shift Registers ............................................................................................................ 168
   4.3.4  Operational Considerations .......................................................................................... 169
   4.4    Initialization and Configuration ..................................................................................... 171
   4.5    Register Descriptions .................................................................................................. 172
   4.5.1  Instruction Register (IR) ............................................................................................... 172
   4.5.2  Data Registers ............................................................................................................ 174

   5      System Control ..................................................................................................... 176
   5.1    Signal Description ....................................................................................................... 176
   5.2    Functional Description ................................................................................................. 177
   5.2.1  Device Identification .................................................................................................... 177
   5.2.2  Reset Control .............................................................................................................. 177
   5.2.3  Non-Maskable Interrupt ............................................................................................... 182
   5.2.4  Power Control ............................................................................................................. 183
   5.2.5  Clock Control .............................................................................................................. 183
   5.2.6  System Control ........................................................................................................... 190
   5.3    Initialization and Configuration ..................................................................................... 192
   5.4    Register Map .............................................................................................................. 192
   5.5    Register Descriptions .................................................................................................. 194

4                                                         July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

6              Hibernation Module .............................................................................................. 277
6.1            Block Diagram ............................................................................................................ 278
6.2            Signal Description ....................................................................................................... 278
6.3            Functional Description ................................................................................................. 279
6.3.1          Register Access Timing ............................................................................................... 279
6.3.2          Hibernation Clock Source ............................................................................................ 280
6.3.3          Battery Management ................................................................................................... 282
6.3.4          Real-Time Clock .......................................................................................................... 282
6.3.5          Non-Volatile Memory ................................................................................................... 282
6.3.6          Power Control Using HIB ............................................................................................. 283
6.3.7          Power Control Using VDD3ON Mode ........................................................................... 283
6.3.8          Initiating Hibernate ...................................................................................................... 283
6.3.9          Interrupts and Status ................................................................................................... 283
6.4            Initialization and Configuration ..................................................................................... 284
6.4.1          Initialization ................................................................................................................. 284
6.4.2          RTC Match Functionality (No Hibernation) .................................................................... 285
6.4.3          RTC Match/Wake-Up from Hibernation ......................................................................... 285
6.4.4          External Wake-Up from Hibernation .............................................................................. 285
6.4.5          RTC or External Wake-Up from Hibernation .................................................................. 286
6.4.6          Register Reset ............................................................................................................ 286
6.5            Register Map .............................................................................................................. 286
6.6            Register Descriptions .................................................................................................. 287

7              Internal Memory ................................................................................................... 304
7.1            Block Diagram ............................................................................................................ 304
7.2            Functional Description ................................................................................................. 304
7.2.1          SRAM ........................................................................................................................ 305
7.2.2          ROM .......................................................................................................................... 305
7.2.3          Flash Memory ............................................................................................................. 307
7.3            Register Map .............................................................................................................. 312
7.4            Flash Memory Register Descriptions (Flash Control Offset) ............................................ 313
7.5            Memory Register Descriptions (System Control Offset) .................................................. 325

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

8.1 Block Diagram ............................................................................................................ 350

8.2 Functional Description ................................................................................................. 350

8.2.1 Channel Assignments .................................................................................................. 351

8.2.2 Priority ........................................................................................................................ 352

8.2.3 Arbitration Size ............................................................................................................ 352

8.2.4 Request Types ............................................................................................................ 352

8.2.5 Channel Configuration ................................................................................................. 353

8.2.6 Transfer Modes ........................................................................................................... 355

8.2.7 Transfer Size and Increment ........................................................................................ 363

8.2.8 Peripheral Interface ..................................................................................................... 363

8.2.9 Software Request ........................................................................................................ 363

8.2.10 Interrupts and Errors .................................................................................................... 364

8.3 Initialization and Configuration ..................................................................................... 364

8.3.1 Module Initialization ..................................................................................................... 364

8.3.2 Configuring a Memory-to-Memory Transfer ................................................................... 365

8.3.3 Configuring a Peripheral for Simple Transmit ................................................................ 366

July 03, 2011                                         5

               Texas Instruments-Advance Information
Table of Contents

   8.3.4   Configuring a Peripheral for Ping-Pong Receive ............................................................ 368
   8.3.5   Configuring Channel Assignments ................................................................................ 370
   8.4     Register Map .............................................................................................................. 370
   8.5     DMA Channel Control Structure ................................................................................. 372
   8.6     DMA Register Descriptions ........................................................................................ 379

   9       General-Purpose Input/Outputs (GPIOs) ........................................................... 409
   9.1     Signal Description ....................................................................................................... 409
   9.2     Functional Description ................................................................................................. 413
   9.2.1   Data Control ............................................................................................................... 414
   9.2.2   Interrupt Control .......................................................................................................... 415
   9.2.3   Mode Control .............................................................................................................. 416
   9.2.4   Commit Control ........................................................................................................... 416
   9.2.5   Pad Control ................................................................................................................. 417
   9.2.6   Identification ............................................................................................................... 417
   9.3     Initialization and Configuration ..................................................................................... 417
   9.4     Register Map .............................................................................................................. 418
   9.5     Register Descriptions .................................................................................................. 421

   10 General-Purpose Timers ...................................................................................... 463
   10.1 Block Diagram ............................................................................................................ 463
   10.2 Signal Description ....................................................................................................... 464
   10.3 Functional Description ................................................................................................. 466
   10.3.1 GPTM Reset Conditions .............................................................................................. 467
   10.3.2 Timer Modes ............................................................................................................... 467
   10.3.3 DMA Operation ........................................................................................................... 473
   10.3.4 Accessing Concatenated Register Values ..................................................................... 473
   10.4 Initialization and Configuration ..................................................................................... 474
   10.4.1 One-Shot/Periodic Timer Mode .................................................................................... 474
   10.4.2 Real-Time Clock (RTC) Mode ...................................................................................... 475
   10.4.3 Input Edge-Count Mode ............................................................................................... 475
   10.4.4 Input Edge Timing Mode .............................................................................................. 476
   10.4.5 PWM Mode ................................................................................................................. 476
   10.5 Register Map .............................................................................................................. 477
   10.6 Register Descriptions .................................................................................................. 478

   11      Watchdog Timers ................................................................................................. 509
   11.1    Block Diagram ............................................................................................................ 510
   11.2    Functional Description ................................................................................................. 510
   11.2.1  Register Access Timing ............................................................................................... 511
   11.3    Initialization and Configuration ..................................................................................... 511
   11.4    Register Map .............................................................................................................. 511
   11.5    Register Descriptions .................................................................................................. 512

   12 Analog-to-Digital Converter (ADC) ..................................................................... 534
   12.1 Block Diagram ............................................................................................................ 535
   12.2 Signal Description ....................................................................................................... 536
   12.3 Functional Description ................................................................................................. 538
   12.3.1 Sample Sequencers .................................................................................................... 538
   12.3.2 Module Control ............................................................................................................ 539
   12.3.3 Hardware Sample Averaging Circuit ............................................................................. 541

6                                                         July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

12.3.4 Analog-to-Digital Converter .......................................................................................... 542
12.3.5 Differential Sampling ................................................................................................... 545
12.3.6 Internal Temperature Sensor ........................................................................................ 548
12.3.7 Digital Comparator Unit ............................................................................................... 548
12.4 Initialization and Configuration ..................................................................................... 553
12.4.1 Module Initialization ..................................................................................................... 553
12.4.2 Sample Sequencer Configuration ................................................................................. 554
12.5 Register Map .............................................................................................................. 554
12.6 Register Descriptions .................................................................................................. 556

13 Universal Asynchronous Receivers/Transmitters (UARTs) ............................. 615
13.1 Block Diagram ............................................................................................................ 616
13.2 Signal Description ....................................................................................................... 616
13.3 Functional Description ................................................................................................. 618
13.3.1 Transmit/Receive Logic ............................................................................................... 618
13.3.2 Baud-Rate Generation ................................................................................................. 618
13.3.3 Data Transmission ...................................................................................................... 619
13.3.4 Serial IR (SIR) ............................................................................................................. 620
13.3.5 ISO 7816 Support ....................................................................................................... 621
13.3.6 Modem Handshake Support ......................................................................................... 621
13.3.7 LIN Support ................................................................................................................ 622
13.3.8 FIFO Operation ........................................................................................................... 624
13.3.9 Interrupts .................................................................................................................... 624
13.3.10 Loopback Operation .................................................................................................... 625
13.3.11 DMA Operation ........................................................................................................... 625
13.4 Initialization and Configuration ..................................................................................... 625
13.5 Register Map .............................................................................................................. 627
13.6 Register Descriptions .................................................................................................. 628

14 Synchronous Serial Interface (SSI) .................................................................... 676
14.1 Block Diagram ............................................................................................................ 677
14.2 Signal Description ....................................................................................................... 677
14.3 Functional Description ................................................................................................. 678
14.3.1 Bit Rate Generation ..................................................................................................... 678
14.3.2 FIFO Operation ........................................................................................................... 679
14.3.3 Interrupts .................................................................................................................... 679
14.3.4 Frame Formats ........................................................................................................... 680
14.3.5 DMA Operation ........................................................................................................... 687
14.4 Initialization and Configuration ..................................................................................... 688
14.5 Register Map .............................................................................................................. 689
14.6 Register Descriptions .................................................................................................. 690
15 Inter-Integrated Circuit (I2C) Interface ................................................................ 718
15.1 Block Diagram ............................................................................................................ 719
15.2 Signal Description ....................................................................................................... 719
15.3 Functional Description ................................................................................................. 720
15.3.1 I2C Bus Functional Overview ........................................................................................ 720
15.3.2 Available Speed Modes ............................................................................................... 722
15.3.3 Interrupts .................................................................................................................... 723
15.3.4 Loopback Operation .................................................................................................... 724
15.3.5 Command Sequence Flow Charts ................................................................................ 725

July 03, 2011                                         7

               Texas Instruments-Advance Information
Table of Contents

   15.4 Initialization and Configuration ..................................................................................... 732
   15.5 Register Map .............................................................................................................. 733
   15.6 Register Descriptions (I2C Master) ............................................................................... 734
   15.7 Register Descriptions (I2C Slave) ................................................................................. 746

   16 Ethernet Controller .............................................................................................. 755
   16.1 Block Diagram ............................................................................................................ 756
   16.2 Signal Description ....................................................................................................... 757
   16.3 Functional Description ................................................................................................. 758
   16.3.1 MAC Operation ........................................................................................................... 758
   16.3.2 Internal MII Operation .................................................................................................. 761
   16.3.3 PHY Operation ............................................................................................................ 761
   16.3.4 Interrupts .................................................................................................................... 764
   16.3.5 DMA Operation ........................................................................................................... 764
   16.4 Initialization and Configuration ..................................................................................... 765
   16.4.1 Hardware Configuration ............................................................................................... 765
   16.4.2 Software Configuration ................................................................................................ 766
   16.5 Register Map .............................................................................................................. 766
   16.6 Ethernet MAC Register Descriptions ............................................................................. 768
   16.7 MII Management Register Descriptions ......................................................................... 793

   17 Analog Comparators ............................................................................................ 814
   17.1 Block Diagram ............................................................................................................ 814
   17.2 Signal Description ....................................................................................................... 815
   17.3 Functional Description ................................................................................................. 815
   17.3.1 Internal Reference Programming .................................................................................. 816
   17.4 Initialization and Configuration ..................................................................................... 817
   17.5 Register Map .............................................................................................................. 818
   17.6 Register Descriptions .................................................................................................. 818

   18 Pulse Width Modulator (PWM) ............................................................................ 826
   18.1 Block Diagram ............................................................................................................ 827
   18.2 Signal Description ....................................................................................................... 828
   18.3 Functional Description ................................................................................................. 830
   18.3.1 PWM Timer ................................................................................................................. 830
   18.3.2 PWM Comparators ...................................................................................................... 830
   18.3.3 PWM Signal Generator ................................................................................................ 832
   18.3.4 Dead-Band Generator ................................................................................................. 833
   18.3.5 Interrupt/ADC-Trigger Selector ..................................................................................... 833
   18.3.6 Synchronization Methods ............................................................................................ 833
   18.3.7 Fault Conditions .......................................................................................................... 834
   18.3.8 Output Control Block ................................................................................................... 835
   18.4 Initialization and Configuration ..................................................................................... 836
   18.5 Register Map .............................................................................................................. 836
   18.6 Register Descriptions .................................................................................................. 839

   19 Quadrature Encoder Interface (QEI) ................................................................... 898
   19.1 Block Diagram ............................................................................................................ 898
   19.2 Signal Description ....................................................................................................... 899
   19.3 Functional Description ................................................................................................. 900
   19.4 Initialization and Configuration ..................................................................................... 902

8                                                         July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

19.5 Register Map .............................................................................................................. 903
19.6 Register Descriptions .................................................................................................. 904

20 Pin Diagram .......................................................................................................... 921

21 Signal Tables ........................................................................................................ 923
21.1 100-Pin LQFP Package Pin Tables ............................................................................... 924
21.2 108-Ball BGA Package Pin Tables ................................................................................ 949
21.3 Connections for Unused Signals ................................................................................... 975

22 Operating Characteristics ................................................................................... 978

23 Electrical Characteristics .................................................................................... 979
23.1 Maximum Ratings ....................................................................................................... 979
23.2 Recommended Operating Conditions ........................................................................... 979
23.3 Load Conditions .......................................................................................................... 980
23.4 JTAG and Boundary Scan ............................................................................................ 980
23.5 Power and Brown-out .................................................................................................. 982
23.6 Reset ......................................................................................................................... 983
23.7 On-Chip Low Drop-Out (LDO) Regulator ....................................................................... 984
23.8 Clocks ........................................................................................................................ 984
23.8.1 PLL Specifications ....................................................................................................... 984
23.8.2 PIOSC Specifications .................................................................................................. 985
23.8.3 Internal 30-kHz Oscillator Specifications ....................................................................... 985
23.8.4 Hibernation Clock Source Specifications ....................................................................... 985
23.8.5 Main Oscillator Specifications ....................................................................................... 986
23.8.6 System Clock Specification with ADC Operation ............................................................ 987
23.9 Sleep Modes ............................................................................................................... 987
23.10 Hibernation Module ..................................................................................................... 987
23.11 Flash Memory ............................................................................................................ 989
23.12 GPIO Module .............................................................................................................. 989
23.13 Analog-to-Digital Converter (ADC) ................................................................................ 990
23.14 Synchronous Serial Interface (SSI) ............................................................................... 991
23.15 Inter-Integrated Circuit (I2C) Interface ........................................................................... 993
23.16 Ethernet Controller ...................................................................................................... 994
23.17 Analog Comparator ..................................................................................................... 996
23.18 Current Consumption .................................................................................................. 997
23.18.1 Nominal Power Consumption ....................................................................................... 997
23.18.2 Maximum Current Consumption ................................................................................... 997

A Register Quick Reference ................................................................................. 1000

B Ordering and Contact Information ................................................................... 1031
B.1 Ordering Information .................................................................................................. 1031
B.2 Part Markings ............................................................................................................ 1031
B.3 Kits ........................................................................................................................... 1032
B.4 Support Information ................................................................................................... 1032

C              Package Information .......................................................................................... 1033
C.1            100-Pin LQFP Package ............................................................................................. 1033
C.1.1          Package Dimensions ................................................................................................. 1033
C.1.2          Tray Dimensions ....................................................................................................... 1035
C.1.3          Tape and Reel Dimensions ........................................................................................ 1035

July 03, 2011                                         9

               Texas Instruments-Advance Information
Table of Contents

    C.2    108-Ball BGA Package .............................................................................................. 1037
    C.2.1  Package Dimensions ................................................................................................. 1037
    C.2.2  Tray Dimensions ....................................................................................................... 1039
    C.2.3  Tape and Reel Dimensions ........................................................................................ 1040

10                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                        Stellaris LM3S6G65 Microcontroller

List of Figures

Figure 1-1.    Stellaris LM3S6G65 Microcontroller High-Level Block Diagram .............................. 53
Figure 2-1.    CPU Block Diagram ............................................................................................. 57
Figure 2-2.    TPIU Block Diagram ............................................................................................ 58
Figure 2-3.    Cortex-M3 Register Set ........................................................................................ 60
Figure 2-4.    Bit-Band Mapping ................................................................................................ 80
Figure 2-5.    Data Storage ....................................................................................................... 81
Figure 2-6.    Vector Table ........................................................................................................ 87
Figure 2-7.    Exception Stack Frame ........................................................................................ 89
Figure 3-1.    SRD Use Example ............................................................................................. 104
Figure 4-1.    JTAG Module Block Diagram .............................................................................. 165
Figure 4-2.    Test Access Port State Machine ......................................................................... 168
Figure 4-3.    IDCODE Register Format ................................................................................... 174
Figure 4-4.    BYPASS Register Format ................................................................................... 174
Figure 4-5.    Boundary Scan Register Format ......................................................................... 175
Figure 5-1.    Basic RST Configuration .................................................................................... 179
Figure 5-2.    External Circuitry to Extend Power-On Reset ....................................................... 180
Figure 5-3.    Reset Circuit Controlled by Switch ...................................................................... 180
Figure 5-4.    Power Architecture ............................................................................................ 183
Figure 5-5.    Main Clock Tree ................................................................................................ 186
Figure 6-1.    Hibernation Module Block Diagram ..................................................................... 278
Figure 6-2.    Using a Crystal as the Hibernation Clock Source ................................................. 281
Figure 6-3.    Using a Dedicated Oscillator as the Hibernation Clock Source with VDD3ON
               Mode ................................................................................................................ 281
Figure 7-1.    Internal Memory Block Diagram .......................................................................... 304
Figure 8-1.    DMA Block Diagram ......................................................................................... 350
Figure 8-2.    Example of Ping-Pong DMA Transaction ........................................................... 356
Figure 8-3.    Memory Scatter-Gather, Setup and Configuration ................................................ 358
Figure 8-4.    Memory Scatter-Gather, DMA Copy Sequence .................................................. 359
Figure 8-5.    Peripheral Scatter-Gather, Setup and Configuration ............................................. 361
Figure 8-6.    Peripheral Scatter-Gather, DMA Copy Sequence ............................................... 362
Figure 9-1.    Digital I/O Pads ................................................................................................. 413
Figure 9-2.    Analog/Digital I/O Pads ...................................................................................... 414
Figure 9-3.    GPIODATA Write Example ................................................................................. 415
Figure 9-4.    GPIODATA Read Example ................................................................................. 415
Figure 10-1.   GPTM Module Block Diagram ............................................................................ 464
Figure 10-2.   Timer Daisy Chain ............................................................................................. 469
Figure 10-3.   Input Edge-Count Mode Example ....................................................................... 471
Figure 10-4.   16-Bit Input Edge-Time Mode Example ............................................................... 472
Figure 10-5.   16-Bit PWM Mode Example ................................................................................ 473
Figure 11-1.   WDT Module Block Diagram .............................................................................. 510
Figure 12-1.   Implementation of Two ADC Blocks .................................................................... 535
Figure 12-2.   ADC Module Block Diagram ............................................................................... 536
Figure 12-3.   ADC Sample Phases ......................................................................................... 540
Figure 12-4.   Doubling the ADC Sample Rate .......................................................................... 541
Figure 12-5.   Skewed Sampling .............................................................................................. 541
Figure 12-6.   Sample Averaging Example ............................................................................... 542

July 03, 2011                                           11

                 Texas Instruments-Advance Information
Table of Contents

    Figure 12-7. Internal Voltage Conversion Result ..................................................................... 543
    Figure 12-8. External Voltage Conversion Result with 3.0-V Setting ......................................... 544
    Figure 12-9. External Voltage Conversion Result with 1.0-V Setting ......................................... 545
    Figure 12-10. Differential Sampling Range, VIN_ODD = 1.5 V ...................................................... 546
    Figure 12-11. Differential Sampling Range, VIN_ODD = 0.75 V .................................................... 547
    Figure 12-12. Differential Sampling Range, VIN_ODD = 2.25 V .................................................... 547
    Figure 12-13. Internal Temperature Sensor Characteristic ......................................................... 548
    Figure 12-14. Low-Band Operation (CIC=0x0 and/or CTC=0x0) ................................................ 551
    Figure 12-15. Mid-Band Operation (CIC=0x1 and/or CTC=0x1) ................................................. 552
    Figure 12-16. High-Band Operation (CIC=0x3 and/or CTC=0x3) ................................................ 553
    Figure 13-1. UART Module Block Diagram ............................................................................. 616
    Figure 13-2. UART Character Frame ..................................................................................... 618
    Figure 13-3. IrDA Data Modulation ......................................................................................... 620
    Figure 13-4. LIN Message ..................................................................................................... 623
    Figure 13-5. LIN Synchronization Field ................................................................................... 624
    Figure 14-1. SSI Module Block Diagram ................................................................................. 677
    Figure 14-2. TI Synchronous Serial Frame Format (Single Transfer) ........................................ 681
    Figure 14-3. TI Synchronous Serial Frame Format (Continuous Transfer) ................................ 681
    Figure 14-4. Freescale SPI Format (Single Transfer) with SPO=0 and SPH=0 .......................... 682
    Figure 14-5. Freescale SPI Format (Continuous Transfer) with SPO=0 and SPH=0 .................. 682
    Figure 14-6. Freescale SPI Frame Format with SPO=0 and SPH=1 ......................................... 683
    Figure 14-7. Freescale SPI Frame Format (Single Transfer) with SPO=1 and SPH=0 ............... 684
    Figure 14-8. Freescale SPI Frame Format (Continuous Transfer) with SPO=1 and SPH=0 ........ 684
    Figure 14-9. Freescale SPI Frame Format with SPO=1 and SPH=1 ......................................... 685
    Figure 14-10. MICROWIRE Frame Format (Single Frame) ........................................................ 686
    Figure 14-11. MICROWIRE Frame Format (Continuous Transfer) ............................................. 687
    Figure 14-12. MICROWIRE Frame Format, SSIFss Input Setup and Hold Requirements ............ 687
    Figure 15-1. I2C Block Diagram ............................................................................................. 719
    Figure 15-2. I2C Bus Configuration ........................................................................................ 720
    Figure 15-3. START and STOP Conditions ............................................................................. 721
    Figure 15-4. Complete Data Transfer with a 7-Bit Address ....................................................... 721
    Figure 15-5. R/S Bit in First Byte ............................................................................................ 722
    Figure 15-6. Data Validity During Bit Transfer on the I2C Bus ................................................... 722
    Figure 15-7. Master Single TRANSMIT .................................................................................. 726
    Figure 15-8. Master Single RECEIVE ..................................................................................... 727
    Figure 15-9. Master TRANSMIT with Repeated START ........................................................... 728
    Figure 15-10. Master RECEIVE with Repeated START ............................................................. 729
    Figure 15-11. Master RECEIVE with Repeated START after TRANSMIT with Repeated

                       START .............................................................................................................. 730
    Figure 15-12. Master TRANSMIT with Repeated START after RECEIVE with Repeated

                       START .............................................................................................................. 731
    Figure 15-13. Slave Command Sequence ................................................................................ 732
    Figure 16-1. Ethernet Controller ............................................................................................. 756
    Figure 16-2. Ethernet Controller Block Diagram ...................................................................... 756
    Figure 16-3. Ethernet Frame ................................................................................................. 758
    Figure 16-4. Interface to an Ethernet Jack .............................................................................. 765
    Figure 17-1. Analog Comparator Module Block Diagram ......................................................... 814
    Figure 17-2. Structure of Comparator Unit .............................................................................. 816

12                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                                                                  Stellaris LM3S6G65 Microcontroller

Figure 17-3. Comparator Internal Reference Structure ............................................................ 816
Figure 18-1. PWM Module Diagram ....................................................................................... 828
Figure 18-2. PWM Generator Block Diagram .......................................................................... 828
Figure 18-3. PWM Count-Down Mode .................................................................................... 831
Figure 18-4. PWM Count-Up/Down Mode .............................................................................. 832
Figure 18-5. PWM Generation Example In Count-Up/Down Mode ........................................... 832
Figure 18-6. PWM Dead-Band Generator ............................................................................... 833
Figure 19-1. QEI Block Diagram ............................................................................................ 899
Figure 19-2. Quadrature Encoder and Velocity Predivider Operation ........................................ 901
Figure 20-1. 100-Pin LQFP Package Pin Diagram .................................................................. 921
Figure 20-2. 108-Ball BGA Package Pin Diagram (Top View) ................................................... 922
Figure 23-1. Load Conditions ................................................................................................ 980
Figure 23-2. JTAG Test Clock Input Timing ............................................................................. 981
Figure 23-3. JTAG Test Access Port (TAP) Timing .................................................................. 981
Figure 23-4. Power-On Reset Timing ..................................................................................... 982
Figure 23-5. Brown-Out Reset Timing .................................................................................... 982
Figure 23-6. Power-On Reset and Voltage Parameters ........................................................... 983
Figure 23-7. External Reset Timing (RST) .............................................................................. 983
Figure 23-8. Software Reset Timing ....................................................................................... 983
Figure 23-9. Watchdog Reset Timing ..................................................................................... 984
Figure 23-10. MOSC Failure Reset Timing ............................................................................... 984
Figure 23-11. Hibernation Module Timing with Internal Oscillator Running in Hibernation ............ 988
Figure 23-12. Hibernation Module Timing with Internal Oscillator Stopped in Hibernation ............ 988
Figure 23-13. ADC Input Equivalency Diagram ......................................................................... 991
Figure 23-14. SSI Timing for TI Frame Format (FRF=01), Single Transfer Timing

                   Measurement .................................................................................................... 992
Figure 23-15. SSI Timing for MICROWIRE Frame Format (FRF=10), Single Transfer ................. 992
Figure 23-16. SSI Timing for SPI Frame Format (FRF=00), with SPH=1 ..................................... 993
Figure 23-17. I2C Timing ......................................................................................................... 994
Figure 23-18. External XTLP Oscillator Characteristics ............................................................. 996
Figure C-1. 100-Pin LQFP Package Dimensions ................................................................. 1033
Figure C-2. 100-Pin LQFP Tray Dimensions ........................................................................ 1035
Figure C-3. 100-Pin LQFP Tape and Reel Dimensions ......................................................... 1036
Figure C-4. 108-Ball BGA Package Dimensions .................................................................. 1037
Figure C-5. 108-Ball BGA Tray Dimensions ......................................................................... 1039
Figure C-6. 108-Ball BGA Tape and Reel Dimensions .......................................................... 1040

July 03, 2011                                         13

               Texas Instruments-Advance Information
Table of Contents

List of Tables

    Table 1.       Revision History .................................................................................................. 29
    Table 2.       Documentation Conventions ................................................................................ 31
    Table 2-1.     Summary of Processor Mode, Privilege Level, and Stack Use ................................ 60
    Table 2-2.     Processor Register Map ....................................................................................... 61
    Table 2-3.     PSR Register Combinations ................................................................................. 66
    Table 2-4.     Memory Map ....................................................................................................... 74
    Table 2-5.     Memory Access Behavior ..................................................................................... 77
    Table 2-6.     SRAM Memory Bit-Banding Regions .................................................................... 79
    Table 2-7.     Peripheral Memory Bit-Banding Regions ............................................................... 79
    Table 2-8.     Exception Types .................................................................................................. 85
    Table 2-9.     Interrupts ............................................................................................................ 85
    Table 2-10.    Exception Return Behavior ................................................................................... 90
    Table 2-11.    Faults ................................................................................................................. 91
    Table 2-12.    Fault Status and Fault Address Registers .............................................................. 92
    Table 2-13.    Cortex-M3 Instruction Summary ........................................................................... 94
    Table 3-1.     Core Peripheral Register Regions ......................................................................... 98
    Table 3-2.     Memory Attributes Summary .............................................................................. 101
    Table 3-3.     TEX, S, C, and B Bit Field Encoding ................................................................... 104
    Table 3-4.     Cache Policy for Memory Attribute Encoding ....................................................... 105
    Table 3-5.     AP Bit Field Encoding ........................................................................................ 105
    Table 3-6.     Memory Region Attributes for Stellaris Microcontrollers ........................................ 105
    Table 3-7.     Peripherals Register Map ................................................................................... 106
    Table 3-8.     Interrupt Priority Levels ...................................................................................... 133
    Table 3-9.     Example SIZE Field Values ................................................................................ 161
    Table 4-1.     Signals for JTAG_SWD_SWO (100LQFP) ........................................................... 165
    Table 4-2.     Signals for JTAG_SWD_SWO (108BGA) ............................................................ 166
    Table 4-3.     JTAG Port Pins State after Power-On Reset or RST assertion .............................. 167
    Table 4-4.     JTAG Instruction Register Commands ................................................................. 172
    Table 5-1.     Signals for System Control & Clocks (100LQFP) .................................................. 176
    Table 5-2.     Signals for System Control & Clocks (108BGA) ................................................... 176
    Table 5-3.     Reset Sources ................................................................................................... 177
    Table 5-4.     Clock Source Options ........................................................................................ 184
    Table 5-5.     Possible System Clock Frequencies Using the SYSDIV Field ............................... 187
    Table 5-6.     Examples of Possible System Clock Frequencies Using the SYSDIV2 Field .......... 187
    Table 5-7.     Examples of Possible System Clock Frequencies with DIV400=1 ......................... 188
    Table 5-8.     System Control Register Map ............................................................................. 193
    Table 5-9.     RCC2 Fields that Override RCC Fields ............................................................... 213
    Table 6-1.     Signals for Hibernate (100LQFP) ........................................................................ 278
    Table 6-2.     Signals for Hibernate (108BGA) .......................................................................... 279
    Table 6-3.     Hibernation Module Clock Operation ................................................................... 284
    Table 6-4.     Hibernation Module Register Map ....................................................................... 287
    Table 7-1.     Flash Memory Protection Policy Combinations .................................................... 308
    Table 7-2.     User-Programmable Flash Memory Resident Registers ....................................... 311
    Table 7-3.     Flash Register Map ............................................................................................ 312
    Table 8-1.     DMA Channel Assignments .............................................................................. 351
    Table 8-2.     Request Type Support ....................................................................................... 353

14                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

Table 8-3.     Control Structure Memory Map ........................................................................... 354
Table 8-4.     Channel Control Structure .................................................................................. 354
Table 8-5.     DMA Read Example: 8-Bit Peripheral ................................................................ 363
Table 8-6.     DMA Interrupt Assignments .............................................................................. 364
Table 8-7.     Channel Control Structure Offsets for Channel 30 ................................................ 365
Table 8-8.     Channel Control Word Configuration for Memory Transfer Example ...................... 365
Table 8-9.     Channel Control Structure Offsets for Channel 7 .................................................. 366
Table 8-10.    Channel Control Word Configuration for Peripheral Transmit Example .................. 367
Table 8-11.    Primary and Alternate Channel Control Structure Offsets for Channel 8 ................. 368
Table 8-12.    Channel Control Word Configuration for Peripheral Ping-Pong Receive
               Example ............................................................................................................ 369
Table 8-13.    DMA Register Map .......................................................................................... 371
Table 9-1.     GPIO Pins With Non-Zero Reset Values .............................................................. 410
Table 9-2.     GPIO Pins and Alternate Functions (100LQFP) ................................................... 410
Table 9-3.     GPIO Pins and Alternate Functions (108BGA) ..................................................... 411
Table 9-4.     GPIO Pad Configuration Examples ..................................................................... 417
Table 9-5.     GPIO Interrupt Configuration Example ................................................................ 418
Table 9-6.     GPIO Pins With Non-Zero Reset Values .............................................................. 419
Table 9-7.     GPIO Register Map ........................................................................................... 419
Table 9-8.     GPIO Pins With Non-Zero Reset Values .............................................................. 432
Table 9-9.     GPIO Pins With Non-Zero Reset Values .............................................................. 438
Table 9-10.    GPIO Pins With Non-Zero Reset Values .............................................................. 440
Table 9-11.    GPIO Pins With Non-Zero Reset Values .............................................................. 443
Table 9-12.    GPIO Pins With Non-Zero Reset Values .............................................................. 449
Table 10-1.    Available CCP Pins ............................................................................................ 464
Table 10-2.    Signals for General-Purpose Timers (100LQFP) .................................................. 465
Table 10-3.    Signals for General-Purpose Timers (108BGA) .................................................... 466
Table 10-4.    General-Purpose Timer Capabilities .................................................................... 467
Table 10-5.    16-Bit Timer With Prescaler Configurations ......................................................... 468
Table 10-6.    Timers Register Map .......................................................................................... 477
Table 11-1.    Watchdog Timers Register Map .......................................................................... 512
Table 12-1.    Signals for ADC (100LQFP) ............................................................................... 536
Table 12-2.    Signals for ADC (108BGA) ................................................................................. 537
Table 12-3.    Samples and FIFO Depth of Sequencers ............................................................ 538
Table 12-4.    Differential Sampling Pairs ................................................................................. 545
Table 12-5.    ADC Register Map ............................................................................................. 554
Table 13-1.    Signals for UART (100LQFP) ............................................................................. 617
Table 13-2.    Signals for UART (108BGA) ............................................................................... 617
Table 13-3.    Flow Control Mode ............................................................................................. 622
Table 13-4.    UART Register Map ........................................................................................... 627
Table 14-1.    Signals for SSI (100LQFP) ................................................................................. 678
Table 14-2.    Signals for SSI (108BGA) ................................................................................... 678
Table 14-3.    SSI Register Map .............................................................................................. 689
Table 15-1.    Signals for I2C (100LQFP) ................................................................................. 719
Table 15-2.    Signals for I2C (108BGA) ................................................................................... 719
Table 15-3.    Examples of I2C Master Timer Period versus Speed Mode ................................... 723
Table 15-4.    Inter-Integrated Circuit (I2C) Interface Register Map ............................................. 733
Table 15-5.    Write Field Decoding for I2CMCS[3:0] Field ......................................................... 738

July 03, 2011                                         15

               Texas Instruments-Advance Information
Table of Contents

    Table 16-1.    Signals for Ethernet (100LQFP) .......................................................................... 757
    Table 16-2.    Signals for Ethernet (108BGA) ............................................................................ 757
    Table 16-3.    TX & RX FIFO Organization ............................................................................... 760
    Table 16-4.    Ethernet Register Map ....................................................................................... 767
    Table 17-1.    Signals for Analog Comparators (100LQFP) ........................................................ 815
    Table 17-2.    Signals for Analog Comparators (108BGA) .......................................................... 815
    Table 17-3.    Internal Reference Voltage and ACREFCTL Field Values ..................................... 817
    Table 17-4.    Analog Comparators Register Map ..................................................................... 818
    Table 18-1.    Signals for PWM (100LQFP) .............................................................................. 829
    Table 18-2.    Signals for PWM (108BGA) ................................................................................ 829
    Table 18-3.    PWM Register Map ............................................................................................ 837
    Table 19-1.    Signals for QEI (100LQFP) ................................................................................. 899
    Table 19-2.    Signals for QEI (108BGA) .................................................................................. 900
    Table 19-3.    QEI Register Map .............................................................................................. 903
    Table 21-1.    GPIO Pins With Default Alternate Functions ........................................................ 923
    Table 21-2.    Signals by Pin Number ....................................................................................... 924
    Table 21-3.    Signals by Signal Name ..................................................................................... 931
    Table 21-4.    Signals by Function, Except for GPIO ................................................................. 939
    Table 21-5.    GPIO Pins and Alternate Functions ..................................................................... 946
    Table 21-6.    Possible Pin Assignments for Alternate Functions ................................................ 948
    Table 21-7.    Signals by Pin Number ....................................................................................... 949
    Table 21-8.    Signals by Signal Name ..................................................................................... 958
    Table 21-9.    Signals by Function, Except for GPIO ................................................................. 965
    Table 21-10.   GPIO Pins and Alternate Functions ..................................................................... 972
    Table 21-11.   Possible Pin Assignments for Alternate Functions ................................................ 974
    Table 21-12.   Connections for Unused Signals (100-Pin LQFP) ................................................. 976
    Table 21-13.   Connections for Unused Signals (108-Ball BGA) .................................................. 976
    Table 22-1.    Temperature Characteristics ............................................................................... 978
    Table 22-2.    Thermal Characteristics ..................................................................................... 978
    Table 22-3.    ESD Absolute Maximum Ratings ........................................................................ 978
    Table 23-1.    Maximum Ratings .............................................................................................. 979
    Table 23-2.    Recommended DC Operating Conditions ............................................................ 979
    Table 23-3.    JTAG Characteristics ......................................................................................... 980
    Table 23-4.    Power Characteristics ........................................................................................ 982
    Table 23-5.    Reset Characteristics ......................................................................................... 983
    Table 23-6.    LDO Regulator Characteristics ........................................................................... 984
    Table 23-7.    Phase Locked Loop (PLL) Characteristics ........................................................... 984
    Table 23-8.    Actual PLL Frequency ........................................................................................ 985
    Table 23-9.    PIOSC Clock Characteristics .............................................................................. 985
    Table 23-10.   30-kHz Clock Characteristics .............................................................................. 985
    Table 23-11.   Hibernation Clock Characteristics ....................................................................... 985
    Table 23-12.   HIB Oscillator Input Characteristics ..................................................................... 986
    Table 23-13.   Main Oscillator Clock Characteristics .................................................................. 986
    Table 23-14.   Supported MOSC Crystal Frequencies ................................................................ 986
    Table 23-15.   System Clock Characteristics with ADC Operation ............................................... 987
    Table 23-16.   Sleep Modes AC Characteristics ......................................................................... 987
    Table 23-17.   Hibernation Module Battery Characteristics ......................................................... 987
    Table 23-18.   Hibernation Module AC Characteristics ............................................................... 988

16                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

Table 23-19.   Flash Memory Characteristics ............................................................................ 989
Table 23-20.   GPIO Module Characteristics ............................................................................. 989
Table 23-21.   ADC Characteristics ........................................................................................... 990
Table 23-22.   ADC Module External Reference Characteristics ................................................. 991
Table 23-23.   ADC Module Internal Reference Characteristics .................................................. 991
Table 23-24.   SSI Characteristics ............................................................................................ 991
Table 23-25.   I2C Characteristics ............................................................................................. 993
Table 23-26.   Ethernet Controller DC Characteristics ................................................................ 994
Table 23-27.   100BASE-TX Transmitter Characteristics ............................................................ 994
Table 23-28.   100BASE-TX Transmitter Characteristics (informative) ......................................... 994
Table 23-29.   100BASE-TX Receiver Characteristics ................................................................ 994
Table 23-30.   10BASE-T Transmitter Characteristics ................................................................ 995
Table 23-31.   10BASE-T Transmitter Characteristics (informative) ............................................. 995
Table 23-32.   10BASE-T Receiver Characteristics .................................................................... 995
Table 23-33.   Isolation Transformers ....................................................................................... 995
Table 23-34.   Ethernet Reference Crystal ................................................................................ 995
Table 23-35.   External XTLP Oscillator Characteristics ............................................................. 996
Table 23-36.   Analog Comparator Characteristics ..................................................................... 996
Table 23-37.   Analog Comparator Voltage Reference Characteristics ........................................ 997
Table 23-38.   Nominal Power Consumption ............................................................................. 997
Table 23-39.   Detailed Current Specifications ........................................................................... 998
Table 23-40.   Hibernation Detailed Current Specifications ......................................................... 998
Table 23-41.   External VDDC Source Current Specifications ....................................................... 999
Table B-1.     Part Ordering Information ................................................................................. 1031

July 03, 2011                                         17

               Texas Instruments-Advance Information
Table of Contents

List of Registers

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

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

18                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

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

System Control ............................................................................................................................ 176
Register 1: Device Identification 0 (DID0), offset 0x000 ..................................................................... 195
Register 2: Brown-Out Reset Control (PBORCTL), offset 0x030 ........................................................ 197
Register 3: Raw Interrupt Status (RIS), offset 0x050 .......................................................................... 198
Register 4: Interrupt Mask Control (IMC), offset 0x054 ...................................................................... 200
Register 5: Masked Interrupt Status and Clear (MISC), offset 0x058 .................................................. 202
Register 6: Reset Cause (RESC), offset 0x05C ................................................................................ 204
Register 7: Run-Mode Clock Configuration (RCC), offset 0x060 ......................................................... 206
Register 8: XTAL to PLL Translation (PLLCFG), offset 0x064 ............................................................. 210
Register 9: GPIO High-Performance Bus Control (GPIOHBCTL), offset 0x06C ................................... 211
Register 10: Run-Mode Clock Configuration 2 (RCC2), offset 0x070 .................................................... 213
Register 11: Main Oscillator Control (MOSCCTL), offset 0x07C ........................................................... 216
Register 12: Deep Sleep Clock Configuration (DSLPCLKCFG), offset 0x144 ........................................ 217
Register 13: Precision Internal Oscillator Calibration (PIOSCCAL), offset 0x150 ................................... 219
Register 14: Precision Internal Oscillator Statistics (PIOSCSTAT), offset 0x154 .................................... 221
Register 15: Device Identification 1 (DID1), offset 0x004 ..................................................................... 222

July 03, 2011                                         19

               Texas Instruments-Advance Information
Table of Contents

Register 16:  Device Capabilities 0 (DC0), offset 0x008 ........................................................................ 224
Register 17:  Device Capabilities 1 (DC1), offset 0x010 ........................................................................ 225
Register 18:  Device Capabilities 2 (DC2), offset 0x014 ........................................................................ 227
Register 19:  Device Capabilities 3 (DC3), offset 0x018 ........................................................................ 229
Register 20:  Device Capabilities 4 (DC4), offset 0x01C ....................................................................... 232
Register 21:  Device Capabilities 5 (DC5), offset 0x020 ........................................................................ 234
Register 22:  Device Capabilities 6 (DC6), offset 0x024 ........................................................................ 236
Register 23:  Device Capabilities 7 (DC7), offset 0x028 ........................................................................ 237
Register 24:  Device Capabilities 8 ADC Channels (DC8), offset 0x02C ................................................ 241
Register 25:  Device Capabilities 9 ADC Digital Comparators (DC9), offset 0x190 ................................. 244
Register 26:  Non-Volatile Memory Information (NVMSTAT), offset 0x1A0 ............................................. 246
Register 27:  Run Mode Clock Gating Control Register 0 (RCGC0), offset 0x100 ................................... 247
Register 28:  Sleep Mode Clock Gating Control Register 0 (SCGC0), offset 0x110 ................................. 250
Register 29:  Deep Sleep Mode Clock Gating Control Register 0 (DCGC0), offset 0x120 ....................... 253
Register 30:  Run Mode Clock Gating Control Register 1 (RCGC1), offset 0x104 ................................... 255
Register 31:  Sleep Mode Clock Gating Control Register 1 (SCGC1), offset 0x114 ................................. 258
Register 32:  Deep-Sleep Mode Clock Gating Control Register 1 (DCGC1), offset 0x124 ....................... 261
Register 33:  Run Mode Clock Gating Control Register 2 (RCGC2), offset 0x108 ................................... 264
Register 34:  Sleep Mode Clock Gating Control Register 2 (SCGC2), offset 0x118 ................................. 266
Register 35:  Deep Sleep Mode Clock Gating Control Register 2 (DCGC2), offset 0x128 ....................... 268
Register 36:  Software Reset Control 0 (SRCR0), offset 0x040 ............................................................. 270
Register 37:  Software Reset Control 1 (SRCR1), offset 0x044 ............................................................. 272
Register 38:  Software Reset Control 2 (SRCR2), offset 0x048 ............................................................. 275

Hibernation Module ..................................................................................................................... 277
Register 1: Hibernation RTC Counter (HIBRTCC), offset 0x000 ......................................................... 288
Register 2: Hibernation RTC Match 0 (HIBRTCM0), offset 0x004 ....................................................... 289
Register 3: Hibernation RTC Match 1 (HIBRTCM1), offset 0x008 ....................................................... 290
Register 4: Hibernation RTC Load (HIBRTCLD), offset 0x00C ........................................................... 291
Register 5: Hibernation Control (HIBCTL), offset 0x010 ..................................................................... 292
Register 6: Hibernation Interrupt Mask (HIBIM), offset 0x014 ............................................................. 295
Register 7: Hibernation Raw Interrupt Status (HIBRIS), offset 0x018 .................................................. 297
Register 8: Hibernation Masked Interrupt Status (HIBMIS), offset 0x01C ............................................ 299
Register 9: Hibernation Interrupt Clear (HIBIC), offset 0x020 ............................................................. 301
Register 10: Hibernation RTC Trim (HIBRTCT), offset 0x024 ............................................................... 302
Register 11: Hibernation Data (HIBDATA), offset 0x030-0x12C ............................................................ 303

Internal Memory ........................................................................................................................... 304
Register 1: Flash Memory Address (FMA), offset 0x000 .................................................................... 314
Register 2: Flash Memory Data (FMD), offset 0x004 ......................................................................... 315
Register 3: Flash Memory Control (FMC), offset 0x008 ..................................................................... 316
Register 4: Flash Controller Raw Interrupt Status (FCRIS), offset 0x00C ............................................ 319
Register 5: Flash Controller Interrupt Mask (FCIM), offset 0x010 ........................................................ 320
Register 6: Flash Controller Masked Interrupt Status and Clear (FCMISC), offset 0x014 ..................... 321
Register 7: Flash Memory Control 2 (FMC2), offset 0x020 ................................................................. 322
Register 8: Flash Write Buffer Valid (FWBVAL), offset 0x030 ............................................................. 323
Register 9: Flash Control (FCTL), offset 0x0F8 ................................................................................. 324
Register 10: Flash Write Buffer n (FWBn), offset 0x100 - 0x17C .......................................................... 325
Register 11: ROM Control (RMCTL), offset 0x0F0 .............................................................................. 326
Register 12: Flash Memory Protection Read Enable 0 (FMPRE0), offset 0x130 and 0x200 ................... 327

20                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

Register 13:   Flash Memory Protection Program Enable 0 (FMPPE0), offset 0x134 and 0x400 ............... 328
Register 14:   Boot Configuration (BOOTCFG), offset 0x1D0 ................................................................. 329
Register 15:   User Register 0 (USER_REG0), offset 0x1E0 .................................................................. 331
Register 16:   User Register 1 (USER_REG1), offset 0x1E4 .................................................................. 332
Register 17:   User Register 2 (USER_REG2), offset 0x1E8 .................................................................. 333
Register 18:   User Register 3 (USER_REG3), offset 0x1EC ................................................................. 334
Register 19:   Flash Memory Protection Read Enable 1 (FMPRE1), offset 0x204 .................................... 335
Register 20:   Flash Memory Protection Read Enable 2 (FMPRE2), offset 0x208 .................................... 336
Register 21:   Flash Memory Protection Read Enable 3 (FMPRE3), offset 0x20C ................................... 337
Register 22:   Flash Memory Protection Read Enable 4 (FMPRE4), offset 0x210 .................................... 338
Register 23:   Flash Memory Protection Read Enable 5 (FMPRE5), offset 0x214 .................................... 339
Register 24:   Flash Memory Protection Read Enable 6 (FMPRE6), offset 0x218 .................................... 340
Register 25:   Flash Memory Protection Read Enable 7 (FMPRE7), offset 0x21C ................................... 341
Register 26:   Flash Memory Protection Program Enable 1 (FMPPE1), offset 0x404 ............................... 342
Register 27:   Flash Memory Protection Program Enable 2 (FMPPE2), offset 0x408 ............................... 343
Register 28:   Flash Memory Protection Program Enable 3 (FMPPE3), offset 0x40C ............................... 344
Register 29:   Flash Memory Protection Program Enable 4 (FMPPE4), offset 0x410 ............................... 345
Register 30:   Flash Memory Protection Program Enable 5 (FMPPE5), offset 0x414 ............................... 346
Register 31:   Flash Memory Protection Program Enable 6 (FMPPE6), offset 0x418 ............................... 347
Register 32:   Flash Memory Protection Program Enable 7 (FMPPE7), offset 0x41C ............................... 348

Micro Direct Memory Access (DMA) ........................................................................................ 349
Register 1: DMA Channel Source Address End Pointer (DMASRCENDP), offset 0x000 ...................... 373
Register 2: DMA Channel Destination Address End Pointer (DMADSTENDP), offset 0x004 ................ 374
Register 3: DMA Channel Control Word (DMACHCTL), offset 0x008 .................................................. 375
Register 4: DMA Status (DMASTAT), offset 0x000 ............................................................................ 380
Register 5: DMA Configuration (DMACFG), offset 0x004 ................................................................... 382
Register 6: DMA Channel Control Base Pointer (DMACTLBASE), offset 0x008 .................................. 383
Register 7: DMA Alternate Channel Control Base Pointer (DMAALTBASE), offset 0x00C .................... 384
Register 8: DMA Channel Wait-on-Request Status (DMAWAITSTAT), offset 0x010 ............................. 385
Register 9: DMA Channel Software Request (DMASWREQ), offset 0x014 ......................................... 386
Register 10: DMA Channel Useburst Set (DMAUSEBURSTSET), offset 0x018 .................................... 387
Register 11: DMA Channel Useburst Clear (DMAUSEBURSTCLR), offset 0x01C ................................. 388
Register 12: DMA Channel Request Mask Set (DMAREQMASKSET), offset 0x020 .............................. 389
Register 13: DMA Channel Request Mask Clear (DMAREQMASKCLR), offset 0x024 ........................... 390
Register 14: DMA Channel Enable Set (DMAENASET), offset 0x028 ................................................... 391
Register 15: DMA Channel Enable Clear (DMAENACLR), offset 0x02C ............................................... 392
Register 16: DMA Channel Primary Alternate Set (DMAALTSET), offset 0x030 .................................... 393
Register 17: DMA Channel Primary Alternate Clear (DMAALTCLR), offset 0x034 ................................. 394
Register 18: DMA Channel Priority Set (DMAPRIOSET), offset 0x038 ................................................. 395
Register 19: DMA Channel Priority Clear (DMAPRIOCLR), offset 0x03C .............................................. 396
Register 20: DMA Bus Error Clear (DMAERRCLR), offset 0x04C ........................................................ 397
Register 21: DMA Channel Assignment (DMACHASGN), offset 0x500 ................................................. 398
Register 22: DMA Channel Interrupt Status (DMACHIS), offset 0x504 .................................................. 399
Register 23: DMA Peripheral Identification 0 (DMAPeriphID0), offset 0xFE0 ......................................... 400
Register 24: DMA Peripheral Identification 1 (DMAPeriphID1), offset 0xFE4 ......................................... 401
Register 25: DMA Peripheral Identification 2 (DMAPeriphID2), offset 0xFE8 ......................................... 402
Register 26: DMA Peripheral Identification 3 (DMAPeriphID3), offset 0xFEC ........................................ 403
Register 27: DMA Peripheral Identification 4 (DMAPeriphID4), offset 0xFD0 ......................................... 404

July 03, 2011                                         21

               Texas Instruments-Advance Information
Table of Contents

Register 28:  DMA PrimeCell Identification 0 (DMAPCellID0), offset 0xFF0 ........................................... 405
Register 29:  DMA PrimeCell Identification 1 (DMAPCellID1), offset 0xFF4 ........................................... 406
Register 30:  DMA PrimeCell Identification 2 (DMAPCellID2), offset 0xFF8 ........................................... 407
Register 31:  DMA PrimeCell Identification 3 (DMAPCellID3), offset 0xFFC ........................................... 408

General-Purpose Input/Outputs (GPIOs) ................................................................................... 409
Register 1: GPIO Data (GPIODATA), offset 0x000 ............................................................................ 422
Register 2: GPIO Direction (GPIODIR), offset 0x400 ......................................................................... 423
Register 3: GPIO Interrupt Sense (GPIOIS), offset 0x404 .................................................................. 424
Register 4: GPIO Interrupt Both Edges (GPIOIBE), offset 0x408 ........................................................ 425
Register 5: GPIO Interrupt Event (GPIOIEV), offset 0x40C ................................................................ 426
Register 6: GPIO Interrupt Mask (GPIOIM), offset 0x410 ................................................................... 427
Register 7: GPIO Raw Interrupt Status (GPIORIS), offset 0x414 ........................................................ 428
Register 8: GPIO Masked Interrupt Status (GPIOMIS), offset 0x418 ................................................... 429
Register 9: GPIO Interrupt Clear (GPIOICR), offset 0x41C ................................................................ 431
Register 10: GPIO Alternate Function Select (GPIOAFSEL), offset 0x420 ............................................ 432
Register 11: GPIO 2-mA Drive Select (GPIODR2R), offset 0x500 ........................................................ 434
Register 12: GPIO 4-mA Drive Select (GPIODR4R), offset 0x504 ........................................................ 435
Register 13: GPIO 8-mA Drive Select (GPIODR8R), offset 0x508 ........................................................ 436
Register 14: GPIO Open Drain Select (GPIOODR), offset 0x50C ......................................................... 437
Register 15: GPIO Pull-Up Select (GPIOPUR), offset 0x510 ................................................................ 438
Register 16: GPIO Pull-Down Select (GPIOPDR), offset 0x514 ........................................................... 440
Register 17: GPIO Slew Rate Control Select (GPIOSLR), offset 0x518 ................................................ 442
Register 18: GPIO Digital Enable (GPIODEN), offset 0x51C ................................................................ 443
Register 19: GPIO Lock (GPIOLOCK), offset 0x520 ............................................................................ 445
Register 20: GPIO Commit (GPIOCR), offset 0x524 ............................................................................ 446
Register 21: GPIO Analog Mode Select (GPIOAMSEL), offset 0x528 ................................................... 448
Register 22: GPIO Port Control (GPIOPCTL), offset 0x52C ................................................................. 449
Register 23: GPIO Peripheral Identification 4 (GPIOPeriphID4), offset 0xFD0 ....................................... 451
Register 24: GPIO Peripheral Identification 5 (GPIOPeriphID5), offset 0xFD4 ....................................... 452
Register 25: GPIO Peripheral Identification 6 (GPIOPeriphID6), offset 0xFD8 ....................................... 453
Register 26: GPIO Peripheral Identification 7 (GPIOPeriphID7), offset 0xFDC ...................................... 454
Register 27: GPIO Peripheral Identification 0 (GPIOPeriphID0), offset 0xFE0 ....................................... 455
Register 28: GPIO Peripheral Identification 1 (GPIOPeriphID1), offset 0xFE4 ....................................... 456
Register 29: GPIO Peripheral Identification 2 (GPIOPeriphID2), offset 0xFE8 ....................................... 457
Register 30: GPIO Peripheral Identification 3 (GPIOPeriphID3), offset 0xFEC ...................................... 458
Register 31: GPIO PrimeCell Identification 0 (GPIOPCellID0), offset 0xFF0 .......................................... 459
Register 32: GPIO PrimeCell Identification 1 (GPIOPCellID1), offset 0xFF4 .......................................... 460
Register 33: GPIO PrimeCell Identification 2 (GPIOPCellID2), offset 0xFF8 .......................................... 461
Register 34: GPIO PrimeCell Identification 3 (GPIOPCellID3), offset 0xFFC ......................................... 462

General-Purpose Timers ............................................................................................................. 463
Register 1: GPTM Configuration (GPTMCFG), offset 0x000 .............................................................. 479
Register 2: GPTM Timer A Mode (GPTMTAMR), offset 0x004 ........................................................... 480
Register 3: GPTM Timer B Mode (GPTMTBMR), offset 0x008 ........................................................... 482
Register 4: GPTM Control (GPTMCTL), offset 0x00C ........................................................................ 484
Register 5: GPTM Interrupt Mask (GPTMIMR), offset 0x018 .............................................................. 487
Register 6: GPTM Raw Interrupt Status (GPTMRIS), offset 0x01C ..................................................... 489
Register 7: GPTM Masked Interrupt Status (GPTMMIS), offset 0x020 ................................................ 492
Register 8: GPTM Interrupt Clear (GPTMICR), offset 0x024 .............................................................. 495

22                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

Register 9:    GPTM Timer A Interval Load (GPTMTAILR), offset 0x028 ................................................ 497
Register 10:   GPTM Timer B Interval Load (GPTMTBILR), offset 0x02C ................................................ 498
Register 11:   GPTM Timer A Match (GPTMTAMATCHR), offset 0x030 .................................................. 499
Register 12:   GPTM Timer B Match (GPTMTBMATCHR), offset 0x034 ................................................. 500
Register 13:   GPTM Timer A Prescale (GPTMTAPR), offset 0x038 ....................................................... 501
Register 14:   GPTM Timer B Prescale (GPTMTBPR), offset 0x03C ...................................................... 502
Register 15:   GPTM TimerA Prescale Match (GPTMTAPMR), offset 0x040 ........................................... 503
Register 16:   GPTM TimerB Prescale Match (GPTMTBPMR), offset 0x044 ........................................... 504
Register 17:   GPTM Timer A (GPTMTAR), offset 0x048 ....................................................................... 505
Register 18:   GPTM Timer B (GPTMTBR), offset 0x04C ....................................................................... 506
Register 19:   GPTM Timer A Value (GPTMTAV), offset 0x050 ............................................................... 507
Register 20:   GPTM Timer B Value (GPTMTBV), offset 0x054 .............................................................. 508

Watchdog Timers ......................................................................................................................... 509
Register 1: Watchdog Load (WDTLOAD), offset 0x000 ...................................................................... 513
Register 2: Watchdog Value (WDTVALUE), offset 0x004 ................................................................... 514
Register 3: Watchdog Control (WDTCTL), offset 0x008 ..................................................................... 515
Register 4: Watchdog Interrupt Clear (WDTICR), offset 0x00C .......................................................... 517
Register 5: Watchdog Raw Interrupt Status (WDTRIS), offset 0x010 .................................................. 518
Register 6: Watchdog Masked Interrupt Status (WDTMIS), offset 0x014 ............................................. 519
Register 7: Watchdog Test (WDTTEST), offset 0x418 ....................................................................... 520
Register 8: Watchdog Lock (WDTLOCK), offset 0xC00 ..................................................................... 521
Register 9: Watchdog Peripheral Identification 4 (WDTPeriphID4), offset 0xFD0 ................................. 522
Register 10: Watchdog Peripheral Identification 5 (WDTPeriphID5), offset 0xFD4 ................................. 523
Register 11: Watchdog Peripheral Identification 6 (WDTPeriphID6), offset 0xFD8 ................................. 524
Register 12: Watchdog Peripheral Identification 7 (WDTPeriphID7), offset 0xFDC ................................ 525
Register 13: Watchdog Peripheral Identification 0 (WDTPeriphID0), offset 0xFE0 ................................. 526
Register 14: Watchdog Peripheral Identification 1 (WDTPeriphID1), offset 0xFE4 ................................. 527
Register 15: Watchdog Peripheral Identification 2 (WDTPeriphID2), offset 0xFE8 ................................. 528
Register 16: Watchdog Peripheral Identification 3 (WDTPeriphID3), offset 0xFEC ................................. 529
Register 17: Watchdog PrimeCell Identification 0 (WDTPCellID0), offset 0xFF0 .................................... 530
Register 18: Watchdog PrimeCell Identification 1 (WDTPCellID1), offset 0xFF4 .................................... 531
Register 19: Watchdog PrimeCell Identification 2 (WDTPCellID2), offset 0xFF8 .................................... 532
Register 20: Watchdog PrimeCell Identification 3 (WDTPCellID3 ), offset 0xFFC .................................. 533

Analog-to-Digital Converter (ADC) ............................................................................................. 534
Register 1: ADC Active Sample Sequencer (ADCACTSS), offset 0x000 ............................................. 557
Register 2: ADC Raw Interrupt Status (ADCRIS), offset 0x004 ........................................................... 558
Register 3: ADC Interrupt Mask (ADCIM), offset 0x008 ..................................................................... 560
Register 4: ADC Interrupt Status and Clear (ADCISC), offset 0x00C .................................................. 562
Register 5: ADC Overflow Status (ADCOSTAT), offset 0x010 ............................................................ 565
Register 6: ADC Event Multiplexer Select (ADCEMUX), offset 0x014 ................................................. 567
Register 7: ADC Underflow Status (ADCUSTAT), offset 0x018 ........................................................... 572
Register 8: ADC Sample Sequencer Priority (ADCSSPRI), offset 0x020 ............................................. 573
Register 9: ADC Sample Phase Control (ADCSPC), offset 0x024 ...................................................... 575
Register 10: ADC Processor Sample Sequence Initiate (ADCPSSI), offset 0x028 ................................. 577
Register 11: ADC Sample Averaging Control (ADCSAC), offset 0x030 ................................................. 579
Register 12: ADC Digital Comparator Interrupt Status and Clear (ADCDCISC), offset 0x034 ................. 580
Register 13: ADC Control (ADCCTL), offset 0x038 ............................................................................. 582
Register 14: ADC Sample Sequence Input Multiplexer Select 0 (ADCSSMUX0), offset 0x040 ............... 583

July 03, 2011                                         23

               Texas Instruments-Advance Information
Table of Contents

Register 15:  ADC Sample Sequence Control 0 (ADCSSCTL0), offset 0x044 ........................................ 585
Register 16:  ADC Sample Sequence Result FIFO 0 (ADCSSFIFO0), offset 0x048 ................................ 588
Register 17:  ADC Sample Sequence Result FIFO 1 (ADCSSFIFO1), offset 0x068 ................................ 588
Register 18:  ADC Sample Sequence Result FIFO 2 (ADCSSFIFO2), offset 0x088 ................................ 588
Register 19:  ADC Sample Sequence Result FIFO 3 (ADCSSFIFO3), offset 0x0A8 ............................... 588
Register 20:  ADC Sample Sequence FIFO 0 Status (ADCSSFSTAT0), offset 0x04C ............................. 589
Register 21:  ADC Sample Sequence FIFO 1 Status (ADCSSFSTAT1), offset 0x06C ............................. 589
Register 22:  ADC Sample Sequence FIFO 2 Status (ADCSSFSTAT2), offset 0x08C ............................ 589
Register 23:  ADC Sample Sequence FIFO 3 Status (ADCSSFSTAT3), offset 0x0AC ............................ 589
Register 24:  ADC Sample Sequence 0 Operation (ADCSSOP0), offset 0x050 ...................................... 591
Register 25:  ADC Sample Sequence 0 Digital Comparator Select (ADCSSDC0), offset 0x054 .............. 593
Register 26:  ADC Sample Sequence Input Multiplexer Select 1 (ADCSSMUX1), offset 0x060 ............... 595
Register 27:  ADC Sample Sequence Input Multiplexer Select 2 (ADCSSMUX2), offset 0x080 ............... 595
Register 28:  ADC Sample Sequence Control 1 (ADCSSCTL1), offset 0x064 ........................................ 596
Register 29:  ADC Sample Sequence Control 2 (ADCSSCTL2), offset 0x084 ........................................ 596
Register 30:  ADC Sample Sequence 1 Operation (ADCSSOP1), offset 0x070 ...................................... 598
Register 31:  ADC Sample Sequence 2 Operation (ADCSSOP2), offset 0x090 ..................................... 598
Register 32:  ADC Sample Sequence 1 Digital Comparator Select (ADCSSDC1), offset 0x074 .............. 599
Register 33:  ADC Sample Sequence 2 Digital Comparator Select (ADCSSDC2), offset 0x094 .............. 599
Register 34:  ADC Sample Sequence Input Multiplexer Select 3 (ADCSSMUX3), offset 0x0A0 ............... 601
Register 35:  ADC Sample Sequence Control 3 (ADCSSCTL3), offset 0x0A4 ........................................ 602
Register 36:  ADC Sample Sequence 3 Operation (ADCSSOP3), offset 0x0B0 ..................................... 603
Register 37:  ADC Sample Sequence 3 Digital Comparator Select (ADCSSDC3), offset 0x0B4 .............. 604
Register 38:  ADC Digital Comparator Reset Initial Conditions (ADCDCRIC), offset 0xD00 ..................... 605
Register 39:  ADC Digital Comparator Control 0 (ADCDCCTL0), offset 0xE00 ....................................... 610
Register 40:  ADC Digital Comparator Control 1 (ADCDCCTL1), offset 0xE04 ....................................... 610
Register 41:  ADC Digital Comparator Control 2 (ADCDCCTL2), offset 0xE08 ....................................... 610
Register 42:  ADC Digital Comparator Control 3 (ADCDCCTL3), offset 0xE0C ...................................... 610
Register 43:  ADC Digital Comparator Control 4 (ADCDCCTL4), offset 0xE10 ....................................... 610
Register 44:  ADC Digital Comparator Control 5 (ADCDCCTL5), offset 0xE14 ....................................... 610
Register 45:  ADC Digital Comparator Control 6 (ADCDCCTL6), offset 0xE18 ....................................... 610
Register 46:  ADC Digital Comparator Control 7 (ADCDCCTL7), offset 0xE1C ...................................... 610
Register 47:  ADC Digital Comparator Range 0 (ADCDCCMP0), offset 0xE40 ....................................... 613
Register 48:  ADC Digital Comparator Range 1 (ADCDCCMP1), offset 0xE44 ....................................... 613
Register 49:  ADC Digital Comparator Range 2 (ADCDCCMP2), offset 0xE48 ....................................... 613
Register 50:  ADC Digital Comparator Range 3 (ADCDCCMP3), offset 0xE4C ...................................... 613
Register 51:  ADC Digital Comparator Range 4 (ADCDCCMP4), offset 0xE50 ....................................... 613
Register 52:  ADC Digital Comparator Range 5 (ADCDCCMP5), offset 0xE54 ....................................... 613
Register 53:  ADC Digital Comparator Range 6 (ADCDCCMP6), offset 0xE58 ....................................... 613
Register 54:  ADC Digital Comparator Range 7 (ADCDCCMP7), offset 0xE5C ...................................... 613

Universal Asynchronous Receivers/Transmitters (UARTs) ..................................................... 615
Register 1: UART Data (UARTDR), offset 0x000 ............................................................................... 629
Register 2: UART Receive Status/Error Clear (UARTRSR/UARTECR), offset 0x004 ........................... 631
Register 3: UART Flag (UARTFR), offset 0x018 ................................................................................ 634
Register 4: UART IrDA Low-Power Register (UARTILPR), offset 0x020 ............................................. 637
Register 5: UART Integer Baud-Rate Divisor (UARTIBRD), offset 0x024 ............................................ 638
Register 6: UART Fractional Baud-Rate Divisor (UARTFBRD), offset 0x028 ....................................... 639
Register 7: UART Line Control (UARTLCRH), offset 0x02C ............................................................... 640

24                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

Register 8:    UART Control (UARTCTL), offset 0x030 ......................................................................... 642
Register 9:    UART Interrupt FIFO Level Select (UARTIFLS), offset 0x034 ........................................... 646
Register 10:   UART Interrupt Mask (UARTIM), offset 0x038 ................................................................. 648
Register 11:   UART Raw Interrupt Status (UARTRIS), offset 0x03C ...................................................... 652
Register 12:   UART Masked Interrupt Status (UARTMIS), offset 0x040 ................................................. 655
Register 13:   UART Interrupt Clear (UARTICR), offset 0x044 ............................................................... 658
Register 14:   UART DMA Control (UARTDMACTL), offset 0x048 .......................................................... 660
Register 15:   UART LIN Control (UARTLCTL), offset 0x090 ................................................................. 661
Register 16:   UART LIN Snap Shot (UARTLSS), offset 0x094 ............................................................... 662
Register 17:   UART LIN Timer (UARTLTIM), offset 0x098 ..................................................................... 663
Register 18:   UART Peripheral Identification 4 (UARTPeriphID4), offset 0xFD0 ..................................... 664
Register 19:   UART Peripheral Identification 5 (UARTPeriphID5), offset 0xFD4 ..................................... 665
Register 20:   UART Peripheral Identification 6 (UARTPeriphID6), offset 0xFD8 ..................................... 666
Register 21:   UART Peripheral Identification 7 (UARTPeriphID7), offset 0xFDC ..................................... 667
Register 22:   UART Peripheral Identification 0 (UARTPeriphID0), offset 0xFE0 ...................................... 668
Register 23:   UART Peripheral Identification 1 (UARTPeriphID1), offset 0xFE4 ...................................... 669
Register 24:   UART Peripheral Identification 2 (UARTPeriphID2), offset 0xFE8 ...................................... 670
Register 25:   UART Peripheral Identification 3 (UARTPeriphID3), offset 0xFEC ..................................... 671
Register 26:   UART PrimeCell Identification 0 (UARTPCellID0), offset 0xFF0 ........................................ 672
Register 27:   UART PrimeCell Identification 1 (UARTPCellID1), offset 0xFF4 ........................................ 673
Register 28:   UART PrimeCell Identification 2 (UARTPCellID2), offset 0xFF8 ........................................ 674
Register 29:   UART PrimeCell Identification 3 (UARTPCellID3), offset 0xFFC ........................................ 675

Synchronous Serial Interface (SSI) ............................................................................................ 676
Register 1: SSI Control 0 (SSICR0), offset 0x000 .............................................................................. 691
Register 2: SSI Control 1 (SSICR1), offset 0x004 .............................................................................. 693
Register 3: SSI Data (SSIDR), offset 0x008 ...................................................................................... 695
Register 4: SSI Status (SSISR), offset 0x00C ................................................................................... 696
Register 5: SSI Clock Prescale (SSICPSR), offset 0x010 .................................................................. 698
Register 6: SSI Interrupt Mask (SSIIM), offset 0x014 ......................................................................... 699
Register 7: SSI Raw Interrupt Status (SSIRIS), offset 0x018 .............................................................. 700
Register 8: SSI Masked Interrupt Status (SSIMIS), offset 0x01C ........................................................ 702
Register 9: SSI Interrupt Clear (SSIICR), offset 0x020 ....................................................................... 704
Register 10: SSI DMA Control (SSIDMACTL), offset 0x024 ................................................................. 705
Register 11: SSI Peripheral Identification 4 (SSIPeriphID4), offset 0xFD0 ............................................. 706
Register 12: SSI Peripheral Identification 5 (SSIPeriphID5), offset 0xFD4 ............................................. 707
Register 13: SSI Peripheral Identification 6 (SSIPeriphID6), offset 0xFD8 ............................................. 708
Register 14: SSI Peripheral Identification 7 (SSIPeriphID7), offset 0xFDC ............................................ 709
Register 15: SSI Peripheral Identification 0 (SSIPeriphID0), offset 0xFE0 ............................................. 710
Register 16: SSI Peripheral Identification 1 (SSIPeriphID1), offset 0xFE4 ............................................. 711
Register 17: SSI Peripheral Identification 2 (SSIPeriphID2), offset 0xFE8 ............................................. 712
Register 18: SSI Peripheral Identification 3 (SSIPeriphID3), offset 0xFEC ............................................ 713
Register 19: SSI PrimeCell Identification 0 (SSIPCellID0), offset 0xFF0 ............................................... 714
Register 20: SSI PrimeCell Identification 1 (SSIPCellID1), offset 0xFF4 ............................................... 715
Register 21: SSI PrimeCell Identification 2 (SSIPCellID2), offset 0xFF8 ............................................... 716
Register 22: SSI PrimeCell Identification 3 (SSIPCellID3), offset 0xFFC ............................................... 717

Inter-Integrated Circuit (I2C) Interface ........................................................................................ 718
Register 1: I2C Master Slave Address (I2CMSA), offset 0x000 ........................................................... 735
Register 2: I2C Master Control/Status (I2CMCS), offset 0x004 ........................................................... 736

July 03, 2011                                         25

               Texas Instruments-Advance Information
Table of Contents

Register 3:   I2C Master Data (I2CMDR), offset 0x008 ......................................................................... 740
Register 4:   I2C Master Timer Period (I2CMTPR), offset 0x00C ........................................................... 741
Register 5:   I2C Master Interrupt Mask (I2CMIMR), offset 0x010 ......................................................... 742
Register 6:   I2C Master Raw Interrupt Status (I2CMRIS), offset 0x014 ................................................. 743
Register 7:   I2C Master Masked Interrupt Status (I2CMMIS), offset 0x018 ........................................... 744
Register 8:   I2C Master Interrupt Clear (I2CMICR), offset 0x01C ......................................................... 745
Register 9:   I2C Master Configuration (I2CMCR), offset 0x020 ............................................................ 746
Register 10:  I2C Slave Own Address (I2CSOAR), offset 0x800 ............................................................ 747
Register 11:  I2C Slave Control/Status (I2CSCSR), offset 0x804 ........................................................... 748
Register 12:  I2C Slave Data (I2CSDR), offset 0x808 ........................................................................... 750
Register 13:  I2C Slave Interrupt Mask (I2CSIMR), offset 0x80C ........................................................... 751
Register 14:  I2C Slave Raw Interrupt Status (I2CSRIS), offset 0x810 ................................................... 752
Register 15:  I2C Slave Masked Interrupt Status (I2CSMIS), offset 0x814 .............................................. 753
Register 16:  I2C Slave Interrupt Clear (I2CSICR), offset 0x818 ............................................................ 754

Ethernet Controller ...................................................................................................................... 755
Register 1: Ethernet MAC Raw Interrupt Status/Acknowledge (MACRIS/MACIACK), offset 0x000 ....... 769
Register 2: Ethernet MAC Interrupt Mask (MACIM), offset 0x004 ....................................................... 772
Register 3: Ethernet MAC Receive Control (MACRCTL), offset 0x008 ................................................ 774
Register 4: Ethernet MAC Transmit Control (MACTCTL), offset 0x00C ............................................... 776
Register 5: Ethernet MAC Data (MACDATA), offset 0x010 ................................................................. 778
Register 6: Ethernet MAC Individual Address 0 (MACIA0), offset 0x014 ............................................. 780
Register 7: Ethernet MAC Individual Address 1 (MACIA1), offset 0x018 ............................................. 781
Register 8: Ethernet MAC Threshold (MACTHR), offset 0x01C .......................................................... 782
Register 9: Ethernet MAC Management Control (MACMCTL), offset 0x020 ........................................ 784
Register 10: Ethernet MAC Management Divider (MACMDV), offset 0x024 .......................................... 786
Register 11: Ethernet MAC Management Transmit Data (MACMTXD), offset 0x02C ............................. 787
Register 12: Ethernet MAC Management Receive Data (MACMRXD), offset 0x030 .............................. 788
Register 13: Ethernet MAC Number of Packets (MACNP), offset 0x034 ............................................... 789
Register 14: Ethernet MAC Transmission Request (MACTR), offset 0x038 ........................................... 790
Register 15: Ethernet MAC LED Encoding (MACLED), offset 0x040 .................................................... 791
Register 16: Ethernet PHY MDIX (MDIX), offset 0x044 ....................................................................... 793
Register 17: Ethernet PHY Management Register 0 Control (MR0), address 0x00 ............................. 794
Register 18: Ethernet PHY Management Register 1 Status (MR1), address 0x01 .............................. 796
Register 19: Ethernet PHY Management Register 2 PHY Identifier 1 (MR2), address 0x02 ................. 798
Register 20: Ethernet PHY Management Register 3 PHY Identifier 2 (MR3), address 0x03 ................. 799
Register 21: Ethernet PHY Management Register 4 Auto-Negotiation Advertisement (MR4), address

                   0x04 ............................................................................................................................. 800
Register 22: Ethernet PHY Management Register 5 Auto-Negotiation Link Partner Base Page Ability

                   (MR5), address 0x05 ..................................................................................................... 802
Register 23: Ethernet PHY Management Register 6 Auto-Negotiation Expansion (MR6), address

                   0x06 ............................................................................................................................. 804
Register 24: Ethernet PHY Management Register 16 Vendor-Specific (MR16), address 0x10 ............. 805
Register 25: Ethernet PHY Management Register 17 Mode Control/Status (MR17), address 0x11 ...... 806
Register 26: Ethernet PHY Management Register 27 Special Control/Status (MR27), address

                   0x1B ............................................................................................................................. 808
Register 27: Ethernet PHY Management Register 29 Interrupt Status (MR29), address 0x1D ............. 809
Register 28: Ethernet PHY Management Register 30 Interrupt Mask (MR30), address 0x1E ............... 811

26                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

Register 29: Ethernet PHY Management Register 31 PHY Special Control/Status (MR31), address
                   0x1F ............................................................................................................................. 813

Analog Comparators ................................................................................................................... 814
Register 1: Analog Comparator Masked Interrupt Status (ACMIS), offset 0x000 .................................. 819
Register 2: Analog Comparator Raw Interrupt Status (ACRIS), offset 0x004 ....................................... 820
Register 3: Analog Comparator Interrupt Enable (ACINTEN), offset 0x008 ......................................... 821
Register 4: Analog Comparator Reference Voltage Control (ACREFCTL), offset 0x010 ....................... 822
Register 5: Analog Comparator Status 0 (ACSTAT0), offset 0x020 ..................................................... 823
Register 6: Analog Comparator Status 1 (ACSTAT1), offset 0x040 ..................................................... 823
Register 7: Analog Comparator Control 0 (ACCTL0), offset 0x024 ..................................................... 824
Register 8: Analog Comparator Control 1 (ACCTL1), offset 0x044 ..................................................... 824

Pulse Width Modulator (PWM) .................................................................................................... 826
Register 1: PWM Master Control (PWMCTL), offset 0x000 ................................................................ 840
Register 2: PWM Time Base Sync (PWMSYNC), offset 0x004 ........................................................... 841
Register 3: PWM Output Enable (PWMENABLE), offset 0x008 .......................................................... 842
Register 4: PWM Output Inversion (PWMINVERT), offset 0x00C ....................................................... 844
Register 5: PWM Output Fault (PWMFAULT), offset 0x010 ................................................................ 846
Register 6: PWM Interrupt Enable (PWMINTEN), offset 0x014 ........................................................... 848
Register 7: PWM Raw Interrupt Status (PWMRIS), offset 0x018 ........................................................ 850
Register 8: PWM Interrupt Status and Clear (PWMISC), offset 0x01C ................................................ 852
Register 9: PWM Status (PWMSTATUS), offset 0x020 ...................................................................... 854
Register 10: PWM Fault Condition Value (PWMFAULTVAL), offset 0x024 ............................................ 856
Register 11: PWM Enable Update (PWMENUPD), offset 0x028 ........................................................... 858
Register 12: PWM0 Control (PWM0CTL), offset 0x040 ....................................................................... 861
Register 13: PWM1 Control (PWM1CTL), offset 0x080 ....................................................................... 861
Register 14: PWM2 Control (PWM2CTL), offset 0x0C0 ....................................................................... 861
Register 15: PWM0 Interrupt and Trigger Enable (PWM0INTEN), offset 0x044 ..................................... 866
Register 16: PWM1 Interrupt and Trigger Enable (PWM1INTEN), offset 0x084 ..................................... 866
Register 17: PWM2 Interrupt and Trigger Enable (PWM2INTEN), offset 0x0C4 .................................... 866
Register 18: PWM0 Raw Interrupt Status (PWM0RIS), offset 0x048 ..................................................... 869
Register 19: PWM1 Raw Interrupt Status (PWM1RIS), offset 0x088 ..................................................... 869
Register 20: PWM2 Raw Interrupt Status (PWM2RIS), offset 0x0C8 .................................................... 869
Register 21: PWM0 Interrupt Status and Clear (PWM0ISC), offset 0x04C ............................................ 871
Register 22: PWM1 Interrupt Status and Clear (PWM1ISC), offset 0x08C ............................................ 871
Register 23: PWM2 Interrupt Status and Clear (PWM2ISC), offset 0x0CC ............................................ 871
Register 24: PWM0 Load (PWM0LOAD), offset 0x050 ........................................................................ 873
Register 25: PWM1 Load (PWM1LOAD), offset 0x090 ........................................................................ 873
Register 26: PWM2 Load (PWM2LOAD), offset 0x0D0 ....................................................................... 873
Register 27: PWM0 Counter (PWM0COUNT), offset 0x054 ................................................................. 874
Register 28: PWM1 Counter (PWM1COUNT), offset 0x094 ................................................................. 874
Register 29: PWM2 Counter (PWM2COUNT), offset 0x0D4 ................................................................ 874
Register 30: PWM0 Compare A (PWM0CMPA), offset 0x058 .............................................................. 875
Register 31: PWM1 Compare A (PWM1CMPA), offset 0x098 .............................................................. 875
Register 32: PWM2 Compare A (PWM2CMPA), offset 0x0D8 .............................................................. 875
Register 33: PWM0 Compare B (PWM0CMPB), offset 0x05C ............................................................. 876
Register 34: PWM1 Compare B (PWM1CMPB), offset 0x09C ............................................................. 876
Register 35: PWM2 Compare B (PWM2CMPB), offset 0x0DC ............................................................. 876
Register 36: PWM0 Generator A Control (PWM0GENA), offset 0x060 ................................................. 877

July 03, 2011                                         27

               Texas Instruments-Advance Information
Table of Contents

Register 37:  PWM1 Generator A Control (PWM1GENA), offset 0x0A0 ................................................. 877
Register 38:  PWM2 Generator A Control (PWM2GENA), offset 0x0E0 ................................................. 877
Register 39:  PWM0 Generator B Control (PWM0GENB), offset 0x064 ................................................. 880
Register 40:  PWM1 Generator B Control (PWM1GENB), offset 0x0A4 ................................................. 880
Register 41:  PWM2 Generator B Control (PWM2GENB), offset 0x0E4 ................................................. 880
Register 42:  PWM0 Dead-Band Control (PWM0DBCTL), offset 0x068 ................................................. 883
Register 43:  PWM1 Dead-Band Control (PWM1DBCTL), offset 0x0A8 ................................................. 883
Register 44:  PWM2 Dead-Band Control (PWM2DBCTL), offset 0x0E8 ................................................. 883
Register 45:  PWM0 Dead-Band Rising-Edge Delay (PWM0DBRISE), offset 0x06C .............................. 884
Register 46:  PWM1 Dead-Band Rising-Edge Delay (PWM1DBRISE), offset 0x0AC .............................. 884
Register 47:  PWM2 Dead-Band Rising-Edge Delay (PWM2DBRISE), offset 0x0EC .............................. 884
Register 48:  PWM0 Dead-Band Falling-Edge-Delay (PWM0DBFALL), offset 0x070 .............................. 885
Register 49:  PWM1 Dead-Band Falling-Edge-Delay (PWM1DBFALL), offset 0x0B0 .............................. 885
Register 50:  PWM2 Dead-Band Falling-Edge-Delay (PWM2DBFALL), offset 0x0F0 .............................. 885
Register 51:  PWM0 Fault Source 0 (PWM0FLTSRC0), offset 0x074 .................................................... 886
Register 52:  PWM1 Fault Source 0 (PWM1FLTSRC0), offset 0x0B4 .................................................... 886
Register 53:  PWM2 Fault Source 0 (PWM2FLTSRC0), offset 0x0F4 .................................................... 886
Register 54:  PWM0 Fault Source 1 (PWM0FLTSRC1), offset 0x078 .................................................... 888
Register 55:  PWM1 Fault Source 1 (PWM1FLTSRC1), offset 0x0B8 .................................................... 888
Register 56:  PWM2 Fault Source 1 (PWM2FLTSRC1), offset 0x0F8 .................................................... 888
Register 57:  PWM0 Minimum Fault Period (PWM0MINFLTPER), offset 0x07C ..................................... 891
Register 58:  PWM1 Minimum Fault Period (PWM1MINFLTPER), offset 0x0BC ..................................... 891
Register 59:  PWM2 Minimum Fault Period (PWM2MINFLTPER), offset 0x0FC ..................................... 891
Register 60:  PWM0 Fault Pin Logic Sense (PWM0FLTSEN), offset 0x800 ............................................ 892
Register 61:  PWM1 Fault Pin Logic Sense (PWM1FLTSEN), offset 0x880 ............................................ 892
Register 62:  PWM2 Fault Pin Logic Sense (PWM2FLTSEN), offset 0x900 ............................................ 892
Register 63:  PWM3 Fault Pin Logic Sense (PWM3FLTSEN), offset 0x980 ............................................ 892
Register 64:  PWM0 Fault Status 0 (PWM0FLTSTAT0), offset 0x804 .................................................... 893
Register 65:  PWM1 Fault Status 0 (PWM1FLTSTAT0), offset 0x884 .................................................... 893
Register 66:  PWM2 Fault Status 0 (PWM2FLTSTAT0), offset 0x904 .................................................... 893
Register 67:  PWM0 Fault Status 1 (PWM0FLTSTAT1), offset 0x808 .................................................... 895
Register 68:  PWM1 Fault Status 1 (PWM1FLTSTAT1), offset 0x888 .................................................... 895
Register 69:  PWM2 Fault Status 1 (PWM2FLTSTAT1), offset 0x908 .................................................... 895

Quadrature Encoder Interface (QEI) .......................................................................................... 898
Register 1: QEI Control (QEICTL), offset 0x000 ................................................................................ 905
Register 2: QEI Status (QEISTAT), offset 0x004 ................................................................................ 908
Register 3: QEI Position (QEIPOS), offset 0x008 .............................................................................. 909
Register 4: QEI Maximum Position (QEIMAXPOS), offset 0x00C ....................................................... 910
Register 5: QEI Timer Load (QEILOAD), offset 0x010 ....................................................................... 911
Register 6: QEI Timer (QEITIME), offset 0x014 ................................................................................. 912
Register 7: QEI Velocity Counter (QEICOUNT), offset 0x018 ............................................................. 913
Register 8: QEI Velocity (QEISPEED), offset 0x01C .......................................................................... 914
Register 9: QEI Interrupt Enable (QEIINTEN), offset 0x020 ............................................................... 915
Register 10: QEI Raw Interrupt Status (QEIRIS), offset 0x024 ............................................................. 917
Register 11: QEI Interrupt Status and Clear (QEIISC), offset 0x028 ..................................................... 919

28                                                        July 03, 2011

                   Texas Instruments-Advance Information
                                                                         Stellaris LM3S6G65 Microcontroller

Revision History

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

Table 1. Revision History

   Date        Revision Description
July 2011        9970  Corrected "Reset Sources" table.

                            Added Important Note that RCC register must be written before RCC2 register.

                            Added missing Start Calibration (CAL) bit to the Precision Internal Oscillator Calibration
                                (PIOSCCAL) register.

                            Added missing Precision Internal Oscillator Statistics (PIOSCSTAT) register.

                            In Hibernation Module chapter, deleted section "Special Considerations When Using a 4.194304-MHz
                                Crystal" as this content was added to the errata document.

                            Added a note that all GPIO signals are 5-V tolerant when configured as inputs except for PB0 and
                                PB1, which are limited to 3.6 V.

                            Corrected LIN Mode bit names in UART Interrupt Clear (UARTICR) register.

                            Corrected pin number for RST and added missing pin number for ERBIAS in table "Connections for
                                Unused Signals" (other pin tables were correct).

                            In the "Operating Characteristics" chapter:

                            In the "Thermal Characteristics" table, the Thermal resistance value was changed.

                                 In the "ESD Absolute Maximum Ratings" table, the VESDCDM parameter was changed and the
                                     VESDMM parameter was deleted.

                            The "Electrical Characteristics" chapter was reorganized by module. In addition, some of the
                                Recommended DC Operating Conditions, LDO Regulator, Clock, GPIO, Hibernation Module, ADC,
                                and SSI characteristics were finalized.

                            Additional minor data sheet clarifications and corrections.

March 2011     9538 Started tracking revision history.

July 03, 2011                                                                                                           29

                           Texas Instruments-Advance Information
About This Document

About This Document

                This data sheet provides reference information for the LM3S6G65 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 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
                The following related documents are also referenced:
                 ARM Debug Interface V5 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.

30                                         July 03, 2011

    Texas Instruments-Advance Information
                                                                                        Stellaris LM3S6G65 Microcontroller

Documentation Conventions

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

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 74.

               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.

July 03, 2011                                                                                                                            31

                                          Texas Instruments-Advance Information
About This Document

    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.

32                                                            July 03, 2011

                       Texas Instruments-Advance Information
                                                                                                               Stellaris LM3S6G65 Microcontroller

1 Architectural Overview

                Texas Instruments is the industry leader in bringing 32-bit capabilities and the full benefits of ARM
                CortexTM-M3-based microcontrollers to the broadest reach of the microcontroller market. For current
                users of 8- and 16-bit MCUs, Stellaris with Cortex-M3 offers a direct path to the strongest ecosystem
                of development tools, software and knowledge in the industry. Designers who migrate to Stellaris
                benefit from great tools, small code footprint and outstanding performance. Even more important,
                designers can enter the ARM ecosystem with full confidence in a compatible roadmap from $1 to
                1 GHz. For users of current 32-bit MCUs, the Stellaris family offers the industry's first implementation
                of Cortex-M3 and the Thumb-2 instruction set. With blazingly-fast responsiveness, Thumb-2
                technology combines both 16-bit and 32-bit instructions to deliver the best balance of code density
                and performance. Thumb-2 uses 26 percent less memory than pure 32-bit code to reduce system
                cost while delivering 25 percent better performance. The Texas Instruments Stellaris family of
                microcontrollers--the first ARM Cortex-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 LM3S6G65 microcontroller has the following features:

                 ARM Cortex-M3 Processor Core

                     80-MHz operation; 100 DMIPS performance

                     ARM Cortex SysTick Timer

                     Nested Vectored Interrupt Controller (NVIC)

                 On-Chip Memory

                     384 KB single-cycle Flash memory up to 50 MHz; a prefetch buffer improves performance
                         above 50 MHz

                     64 KB single-cycle SRAM

                     Internal ROM loaded with StellarisWare software:
                         Stellaris Peripheral Driver Library
                         Stellaris Boot Loader
                         Advanced Encryption Standard (AES) cryptography tables
                         Cyclic Redundancy Check (CRC) error detection functionality

                 Advanced Serial Integration

                     10/100 Ethernet MAC and PHY

                     Three UARTs with IrDA and ISO 7816 support (one UART with modem flow control and
                         status)

                     Two I2C modules

                     Synchronous Serial Interface module (SSI)

                 System Integration

July 03, 2011                                         33

               Texas Instruments-Advance Information
Architectural Overview

         Direct Memory Access Controller (DMA)

         System control and clocks including on-chip precision 16-MHz oscillator

         Four 32-bit timers (up to eight 16-bit)

         Eight Capture Compare PWM pins (CCP)

         Lower-power battery-backed hibernation module

         Real-Time Clock in Hibernation module

         Two Watchdog Timers
             One timer runs off the main oscillator
             One timer runs off the precision internal oscillator

         Up to 46 GPIOs, depending on configuration
             Highly flexible pin muxing allows use as GPIO or one of several peripheral functions
             Independently configurable to 2, 4 or 8 mA drive capability
             Up to 4 GPIOs can have 18 mA drive capability

     Advanced Motion Control

         Six advanced PWM outputs for motion and energy applications

         Four fault inputs to promote low-latency shutdown

         Two Quadrature Encoder Inputs (QEI)

     Analog

         Two 12-bit Analog-to-Digital Converters (ADC) with 16 analog input channels and a sample
            rate of one million samples/second

         Two analog comparators

         16 digital comparators

         On-chip voltage regulator

     JTAG and ARM Serial Wire Debug (SWD)

     100-pin LQFP package

     108-ball BGA package

     Industrial (-40C to 85C) Temperature Range

    The LM3S6G65 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, power and energy, and fire and security.
    For applications requiring extreme conservation of power, the LM3S6G65 microcontroller features
    a battery-backed Hibernation module to efficiently power down the LM3S6G65 to a low-power state
    during extended periods of inactivity. With a power-up/power-down sequencer, a continuous time

34                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1      counter (RTC), a pair of match registers, an APB interface to the system bus, and dedicated
         non-volatile memory, the Hibernation module positions the LM3S6G65 microcontroller perfectly for
1.1.1    battery applications.
1.1.1.1
         In addition, the LM3S6G65 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 LM3S6G65 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 1031 for ordering information for Stellaris family devices.

         Functional Overview

         The following sections provide an overview of the features of the LM3S6G65 microcontroller. The
         page number in parentheses indicates where that feature is discussed in detail. Ordering and support
         information can be found in "Ordering and Contact Information" on page 1031.

         ARM Cortex-M3

         The following sections provide an overview of the ARM Cortex-M3 processor core and instruction
         set, the integrated System Timer (SysTick) and the Nested Vectored Interrupt Controller.

         Processor Core (see page 55)

         All members of the Stellaris product family, including the LM3S6G65 microcontroller, are designed
         around an ARM Cortex-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.

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

          Outstanding processing performance combined with fast interrupt handling

          Thumb-2 mixed 16-/32-bit instruction set delivers the high performance expected of a 32-bit
             ARM core in a compact memory size usually associated with 8- and 16-bit devices, typically in
             the range of a few kilobytes of memory for microcontroller-class applications

             Single-cycle multiply instruction and hardware divide

             Atomic bit manipulation (bit-banding), delivering maximum memory utilization and streamlined
                 peripheral control

             Unaligned data access, enabling data to be efficiently packed into memory

          Fast code execution permits slower processor clock or increases sleep mode time

          Harvard architecture characterized by separate buses for instruction and data

          Efficient processor core, system and memories

July 03, 2011                                         35

               Texas Instruments-Advance Information
Architectural Overview

1.1.1.2   Hardware division and fast multiplier
1.1.1.3
          Deterministic, high-performance interrupt handling for time-critical applications
1.1.1.4
          Memory protection unit (MPU) to provide a privileged mode for protected operating system
             functionality

          Enhanced system debug with extensive breakpoint and trace capabilities

          Serial Wire Debug and Serial Wire Trace reduce the number of pins required for debugging and
             tracing

          Migration from the ARM7 processor family for better performance and power efficiency

          Optimized for single-cycle Flash memory usage

          Ultra-low power consumption with integrated sleep modes

          80-MHz operation

          1.25 DMIPS/MHz

         Memory Map (see page 74)
         A memory map lists the location of instructions and data in memory. The memory map for the
         LM3S6G65 controller can be found in "Memory Model" on page 74. 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 98)
         ARM 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 that 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 used to measure time to completion and time used

          An internal clock-source control based on missing/meeting durations.

         Nested Vectored Interrupt Controller (NVIC) (see page 99)
         The LM3S6G65 controller includes the ARM Nested Vectored Interrupt Controller (NVIC). The NVIC
         and Cortex-M3 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 interrupt vector is fetched in parallel to the state
         saving, enabling efficient interrupt entry. The processor supports tail-chaining, meaning that
         back-to-back interrupts can be performed without the overhead of state saving and restoration.
         Software can set eight priority levels on 7 exceptions (system handlers) and 44 interrupts.

          Deterministic, fast interrupt processing: always 12 cycles, or just 6 cycles with tail-chaining

36                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.1.5   External non-maskable interrupt signal (NMI) available for immediate execution of NMI handler
1.1.1.6      for safety critical applications
1.1.2
1.1.2.1   Dynamically reprioritizable interrupts

1.1.2.2   Exceptional interrupt handling via hardware implementation of required register manipulations

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

         Memory Protection Unit (MPU) (see page 101)
         The MPU supports the standard ARM7 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.

         On-Chip Memory

         The following sections describe the on-chip memory modules.

         SRAM (see page 305)
         The LM3S6G65 microcontroller provides 64 KB of single-cycle on-chip SRAM. The internal SRAM
         of the Stellaris devices is located at offset 0x2000.0000 of the device memory map.
         Because read-modify-write (RMW) operations are very time consuming, ARM has introduced
         bit-banding technology in the 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.
         Data can be transferred to and from the SRAM using the Micro Direct Memory Access Controller
         (DMA).

         Flash Memory (see page 307)
         The LM3S6G65 microcontroller provides 384 KB of single-cycle on-chip Flash memory (above 50
         MHz, the Flash memory can be accessed in a single cycle as long as the code is linear; branches
         incur a one-cycle stall). The Flash memory 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 305)
         The LM3S6G65 ROM is preprogrammed with the following software and programs:

          Stellaris Peripheral Driver Library

          Stellaris Boot Loader

          Advanced Encryption Standard (AES) cryptography tables

July 03, 2011                                         37

               Texas Instruments-Advance Information
Architectural Overview

1.1.3     Cyclic Redundancy Check (CRC) error-detection functionality
1.1.3.1
         The Stellaris Peripheral Driver Library is a royalty-free software library for controlling on-chip
         peripherals with a boot-loader capability. The library performs both peripheral initialization and
         control functions, with a choice of polled or interrupt-driven peripheral support. In addition, the library
         is designed to take full advantage of the stellar interrupt performance of the ARM Cortex-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 can act as
         an application loader and support in-field firmware updates.

         The Advanced Encryption Standard (AES) is a publicly defined encryption standard used by the
         U.S. Government. AES is a strong encryption method with reasonable performance and size. In
         addition, it is fast in both hardware and software, is fairly easy to implement, and requires little
         memory. The Texas Instruments encryption package is available with full source code, and is based
         on lesser general public license (LGPL) source. An LGPL means that the code can be used within
         an application without any copyleft implications for the application (the code does not automatically
         become open source). Modifications to the package source, however, must be open source.

         CRC (Cyclic Redundancy Check) is a technique to validate a span of data has the same contents
         as when previously checked. This technique can be used to validate correct receipt of messages
         (nothing lost or modified in transit), to validate data after decompression, to validate that Flash
         memory contents have not been changed, and for other cases where the data needs to be validated.
         A CRC is preferred over a simple checksum (e.g. XOR all bits) because it catches changes more
         readily.

         Serial Communications Peripherals

         The LM3S6G65 controller supports both asynchronous and synchronous serial communications
         with:

          10/100 Ethernet MAC and PHY

          Three UARTs with IrDA and ISO 7816 support (one UART with modem flow control and status)

          Two I2C modules

          Synchronous Serial Interface module (SSI)

         The following sections provide more detail on each of these communications functions.

         Ethernet Controller (see page 755)

         Ethernet is a frame-based computer networking technology for local area networks (LANs). Ethernet
         has been standardized as IEEE 802.3. This specification defines a number of wiring and signaling
         standards for the physical layer, two means of network access at the Media Access Control
         (MAC)/Data Link Layer, and a common addressing format.

         The Stellaris Ethernet Controller consists of a fully integrated media access controller (MAC) and
         network physical (PHY) interface and has the following features:

          Conforms to the IEEE 802.3-2002 specification

             10BASE-T/100BASE-TX IEEE-802.3 compliant. Requires only a dual 1:1 isolation transformer
                 interface to the line

             10BASE-T/100BASE-TX ENDEC, 100BASE-TX scrambler/descrambler

38                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.3.2       Full-featured auto-negotiation

          Multiple operational modes

             Full- and half-duplex 100 Mbps

             Full- and half-duplex 10 Mbps

             Power-saving and power-down modes

          Highly configurable

             Programmable MAC address

             LED activity selection

             Promiscuous mode support

             CRC error-rejection control

             User-configurable interrupts

          Physical media manipulation

             MDI/MDI-X cross-over support through software assist

             Register-programmable transmit amplitude

             Automatic polarity correction and 10BASE-T signal reception

          Efficient transfers using Micro Direct Memory Access Controller (DMA)

             Separate channels for transmit and receive

             Receive channel request asserted on packet receipt

             Transmit channel request asserted on empty transmit FIFO

         UART (see page 615)
         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 LM3S6G65 microcontroller includes three fully programmable 16C550-type UARTs. Although
         the functionality is similar to a 16C550 UART, this UART design is not register compatible. The
         UART can generate individually masked interrupts from the Rx, Tx, modem flow control, modem
         status, and error conditions. The module generates a single combined interrupt when any of the
         interrupts are asserted and are unmasked.
         The three UARTs have the following features:

          Programmable baud-rate generator allowing speeds up to 5 Mbps for regular speed (divide by
             16) and 10 Mbps for high speed (divide by 8)

          Separate 16x8 transmit (TX) and receive (RX) FIFOs to reduce CPU interrupt service loading

July 03, 2011                                         39

               Texas Instruments-Advance Information
Architectural Overview

1.1.3.3   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

          Support for communication with ISO 7816 smart cards

          Full modem handshake support (on UART1)

          LIN protocol support

          Standard FIFO-level and End-of-Transmission interrupts

          Efficient transfers using Micro Direct Memory Access Controller (DMA)

             Separate channels for transmit and receive

             Receive single request asserted when data is in the FIFO; burst request asserted at
                 programmed FIFO level

             Transmit single request asserted when there is space in the FIFO; burst request asserted at
                 programmed FIFO level

         I2C (see page 718)
         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.

40                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.3.4  Each device 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 can operate
         simultaneously as both a master and a slave. Both the I2C master and slave can generate interrupts.
         The LM3S6G65 microcontroller includes two I2C modules with the following features:

          Devices on the I2C bus can be designated as either a master or a slave

             Supports both transmitting 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 transferred or requested by a master or when
                 a START or STOP condition is detected

          Master with arbitration and clock synchronization, multimaster support, and 7-bit addressing
             mode

         SSI (see page 676)
         Synchronous Serial Interface (SSI) is a four-wire bi-directional communications interface that converts
         data between parallel and serial. 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 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 TX and RX paths are buffered with separate internal FIFOs.
         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.
         The LM3S6G65 microcontroller includes one SSI modules with the following features:

          Programmable interface operation for Freescale SPI, MICROWIRE, or Texas Instruments
             synchronous serial interfaces

          Master or slave operation

          Programmable clock bit rate and prescaler

July 03, 2011                                         41

               Texas Instruments-Advance Information
Architectural Overview

1.1.4     Separate transmit and receive FIFOs, each 16 bits wide and 8 locations deep
1.1.4.1
          Programmable data frame size from 4 to 16 bits

          Internal loopback test mode for diagnostic/debug testing

          Standard FIFO-based interrupts and End-of-Transmission interrupt

          Efficient transfers using Micro Direct Memory Access Controller (DMA)

             Separate channels for transmit and receive

             Receive single request asserted when data is in the FIFO; burst request asserted when FIFO
                 contains 4 entries

             Transmit single request asserted when there is space in the FIFO; burst request asserted
                 when FIFO contains 4 entries

         System Integration

         The LM3S6G65 microcontroller provides a variety of standard system functions integrated into the
         device, including:

          Direct Memory Access Controller (DMA)

          System control and clocks including on-chip precision 16-MHz oscillator

          Four 32-bit timers (up to eight 16-bit)

          Eight Capture Compare PWM pins (CCP)

          Lower-power battery-backed hibernation module

          Real-Time Clock in Hibernation module

          Two Watchdog Timers
             One timer runs off the main oscillator
             One timer runs off the precision internal oscillator

          Up to 46 GPIOs, depending on configuration
             Highly flexible pin muxing allows use as GPIO or one of several peripheral functions
             Independently configurable to 2, 4 or 8 mA drive capability
             Up to 4 GPIOs can have 18 mA drive capability

         The following sections provide more detail on each of these functions.

         Direct Memory Access (see page 349)
         The LM3S6G65 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 available bus
         bandwidth. The DMA controller can perform transfers between memory and peripherals. It has
         dedicated channels for each supported on-chip module and can be programmed to automatically
         perform transfers between peripherals and memory as the peripheral is ready to transfer more data.
         The DMA controller provides the following features:

42                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.4.2   ARM PrimeCell 32-channel configurable DMA controller
          Support for memory-to-memory, memory-to-peripheral, and peripheral-to-memory in multiple

             transfer modes
             Basic for simple transfer scenarios
             Ping-pong for continuous data flow
             Scatter-gather for a programmable list of arbitrary transfers initiated from a single request
          Highly flexible and configurable channel operation
             Independently configured and operated channels
             Dedicated channels for supported on-chip modules
             Primary and secondary channel assignments
             One channel each for receive and transmit path for bidirectional modules
             Dedicated channel for software-initiated transfers
             Per-channel configurable priority scheme
             Optional software-initiated requests for any channel
          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
          Transfer size is programmable in binary steps from 1 to 1024
          Source and destination address increment size of byte, half-word, word, or no increment
          Maskable peripheral requests
          Interrupt on transfer completion, with a separate interrupt per channel
         System Control and Clocks (see page 176)
         System control determines the overall operation of the device. It provides information about the
         device, controls power-saving features, controls the clocking of the device and individual peripherals,
         and handles reset detection and reporting.
          Device identification information: version, part number, SRAM size, Flash memory size, and so
             on

July 03, 2011                                         43

               Texas Instruments-Advance Information
Architectural Overview

1.1.4.3   Power control

             On-chip fixed Low Drop-Out (LDO) voltage regulator

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

             Low-power options for microcontroller: Sleep and Deep-sleep modes with clock gating

             Low-power options for on-chip modules: software controls shutdown of individual peripherals
                 and memory

             3.3-V supply brown-out detection and reporting via interrupt or reset

          Multiple clock sources for microcontroller system clock

             Precision Oscillator (PIOSC): On-chip resource providing a 16 MHz 1% frequency at room
                 temperature
                  16 MHz 3% across temperature
                  Can be recalibrated with 7-bit trim resolution
                  Software power down control for low power modes

             Main Oscillator (MOSC): A frequency-accurate clock source by one of two means: an external
                 single-ended clock source is connected to the OSC0 input pin, or an external crystal is
                 connected across the OSC0 input and OSC1 output pins.
                  External crystal used with or without on-chip PLL: select supported frequencies from 1
                      MHz to 16.384 MHz.
                  External oscillator: from DC to maximum device speed

             Internal 30-kHz Oscillator: on chip resource providing a 30 kHz 50% frequency, used during
                 power-saving modes

             32.768-kHz external oscillator for the Hibernation Module: eliminates need for additional
                 crystal for main clock source

          Flexible reset sources

             Power-on reset (POR)

             Reset pin assertion

             Brown-out reset (BOR) detector alerts to system power drops

             Software reset

             Watchdog timer reset

             MOSC failure

         Programmable Timers (see page 463)
         Programmable timers can be used to count or time external events that drive the Timer input pins.
         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.

44                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.4.4  The General-Purpose Timer Module (GPTM) contains four GPTM blocks with the following functional
         options:

          Operating modes:

             16- or 32-bit programmable one-shot timer

             16- or 32-bit programmable periodic timer

             16-bit general-purpose timer with an 8-bit prescaler

             32-bit Real-Time Clock (RTC) when using an external 32.768-KHz clock as the input

             16-bit input-edge count- or time-capture modes

             16-bit PWM mode with software-programmable output inversion of the PWM signal

          Count up or down

          Daisy chaining of timer modules to allow a single timer to initiate multiple timing events

          ADC event trigger

          User-enabled stalling when the microcontroller asserts CPU Halt flag during debug (excluding
             RTC mode)

          Ability to determine the elapsed time between the assertion of the timer interrupt and entry into
             the interrupt service routine.

          Efficient transfers using Micro Direct Memory Access Controller (DMA)

             Dedicated channel for each timer

             Burst request generated on timer interrupt

         CCP Pins (see page 470)
         Capture Compare PWM pins (CCP) can be used by the General-Purpose Timer Module to time/count
         external events using the CCP pin as an input. Alternatively, the GPTM can generate a simple PWM
         output on the CCP pin.
         The LM3S6G65 microcontroller includes eight Capture Compare PWM pins (CCP) that can be
         programmed to operate in the following modes:

          Capture: The GP Timer is incremented/decremented by programmed events on the CCP input.
             The GP Timer captures and stores the current timer value when a programmed event occurs.

          Compare: The GP Timer is incremented/decremented by programmed events on the CCP input.
             The GP Timer compares the current value with a stored value and generates an interrupt when
             a match occurs.

          PWM: The GP Timer is incremented/decremented by the system clock. A PWM signal is generated
             based on a match between the counter value and a value stored in a match register and is output
             on the CCP pin.

July 03, 2011                                         45

               Texas Instruments-Advance Information
Architectural Overview

1.1.4.5  Hibernation Module (see page 277)
1.1.4.6  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 and has the following features:

          32-bit real-time counter (RTC)

             Two 32-bit RTC match registers for timed wake-up and interrupt generation

             RTC predivider trim for making fine adjustments to the clock rate

          Two mechanisms for power control

             System power control using discrete external regulator

             On-chip power control using internal switches under register control

          Dedicated pin for waking using an external signal

          RTC operational and hibernation memory valid as long as VBAT is valid

          Low-battery detection, signaling, and interrupt generation

          Clock source from a 32.768-kHz external oscillator or a 4.194304-MHz crystal; 32.768-kHz
             external oscillator can be used for main controller clock

          64 32-bit words of non-volatile memory to save state during hibernation

          Programmable interrupts for RTC match, external wake, and low battery events

         Watchdog Timers (see page 509)
         A watchdog timer is used to regain control when a system has failed due to a software error or to
         the failure of an external device to respond in the expected way. The Stellaris Watchdog Timer can
         generate an interrupt or a reset when a time-out value is reached. In addition, the Watchdog Timer
         is ARM FiRM-compliant and can be configured to generate an interrupt to the microcontroller 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.
         The LM3S6G65 microcontroller has two Watchdog Timer modules: Watchdog Timer 0 uses the
         system clock for its timer clock; Watchdog Timer 1 uses the PIOSC as its timer clock. The Stellaris
         Watchdog Timer module has the following features:

          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 microcontroller asserts the CPU Halt flag during debug

46                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.4.7  Programmable GPIOs (see page 409)
1.1.5    General-purpose input/output (GPIO) pins offer flexibility for a variety of connections. The Stellaris
         GPIO module is comprised of seven 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 0-46 programmable input/output pins. The number of
         GPIOs available depends on the peripherals being used (see "Signal Tables" on page 923 for the
         signals available to each GPIO pin).

          Up to 46 GPIOs, depending on configuration

          Highly flexible pin muxing allows use as GPIO or one of several peripheral functions

          5-V-tolerant in input configuration

          Fast toggle capable of a change every two clock cycles

          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

          Programmable control for GPIO interrupts

             Interrupt generation masking

             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 be used to 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 sink 18-mA
                 for high-current applications

             Slew rate control for the 8-mA drive

             Open drain enables

             Digital input enables

         Advanced Motion Control

         The LM3S6G65 microcontroller provides motion control functions integrated into the device, including:

          Six advanced PWM outputs for motion and energy applications

          Four fault inputs to promote low-latency shutdown

          Two Quadrature Encoder Inputs (QEI)

July 03, 2011                                         47

               Texas Instruments-Advance Information
Architectural Overview

1.1.5.1  The following provides more detail on these motion control functions.

         PWM (see page 826)
         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. The LM3S6G65 PWM module consists of three PWM generator blocks and a
         control block. Each PWM generator block contains one timer (16-bit down or up/down counter), two
         comparators, a PWM signal generator, a dead-band generator, and an interrupt/ADC-trigger selector.
         Each PWM generator block produces two PWM signals that can either be independent signals or
         a single pair of complementary signals with dead-band delays inserted.
         Each PWM generator has the following features:

          Four fault-condition handling inputs to quickly provide low-latency shutdown and prevent damage
             to the motor being controlled

          One 16-bit counter

             Runs in Down or Up/Down mode

             Output frequency controlled by a 16-bit load value

             Load value updates can be synchronized

             Produces output signals at zero and load value

          Two PWM comparators

             Comparator value updates can be synchronized

             Produces output signals on match

          PWM signal generator

             Output PWM signal is constructed based on actions taken as a result of the counter and
                 PWM comparator output signals

             Produces two independent PWM signals

          Dead-band generator

             Produces two PWM signals with programmable dead-band delays suitable for driving a half-H
                 bridge

             Can be bypassed, leaving input PWM signals unmodified

          Can initiate an ADC sample sequence

         The control block determines the polarity of the PWM signals and which signals are passed through
         to the pins. The output of the PWM generation blocks are managed by the output control block
         before being passed to the device pins. The PWM control block has the following options:

          PWM output enable of each PWM signal

          Optional output inversion of each PWM signal (polarity control)

48                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.5.2   Optional fault handling for each PWM signal
1.1.6
          Synchronization of timers in the PWM generator blocks

          Synchronization of timer/comparator updates across the PWM generator blocks

          Synchronization of PWM output enables across the PWM generator blocks

          Interrupt status summary of the PWM generator blocks

          Extended PWM fault handling, with multiple fault signals, programmable polarities, and filtering

          PWM generators can be operated independently or synchronized with other generators

         QEI (see page 898)
         A quadrature encoder, also known as a 2-channel incremental encoder, converts linear displacement
         into a pulse signal. By monitoring both the number of pulses and the relative phase of the two signals,
         the position, direction of rotation, and speed can be tracked. In addition, a third channel, or index
         signal, can be used to reset the position counter. The Stellaris quadrature encoder with index (QEI)
         module interprets the code produced by a quadrature encoder wheel to integrate position over time
         and determine direction of rotation. In addition, it can capture a running estimate of the velocity of
         the encoder wheel. The input frequency of the QEI inputs may be as high as 1/4 of the processor
         frequency (for example, 20 MHz for a 80-MHz system).
         The LM3S6G65 microcontroller includes two QEI modules providing control of two motors at the
         same time with the following features:

          Position integrator that tracks the encoder position

          Programmable noise filter on the inputs

          Velocity capture using built-in timer

          The input frequency of the QEI inputs may be as high as 1/4 of the processor frequency (for
             example, 12.5 MHz for a 50-MHz system)

          Interrupt generation on:

             Index pulse

             Velocity-timer expiration

             Direction change

             Quadrature error detection

         Analog

         The LM3S6G65 microcontroller provides analog functions integrated into the device, including:

          Two 12-bit Analog-to-Digital Converters (ADC) with 16 analog input channels and a sample rate
             of one million samples/second

          Two analog comparators

          16 digital comparators

July 03, 2011                                         49

               Texas Instruments-Advance Information
Architectural Overview

1.1.6.1   On-chip voltage regulator
         The following provides more detail on these analog functions.

         ADC (see page 534)
         An analog-to-digital converter (ADC) is a peripheral that converts a continuous analog voltage to a
         discrete digital number. The Stellaris ADC module features 12-bit conversion resolution and supports
         16 input channels plus an internal temperature sensor. Four buffered sample sequencers allow
         rapid sampling of up to 16 analog input sources without controller intervention. Each sample
         sequencer provides flexible programming with fully configurable input source, trigger events, interrupt
         generation, and sequencer priority. Each ADC module has a digital comparator function that allows
         the conversion value to be diverted to a comparison unit that provides eight digital comparators.
         The LM3S6G65 microcontroller provides two ADC modules with the following features:
          16 shared analog input channels
          12-bit precision ADC with an accurate 10-bit data compatibility mode
          Single-ended and differential-input configurations
          On-chip internal temperature sensor
          Maximum sample rate of one million samples/second
          Optional phase shift in sample time programmable from 22.5 to 337.5
          Four programmable sample conversion sequencers from one to eight entries long, with

             corresponding conversion result FIFOs
          Flexible trigger control

             Controller (software)
             Timers
             Analog Comparators
             PWM
             GPIO
          Hardware averaging of up to 64 samples
          Digital comparison unit providing eight digital comparators
          Converter uses an internal 3-V reference or an external reference
          Power and ground for the analog circuitry is separate from the digital power and ground
          Efficient transfers using Micro Direct Memory Access Controller (DMA)
             Dedicated channel for each sample sequencer
             ADC module uses burst requests for DMA

50                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

1.1.6.2  Analog Comparators (see page 814)
1.1.7    An analog comparator is a peripheral that compares two analog voltages and provides a logical
         output that signals the comparison result. The LM3S6G65 microcontroller provides two independent
         integrated analog comparators that can be configured to drive an output or generate an interrupt or
         ADC event.
         The comparator can provide its output to a device pin, acting as a replacement for an analog
         comparator on the board, or it can be used to signal the application via interrupts or triggers to the
         ADC to cause it to start capturing a sample sequence. The interrupt generation and ADC triggering
         logic is separate. This means, for example, that an interrupt can be generated on a rising edge and
         the ADC triggered on a falling edge.
         The LM3S6G65 microcontroller provides two independent integrated analog comparators with the
         following functions:

          Compare external pin input to external pin input or to internal programmable voltage reference

          Compare a test voltage against any one of the following voltages:

             An individual external reference voltage

             A shared single external reference voltage

             A shared internal reference voltage

         JTAG and ARM Serial Wire Debug (see page 164)

         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
         information on the components. The JTAG Port also provides a means of accessing and controlling
         design-for-test features such as I/O pin observation and control, scan testing, and debugging. Texas
         Instruments replaces the ARM SW-DP and JTAG-DP with the ARM Serial Wire JTAG Debug Port
         (SWJ-DP) interface. The SWJ-DP interface combines the SWD and JTAG debug ports into one
         module providing all the normal JTAG debug and test functionality plus real-time access to system
         memory without halting the core or requiring any target resident code. The SWJ-DP interface has
         the following features:

          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)

             Serial Wire JTAG Debug Port (SWJ-DP)

             Flash Patch and Breakpoint (FPB) unit for implementing breakpoints

             Data Watchpoint and Trace (DWT) unit for implementing watchpoints, trigger resources, and
                 system profiling

July 03, 2011                                         51

               Texas Instruments-Advance Information
Architectural Overview

1.1.8       Instrumentation Trace Macrocell (ITM) for support of printf style debugging
            Trace Port Interface Unit (TPIU) for bridging to a Trace Port Analyzer
1.2
       Packaging and Temperature
1.3
        Industrial-range 100-pin RoHS-compliant LQFP package
        Industrial-range 108-ball RoHS-compliant BGA package

       Target Applications

       The Stellaris family is positioned for cost-conscious applications requiring significant control
       processing and connectivity capabilities such as:
        Remote monitoring
        Electronic point-of-sale (POS) machines
        Test and measurement equipment
        Network appliances
        Factory automation
        HVAC and building control
        Gaming equipment
        Motion control
        Medical instrumentation
        Fire and security
        Power and energy
        Transportation

       High-Level Block Diagram

       Figure 1-1 on page 53 depicts the features on the Stellaris LM3S6G65 microcontroller. Note that
       there are two on-chip buses that connect the core to the peripherals. The Advanced Peripheral Bus
       (APB) bus is the legacy bus. The Advanced High-Performance Bus (AHB) bus provides better
       back-to-back access performance than the APB bus.

52                                                             July 03, 2011

                        Texas Instruments-Advance Information
                                                                                                                Stellaris LM3S6G65 Microcontroller

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

                                   JTAG/SWD              ARM                                              ROM       Boot Loader
                                                     CortexTM-M3                                                     DriverLib
                                        System                                                                       AES & CRC
                                     Control and       (80 MHz)

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

LM3S6G65                                             NVIC  MPU

                                                                                                ICode bus

                                                           System Bus

                                                     Bus Matrix                                 SRAM
                                                                                                (64 KB)

                    DMA                              Advanced High-Performance Bus (AHB)                       SYSTEM PERIPHERALS
                 General-                                        Advanced Peripheral Bus (APB)
                  Purpose                                                                                       Watchdog
                Timers (4)                                                                                        Timers
                                                                                                                     (2)
                     I2C
                     (2)                                                                                       Hibernation
                 Ethernet                                                                                         Module
                MAC/PHY
                                                                                                                  GPIOs
                   Analog                                                                                           (46)
               Comparators
                                                                                                                SERIAL PERIPHERALS
                     (2)
                                                                                                                  UARTs
                    PWM                                                                                              (3)
                     (6)
                                                                                                                    SSI
                                                                                                                     (1)

                                                                                                              ANALOG PERIPHERALS

                                                                                                               12-Bit ADC
                                                                                                                Channels

                                                                                                                    (16)

                                                                                                MOTION CONTROL PERIPHERALS

                                                                                                                    QEI
                                                                                                                     (2)

July 03, 2011                                                                                                                       53

               Texas Instruments-Advance Information
Architectural Overview

1.4 Hardware Details

                Details on the pins and package can be found in the following sections:
                 "Pin Diagram" on page 921
                 "Signal Tables" on page 923
                 "Operating Characteristics" on page 978
                 "Electrical Characteristics" on page 979
                 "Package Information" on page 1033

54                                                                                       July 03, 2011

    Texas Instruments-Advance Information
                                                                                                               Stellaris LM3S6G65 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:
                 32-bit ARM CortexTM-M3 architecture optimized for small-footprint embedded applications

                 Outstanding processing performance combined with fast interrupt handling
                 Thumb-2 mixed 16-/32-bit instruction set delivers the high performance expected of a 32-bit

                    ARM core in a compact memory size usually associated with 8- and 16-bit devices, typically in
                    the range of a few kilobytes of memory for microcontroller-class applications
                     Single-cycle multiply instruction and hardware divide
                     Atomic bit manipulation (bit-banding), delivering maximum memory utilization and streamlined

                         peripheral control
                     Unaligned data access, enabling data to be efficiently packed into memory
                 Fast code execution permits slower processor clock or increases sleep mode time
                 Harvard architecture characterized by separate buses for instruction and data
                 Efficient processor core, system and memories
                 Hardware division and fast multiplier
                 Deterministic, high-performance interrupt handling for time-critical applications
                 Memory protection unit (MPU) to provide a privileged mode for protected operating system
                    functionality
                 Enhanced system debug with extensive breakpoint and trace capabilities
                 Serial Wire Debug and Serial Wire Trace reduce the number of pins required for debugging and
                    tracing
                 Migration from the ARM7 processor family for better performance and power efficiency
                 Optimized for single-cycle Flash memory usage
                 Ultra-low power consumption with integrated sleep modes
                 80-MHz operation
                 1.25 DMIPS/MHz
                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.

July 03, 2011                                         55

               Texas Instruments-Advance Information
The Cortex-M3 Processor

                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 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 single-cycle 32x32 multiplication 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, 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.

56                                         July 03, 2011

    Texas Instruments-Advance Information
                                                                                    Stellaris LM3S6G65 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.

July 03, 2011                                                                                                                57

                                 Texas Instruments-Advance Information
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 58.

       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 98).

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

        System Control Block (SCB)

58                                                                                       July 03, 2011

                                    Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 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
2.3.1      exceptions( see "System Control Block (SCB)" on page 101).

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 101).

       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 73) 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 stack 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

July 03, 2011                                         59

               Texas Instruments-Advance Information
The Cortex-M3 Processor

       two stacks: the main stack and the process stack, with independent copies of the stack pointer (see
       the SP register on page 63).

       In Thread mode, the CONTROL register (see page 73) 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 60.

       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 73).

2.3.3  Register Map

       Figure 2-3 on page 60 shows the Cortex-M3 register set. Table 2-2 on page 61 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

60                                                                           July 03, 2011

                           Texas Instruments-Advance Information
                                                             Stellaris LM3S6G65 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    62
-      R1         R/W                      -    Cortex General-Purpose Register 2    62
                                           -    Cortex General-Purpose Register 3    62
-      R2         R/W                      -    Cortex General-Purpose Register 4    62
                                           -    Cortex General-Purpose Register 5    62
-      R3         R/W                      -    Cortex General-Purpose Register 6    62
                                           -    Cortex General-Purpose Register 7    62
-      R4         R/W                      -    Cortex General-Purpose Register 8    62
                                           -    Cortex General-Purpose Register 9    62
-      R5         R/W                      -    Cortex General-Purpose Register 10   62
                                           -    Cortex General-Purpose Register 11   62
-      R6         R/W                      -    Cortex General-Purpose Register 12   62
                                           -    Stack Pointer                        62
-      R7         R/W              0xFFFF.FFFF  Link Register                        63
                                           -    Program Counter                      64
-      R8         R/W              0x0100.0000  Program Status Register              65
                                   0x0000.0000  Priority Mask Register               66
-      R9         R/W              0x0000.0000  Fault Mask Register                  70
                                   0x0000.0000  Base Priority Mask Register          71
-      R10        R/W              0x0000.0000  Control Register                     72
                                                                                     73
-      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 60.
       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.

July 03, 2011                                                                       61

                  Texas Instruments-Advance Information
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.

62                                                                                               July 03, 2011

                                       Texas Instruments-Advance Information
                                                                               Stellaris LM3S6G65 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.

July 03, 2011                                                                                                          63

                                       Texas Instruments-Advance Information
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 90 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.

64                                                                                                       July 03, 2011

                                       Texas Instruments-Advance Information
                                                                               Stellaris LM3S6G65 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.

July 03, 2011                                                                                                        65

                                       Texas Instruments-Advance Information
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 88).

           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 66 shows the possible register combinations for the PSR. See
           the MRS and MSR instruction descriptions in the CortexTM-M3 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

66                                                                                                                  July 03, 2011

                                                Texas Instruments-Advance Information
                                                            Stellaris LM3S6G65 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.

July 03, 2011                                               67

                     Texas Instruments-Advance Information
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 a 16-bit 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 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

                                       Attempting to execute instructions when this bit is clear results in a fault
                                       or lockup. See "Lockup" on page 92 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 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.

68                                                               July 03, 2011

                          Texas Instruments-Advance Information
                                                              Stellaris LM3S6G65 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

                                    ...          ...

                                    0x46         Interrupt Vector 54

                                    0x47-0x7F Reserved

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

July 03, 2011                                                             69

                       Texas Instruments-Advance Information
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
                  Instruction Set Technical User's Manual for more information on these instructions. For more
                  information on exception priority levels, see "Exception Types" on page 83.

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.

70                                                                                       July 03, 2011

                                      Texas Instruments-Advance Information
                                                                             Stellaris LM3S6G65 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 Instruction Set Technical User's Manual for more information on
                  these instructions. For more information on exception priority levels, see "Exception
                  Types" on page 83.

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.

July 03, 2011                                                                                                           71

                                      Texas Instruments-Advance Information
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 83.

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.

72                                                                                                                  July 03, 2011

                                                Texas Instruments-Advance Information
                                                                                         Stellaris LM3S6G65 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 90).
                  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 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 90.

                  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 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.

July 03, 2011                                                                                                                       73

                                        Texas Instruments-Advance Information
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 88 for more information.

             The NVIC registers control interrupt handling. See "Nested Vectored Interrupt Controller
             (NVIC)" on page 99 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 76 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 LM3S6G65 controller is provided in Table 2-4 on page 74. 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 79).

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

                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                   0x0005.FFFF  On-chip Flash
0x0000.0000              0x00FF.FFFF  Reserved                                               307
0x0006.0000              0x1FFF.FFFF  Reserved for ROM                                       -
0x0100.0000              0x2000.FFFF  Bit-banded on-chip SRAM                                305
0x2000.0000              0x21FF.FFFF  Reserved                                               305
0x2001.0000              0x221F.FFFF  Bit-band alias of bit-banded on-chip SRAM starting at  -
0x2200.0000                           0x2000.0000                                            305
                                      Reserved
0x2220.0000              0x3FFF.FFFF                                                         -
FiRM Peripherals                      Watchdog timer 0
0x4000.0000              0x4000.0FFF  Watchdog timer 1                                       512
0x4000.1000              0x4000.1FFF  Reserved                                               512
0x4000.2000              0x4000.3FFF  GPIO Port A                                            -
0x4000.4000              0x4000.4FFF  GPIO Port B                                            421
0x4000.5000              0x4000.5FFF  GPIO Port C                                            421
0x4000.6000              0x4000.6FFF                                                         421

74                                                                                           July 03, 2011

                              Texas Instruments-Advance Information
                                                               Stellaris LM3S6G65 Microcontroller

Table 2-4. Memory Map (continued)

Start          End                 Description                 For details,
                                                               see page ...
0x4000.7000    0x4000.7FFF         GPIO Port D                 421
0x4000.8000    0x4000.8FFF         SSI0                        690
0x4000.9000    0x4000.BFFF         Reserved                    -
0x4000.C000    0x4000.CFFF         UART0                       628
0x4000.D000    0x4000.DFFF         UART1                       628
0x4000.E000    0x4000.EFFF         UART2                       628
0x4000.F000    0x4001.FFFF         Reserved                    -
Peripherals
0x4002.0000    0x4002.0FFF         I2C 0                       734
0x4002.1000    0x4002.1FFF         I2C 1                       734
0x4002.2000    0x4002.3FFF         Reserved                    -
0x4002.4000    0x4002.4FFF         GPIO Port E                 421
0x4002.5000    0x4002.5FFF         GPIO Port F                 421
0x4002.6000    0x4002.6FFF         GPIO Port G                 421
0x4002.7000    0x4002.7FFF         Reserved                    -
0x4002.8000    0x4002.8FFF         PWM                         839
0x4002.9000    0x4002.BFFF         Reserved                    -
0x4002.C000    0x4002.CFFF         QEI0                        904
0x4002.D000    0x4002.DFFF         QEI1                        904
0x4002.E000    0x4002.FFFF         Reserved                    -
0x4003.0000    0x4003.0FFF         Timer 0                     478
0x4003.1000    0x4003.1FFF         Timer 1                     478
0x4003.2000    0x4003.2FFF         Timer 2                     478
0x4003.3000    0x4003.3FFF         Timer 3                     478
0x4003.4000    0x4003.7FFF         Reserved                    -
0x4003.8000    0x4003.8FFF         ADC0                        556
0x4003.9000    0x4003.9FFF         ADC1                        556
0x4003.A000    0x4003.BFFF         Reserved                    -
0x4003.C000    0x4003.CFFF         Analog Comparators          814
0x4003.D000    0x4004.7FFF         Reserved                    -
0x4004.8000    0x4004.8FFF         Ethernet Controller         768
0x4004.9000    0x4005.7FFF         Reserved                    -
0x4005.8000    0x4005.8FFF         GPIO Port A (AHB aperture)  421
0x4005.9000    0x4005.9FFF         GPIO Port B (AHB aperture)  421
0x4005.A000    0x4005.AFFF         GPIO Port C (AHB aperture)  421
0x4005.B000    0x4005.BFFF         GPIO Port D (AHB aperture)  421
0x4005.C000    0x4005.CFFF         GPIO Port E (AHB aperture)  421
0x4005.D000    0x4005.DFFF         GPIO Port F (AHB aperture)  421
0x4005.E000    0x4005.EFFF         GPIO Port G (AHB aperture)  421
0x4005.F000    0x400F.BFFF         Reserved                    -
0x400F.C000    0x400F.CFFF         Hibernation Module          287

July 03, 2011                                                                75

                    Texas Instruments-Advance Information
The Cortex-M3 Processor

Table 2-4. Memory Map (continued)

Start                    End          Description                                          For details,
                                                                                           see page ...
0x400F.D000              0x400F.DFFF  Flash memory control                                 313
0x400F.E000              0x400F.EFFF  System control                                       194
0x400F.F000              0x400F.FFFF  DMA                                                 370
0x4010.0000              0x41FF.FFFF  Reserved                                             -
0x4200.0000              0x43FF.FFFF  Bit-banded alias of 0x4000.0000 through 0x400F.FFFF  -
0x4400.0000              0xDFFF.FFFF  Reserved                                             -
Private Peripheral Bus
0xE000.0000              0xE000.0FFF  Instrumentation Trace Macrocell (ITM)                57
0xE000.1000              0xE000.1FFF
0xE000.2000              0xE000.2FFF  Data Watchpoint and Trace (DWT)                      57
0xE000.3000              0xE000.DFFF
0xE000.E000              0xE000.EFFF  Flash Patch and Breakpoint (FPB)                     57
0xE000.F000              0xE003.FFFF
0xE004.0000              0xE004.0FFF  Reserved                                             -
0xE004.1000              0xFFFF.FFFF
                                      Cortex-M3 Peripherals (SysTick, NVIC, SCB, and MPU) 82

                                      Reserved                                             -

                                      Trace Port Interface Unit (TPIU)                     58

                                      Reserved                                             -

2.4.1  Memory Regions, Types and Attributes

       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.

2.4.2  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 77).

       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

76                                                                                         July 03, 2011

                              Texas Instruments-Advance Information
                                                                                    Stellaris LM3S6G65 Microcontroller

2.4.3  Device or Strongly Ordered memory, and if A1 occurs before A2 in program order, A1 is always
2.4.4  observed before A2.

       Behavior of Memory Accesses

       Table 2-5 on page 77 shows the behavior of accesses to each region in the memory map. See
       "Memory Regions, Types and Attributes" on page 76 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 74 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
                                                                                    can also be stored here. This region
               0x2000.0000 - 0x3FFF.FFFF SRAM          Normal        -              includes bit band and bit band alias areas
                                                                                    (see Table 2-6 on page 79).
               0x4000.0000 - 0x5FFF.FFFF Peripheral    Device        XN             This region includes bit band and bit band
                                                                                    alias areas (see Table 2-7 on page 79).
               0x6000.0000 - 0x9FFF.FFFF External RAM  Normal        -              This executable region is for data.
                                                                                    This region is for external device memory.
               0xA000.0000 - 0xDFFF.FFFF External device Device      XN             This region includes the NVIC, system
                                                                                    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 101.
       The Cortex-M3 prefetches instructions ahead of execution and speculatively prefetches from branch
       target addresses.

       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 76 describes the cases where the memory
       system guarantees the order of memory accesses. Otherwise, if the order of memory accesses is

July 03, 2011                                                                       77

                              Texas Instruments-Advance Information
The Cortex-M3 Processor

                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.

                     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 Instruction Set
                Technical User's Manual.

78                                         July 03, 2011

    Texas Instruments-Advance Information
                                                                     Stellaris LM3S6G65 Microcontroller

2.4.5  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 79. 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 79. For the specific address range of the bit-band regions,
       see Table 2-4 on page 74.

       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
               0x2200.0000 - 0x23FF.FFFF SRAM bit-band alias        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.

July 03, 2011                                                                                      79

                              Texas Instruments-Advance Information
The Cortex-M3 Processor

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

         Figure 2-4 on page 80 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)

          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

         Writing to a word in the alias region updates a single bit in the bit-band region.

         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.

80                                                                                          July 03, 2011

                         Texas Instruments-Advance Information
                                                                           Stellaris LM3S6G65 Microcontroller

2.4.5.2  Bits 31:1 of the alias word have no effect on the bit-band bit. Writing 0x01 has the same effect as
2.4.6    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 77 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 81 illustrates how data is stored.

         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 is performed.

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

          The word instructions LDREX and STREX

          The halfword instructions LDREXH and STREXH

July 03, 2011                                                              81

                                    Texas Instruments-Advance Information
The Cortex-M3 Processor

                 The byte instructions LDREXB and STREXB

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

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

                2. Update the value, as required.

                3. Use a Store-Exclusive instruction to attempt to write the new value back to the memory location,
                     and 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 read-modify-write sequence.

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

                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 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 85 lists all exception types. Software can set eight priority levels on seven of
                these exceptions (system handlers) as well as on 44 interrupts (listed in Table 2-9 on page 85).
                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

82                                         July 03, 2011

    Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

2.5.1  priority levels into preemption priorities and subpriorities. All the interrupt registers are described in
2.5.2  "Nested Vectored Interrupt Controller (NVIC)" on page 99.

       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 99 for more information on exceptions
       and interrupts.

       Exception States

       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.

July 03, 2011                                         83

               Texas Instruments-Advance Information
The Cortex-M3 Processor

                 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

                     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 85 lists the interrupts on the LM3S6G65 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 85 shows as having
                configurable priority (see the SYSHNDCTRL register on page 142 and the DIS0 register on page 115).
                For more information about hard faults, memory management faults, bus faults, and usage faults,
                see "Fault Handling" on page 90.

84                                         July 03, 2011

    Texas Instruments-Advance Information
                                                                                      Stellaris LM3S6G65 Microcontroller

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.
                                                                                        Asynchronous
               Reset                   1               -3 (highest)      0x0000.0004    Asynchronous
                                                             -2          0x0000.0008
               Non-Maskable Interrupt  2
                                                             -1
               (NMI)                                 programmablec
                                                     programmablec
               Hard Fault              3                             0x0000.000C        -

               Memory Management       4                             0x0000.0010        Synchronous

               Bus Fault               5                             0x0000.0014        Synchronous when precise and
                                                                                        asynchronous when imprecise

               Usage Fault             6             programmablec   0x0000.0018        Synchronous

               -                       7-10                   -                    -    Reserved
               SVCall                   11           programmablec
               Debug Monitor            12           programmablec   0x0000.002C        Synchronous

                                                                     0x0000.0030        Synchronous

               -                              13              -                    -    Reserved
               PendSV                         14     programmablec
               SysTick                        15     programmablec   0x0000.0038        Asynchronous
               Interrupts              16 and above  programmabled
                                                                     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 87.
c. See SYSPRI1 on page 139.
d. See PRIn registers on page 123.

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                           8              0x0000.0060    PWM Fault
                        26                           9              0x0000.0064    PWM Generator 0
                        27                          10              0x0000.0068    PWM Generator 1
                        28                          11              0x0000.006C    PWM Generator 2
                        29                          12              0x0000.0070    QEI0
                        30                          13              0x0000.0074    ADC0 Sequence 0
                        31                          14              0x0000.0078    ADC0 Sequence 1
                                                    15              0x0000.007C

July 03, 2011                                                                                            85

                                       Texas Instruments-Advance Information
The Cortex-M3 Processor

       Table 2-9. Interrupts (continued)

       Vector Number     Interrupt Number (Bit    Vector Address or  Description
                         in Interrupt Registers)          Offset
                32                                                   ADC0 Sequence 2
                33                    16              0x0000.0080    ADC0 Sequence 3
                34                    17              0x0000.0084    Watchdog Timers 0 and 1
                35                    18              0x0000.0088    Timer 0A
                36                    19              0x0000.008C    Timer 0B
                37                    20              0x0000.0090    Timer 1A
                38                    21              0x0000.0094    Timer 1B
                39                    22              0x0000.0098    Timer 2A
                40                    23              0x0000.009C    Timer 2B
                41                    24              0x0000.00A0    Analog Comparator 0
                42                    25              0x0000.00A4    Analog Comparator 1
                43                    26              0x0000.00A8    Reserved
                44                    27                             System Control
                45                    28                      -      Flash Memory Control
                46                    29              0x0000.00B0    GPIO Port F
                47                    30              0x0000.00B4    GPIO Port G
                48                    31              0x0000.00B8    Reserved
                49                    32             0x0000.00BC     UART2
                50                    33                             Reserved
                51                    34                      -      Timer 3A
                52                    35              0x0000.00C4    Timer 3B
                53                    36                             I2C1
                54                    37                      -      QEI1
             55-57                    38             0x0000.00CC     Reserved
                58                  39-41             0x0000.00D0    Ethernet Controller
                59                    42              0x0000.00D4    Hibernation Module
             60-61                    43              0x0000.00D8    Reserved
                62                  44-45                            DMA Software
                63                    46                      -      DMA Error
                64                    47              0x0000.00E8    ADC1 Sequence 0
                65                    48             0x0000.00EC     ADC1 Sequence 1
                66                    49                             ADC1 Sequence 2
                67                    50                      -      ADC1 Sequence 3
             68-70                    51              0x0000.00F8    Reserved
                                    52-54            0x0000.00FC
                                                      0x0000.0100
                                                      0x0000.0104
                                                      0x0000.0108
                                                      0x0000.010C

                                                              -

2.5.3  Exception Handlers

       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.

86                                                                                            July 03, 2011

                         Texas Instruments-Advance Information
                                                                                    Stellaris LM3S6G65 Microcontroller

2.5.4   System Handlers. NMI, PendSV, SVCall, SysTick, and the fault exceptions are all system
2.5.5      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 85. Figure 2-6 on page 87 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

       Figure 2-6. Vector Table

               Exception number IRQ number Offset  Vector

               70  54            0x0118            IRQ54

               .                 .                 .

               .                 .                 .

               .                 .                 .

               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

       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.0200 to 0x3FFF.FE00 (see "Vector Table" on page 87). Note
       that when configuring the VTABLE register, the offset must be aligned on a 512-byte boundary.

       Exception Priorities

       As Table 2-8 on page 85 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

July 03, 2011                                                                       87

                        Texas Instruments-Advance Information
The Cortex-M3 Processor

2.5.6  priority have a priority of 0. For information about configuring exception priorities, see page 139 and
2.5.7  page 123.

       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].

       If multiple pending exceptions have the same priority, the pending exception with the lowest exception
       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 133.

       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 88 for more information about preemption by an interrupt.
           When one exception preempts another, the exceptions are called nested exceptions. See
           "Exception Entry" on page 89 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 90 for
           more information.

88                                                              July 03, 2011

                         Texas Instruments-Advance Information
                                                                 Stellaris LM3S6G65 Microcontroller

2.5.7.1   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
             return from the exception handler of the late-arriving exception, the normal tail-chaining rules
             apply.

         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 70, FAULTMASK on page 71, and BASEPRI on page 72). 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.

         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.

July 03, 2011                                                    89

                          Texas Instruments-Advance Information
The Cortex-M3 Processor

2.5.7.2  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
2.6      of the earlier exception.

         Exception Return
         Exception return occurs when the processor is in Handler mode and executes one of the following
         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 90
         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 82). 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.

90                                                                         July 03, 2011

                         Texas Instruments-Advance Information
                                                                                  Stellaris LM3S6G65 Microcontroller

2.6.1  Fault Types
2.6.2
       Table 2-11 on page 91 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 146 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 139). Software can disable execution of the handlers for these faults (see SYSHNDCTRL on
       page 142).

       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 82.

       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.

July 03, 2011                                                                                                 91

                                           Texas Instruments-Advance Information
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 92.

       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 152

       Memory management Memory Management Fault Status   Memory Management Fault page 146

       fault             (MFAULTSTAT)                     Address (MMADDR)       page 153

       Bus fault         Bus Fault Status (BFAULTSTAT)    Bus Fault Address      page 146
                                                          (FAULTADDR)            page 154

       Usage fault       Usage Fault Status (UFAULTSTAT)  -                      page 146

       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 or an NMI occurs.

       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 135). For more information about the behavior of the sleep modes, see "System
       Control" on page 190.

92                                                                                          July 03, 2011

                         Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 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 93). When the processor
         executes a WFI instruction, it stops executing instructions and enters sleep mode. See the
         CortexTM-M3 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 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 an exception handler, 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 it 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 70 and page 71.

         Wake Up from WFE

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

July 03, 2011                                         93

               Texas Instruments-Advance Information
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 135.

2.8  Instruction Set Summary

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

     Note: In Table 2-13 on page 94:

                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 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                 -

94                                                                               July 03, 2011

                            Texas Instruments-Advance Information
                                                                     Stellaris LM3S6G65 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

July 03, 2011                                                                                        95

                              Texas Instruments-Advance Information
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}
    USAT                 Rd, #n, Rm {,shift #s}     Store register signed byte         -
    UXTB                 {Rd,} Rm {,ROR #n}
                                                    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             -

                                                    Unsigned saturate                  Q

                                                    Zero extend a byte                 -

96                                                                                     July 03, 2011

                         Texas Instruments-Advance Information
                                                                Stellaris LM3S6G65 Microcontroller

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

               Mnemonic  Operands            Brief Description       Flags
               UXTH      {Rd,} Rm {,ROR #n}  Zero extend a halfword  -
               WFE       -                   Wait for event          -
               WFI       -                   Wait for interrupt      -

July 03, 2011                                                               97

                         Texas Instruments-Advance Information
Cortex-M3 Peripherals

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 98)

           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 99)
            Facilitates low-latency exception and interrupt handling
            Controls power management
            Implements system control registers

        System Control Block (SCB) (see page 101)

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

        Memory Protection Unit (MPU) (see page 101)

           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 98 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                          98
       0xE000.E100-0xE000.E4EF  Nested Vectored Interrupt Controller  99
       0xE000.EF00-0xE000.EF03
       0xE000.E008-0xE000.E00F  System Control Block                  101
       0xE000.ED00-0xE000.ED3F
       0xE000.ED90-0xE000.EDB8  Memory Protection Unit                101

       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.

98                                                                    July 03, 2011

                       Texas Instruments-Advance Information
                                                      Stellaris LM3S6G65 Microcontroller

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:

        44 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).

July 03, 2011                                         99

               Texas Instruments-Advance Information
Cortex-M3 Peripherals

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 100 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 117 or SWTRIG on page 125.

         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.

100                                                           July 03, 2011

                       Texas Instruments-Advance Information
                                                                        Stellaris LM3S6G65 Microcontroller

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 76 for more information).

       Table 3-2 on page 101 shows the possible MPU region attributes. See the section called "MPU
       Configuration for a Stellaris Microcontroller" on page 105 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.

July 03, 2011                                                                                     101

                                 Texas Instruments-Advance Information
Cortex-M3 Peripherals

         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.

102                                                           July 03, 2011

                       Texas Instruments-Advance Information
                                                        Stellaris LM3S6G65 Microcontroller

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 159) 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

An STM instruction can be used to optimize this:

; R1 = address and region number in one

; R2 = size and attributes in one

LDR R0,=MPUBASE  ; 0xE000ED9C, MPU Region Base register

STM R0, {R1-R2}  ; Region base address, region number and VALID bit,

                 ; and 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 161) 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

July 03, 2011                                                        103

                 Texas Instruments-Advance Information
Cortex-M3 Peripherals

         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.

         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 104 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 104 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 105 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                                                                   read allocate.

                       1   0  0  Normal

                       xa  0  1  Reserved encoding

                       xa  1  0  Reserved encoding

                       0   1  1  Normal

                       1   1  1  Normal

104                                                                                                       July 03, 2011

                              Texas Instruments-Advance Information
                                                                                         Stellaris LM3S6G65 Microcontroller

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

               TEX           S        C         B   Memory Type        Shareability      Other Attributes

               010           xa       0         0   Device             Not shareable     Nonshared Device.

               010           xa       0         1   Reserved encoding  -                 -

               010           xa       1         xa  Reserved encoding  -                 -

               1BB           0        A         A   Normal             Not shareable     Cached memory (BB =
                                                                                         outer policy, AA = inner
               1BB           1        A         A   Normal             Shareable         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 105 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 105 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 105.

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

                                                    1          1   0   Normal memory, shareable, write-through

July 03, 2011                                                                                                   105

                                         Texas Instruments-Advance Information
Cortex-M3 Peripherals

         Table 3-6. Memory Region Attributes for Stellaris Microcontrollers (continued)

         Memory Region                 TEX             S  C  B         Memory Type and Attributes
         External SRAM                 000b
                                                       1  1  1         Normal memory, shareable, write-back,
         Peripherals                   000b
                                                                       write-allocate

                                                       1  0  1         Device memory, shareable

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 74 for more information). The MFAULTSTAT register
         indicates the cause of the fault. See page 146 for more information.

3.2 Register Map

                Table 3-7 on page 106 lists the Cortex-M3 Peripheral SysTick, NVIC, SCB, and MPU 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
                                                                                                               109
0x010 STCTRL                      R/W        0x0000.0004  SysTick Control and Status Register                  111
                                                          SysTick Reload Value Register                        112
0x014 STRELOAD                    R/W        0x0000.0000  SysTick Current Value Register
                                                                                                               113
0x018 STCURRENT                   R/WC       0x0000.0000  Interrupt 0-31 Set Enable                            114
                                                          Interrupt 32-54 Set Enable                           115
Nested Vectored Interrupt Controller (NVIC) Registers     Interrupt 0-31 Clear Enable                          116
                                                          Interrupt 32-54 Clear Enable                         117
0x100 EN0                         R/W        0x0000.0000  Interrupt 0-31 Set Pending                           118
                                                          Interrupt 32-54 Set Pending                          119
0x104 EN1                         R/W        0x0000.0000  Interrupt 0-31 Clear Pending                         120
                                                          Interrupt 32-54 Clear Pending                        121
0x180 DIS0                        R/W        0x0000.0000  Interrupt 0-31 Active Bit                            122
                                                          Interrupt 32-54 Active Bit                           123
0x184 DIS1                        R/W        0x0000.0000  Interrupt 0-3 Priority

0x200 PEND0                       R/W        0x0000.0000

0x204 PEND1                       R/W        0x0000.0000

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

106                                                                                                July 03, 2011

                                  Texas Instruments-Advance Information
                                                                             Stellaris LM3S6G65 Microcontroller

Table 3-7. Peripherals Register Map (continued)

Offset Name       Type                  Reset        Description                              See
                                                                                              page
0x404 PRI1        R/W                   0x0000.0000  Interrupt 4-7 Priority                    123
                                        0x0000.0000  Interrupt 8-11 Priority                   123
0x408 PRI2        R/W                   0x0000.0000  Interrupt 12-15 Priority                  123
                                        0x0000.0000  Interrupt 16-19 Priority                  123
0x40C PRI3        R/W                   0x0000.0000  Interrupt 20-23 Priority                  123
                                        0x0000.0000  Interrupt 24-27 Priority                  123
0x410 PRI4        R/W                   0x0000.0000  Interrupt 28-31 Priority                  123
                                        0x0000.0000  Interrupt 32-35 Priority                  123
0x414 PRI5        R/W                   0x0000.0000  Interrupt 36-39 Priority                  123
                                        0x0000.0000  Interrupt 40-43 Priority                  123
0x418 PRI6        R/W                   0x0000.0000  Interrupt 44-47 Priority                  123
                                        0x0000.0000  Interrupt 48-51 Priority                  123
0x41C PRI7        R/W                   0x0000.0000  Interrupt 52-54 Priority                  123
                                        0x0000.0000  Software Trigger Interrupt                125
0x420 PRI8        R/W
                                        0x0000.0000  Auxiliary Control                         126
0x424 PRI9        R/W                   0x412F.C230  CPU ID Base                               128
                                        0x0000.0000  Interrupt Control and State               129
0x428 PRI10       R/W                   0x0000.0000  Vector Table Offset                       132
                                        0xFA05.0000  Application Interrupt and Reset Control   133
0x42C PRI11       R/W                   0x0000.0000  System Control                            135
                                        0x0000.0200  Configuration and Control                 137
0x430 PRI12       R/W                   0x0000.0000  System Handler Priority 1                 139
                                        0x0000.0000  System Handler Priority 2                 140
0x434 PRI13       R/W                   0x0000.0000  System Handler Priority 3                 141
                                        0x0000.0000  System Handler Control and State          142
0xF00 SWTRIG      WO                    0x0000.0000  Configurable Fault Status                 146
                                        0x0000.0000  Hard Fault Status                         152
System Control Block (SCB) Registers                 Memory Management Fault Address           153
                                                -    Bus Fault Address                         154
0x008 ACTLR       R/W                           -
                                                     MPU Type                                  155
0xD00 CPUID       RO                    0x0000.0800

0xD04 INTCTRL     R/W

0xD08 VTABLE      R/W

0xD0C APINT       R/W

0xD10 SYSCTRL     R/W

0xD14 CFGCTRL     R/W

0xD18 SYSPRI1     R/W

0xD1C SYSPRI2     R/W

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

July 03, 2011                                                                                 107

                                      Texas Instruments-Advance Information
Cortex-M3 Peripherals

Table 3-7. Peripherals Register Map (continued)

Offset Name            Type  Reset               Description                    See
                                                                                page
0xD94 MPUCTRL          R/W   0x0000.0000 MPU Control                             156
0xD98 MPUNUMBER                                                                  158
0xD9C MPUBASE          R/W   0x0000.0000 MPU Region Number                       159
0xDA0 MPUATTR                                                                    161
0xDA4 MPUBASE1         R/W   0x0000.0000 MPU Region Base Address                 159
0xDA8 MPUATTR1                                                                   161
0xDAC MPUBASE2         R/W   0x0000.0000 MPU Region Attribute and Size           159
0xDB0 MPUATTR2                                                                   161
0xDB4 MPUBASE3         R/W   0x0000.0000 MPU Region Base Address Alias 1         159
0xDB8 MPUATTR3                                                                   161
                       R/W   0x0000.0000 MPU Region Attribute and Size Alias 1

                       R/W   0x0000.0000 MPU Region Base Address Alias 2

                       R/W   0x0000.0000 MPU Region Attribute and Size Alias 2

                       R/W   0x0000.0000 MPU Region Base Address Alias 3

                       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.

108                                                                             July 03, 2011

                       Texas Instruments-Advance Information
                                                                               Stellaris LM3S6G65 Microcontroller

                  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.0004

       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   1    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
                                                  1      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 Stellaris
                                                                     microcontrollers.)

                                                            1 System clock

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

July 03, 2011                                                                                                           109

                                     Texas Instruments-Advance Information
Cortex-M3 Peripherals

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.

110                                                           July 03, 2011

                       Texas Instruments-Advance Information
                                                                                              Stellaris LM3S6G65 Microcontroller

                  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.

July 03, 2011                                                                                                          111

                                                 Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  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 132.

112                                                                                                            July 03, 2011

                                                Texas Instruments-Advance Information
                                                                                Stellaris LM3S6G65 Microcontroller

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

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

                  See Table 2-9 on page 85 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.

July 03, 2011                                                                                                         113

                                       Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 5: Interrupt 32-54 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 22 corresponds to Interrupt 54. See Table 2-9 on page 85 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-54 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                                                INT

Type RO           RO   RO    RO      RO        RO   RO    RO        RO   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:23          reserved           RO
                                                    0x00  Software should not rely on the value of a reserved bit. To provide
         22:0             INT            R/W              compatibility with future products, the value of a reserved bit should be
                                                          preserved across a read-modify-write operation.

                                                    0x00.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.

114                                                                                                    July 03, 2011

                                          Texas Instruments-Advance Information
                                                                                Stellaris LM3S6G65 Microcontroller

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

                  Note: This register can only be accessed from privileged mode.
                  See Table 2-9 on page 85 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].

July 03, 2011                                                                                        115

                                         Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 7: Interrupt 32-54 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 22 corresponds to Interrupt
                  54. See Table 2-9 on page 85 for interrupt assignments.

Interrupt 32-54 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                                              INT

Type RO           RO   RO    RO      RO        RO   RO    RO        RO   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:23          reserved           RO
                                                    0x00  Software should not rely on the value of a reserved bit. To provide
         22:0             INT            R/W              compatibility with future products, the value of a reserved bit should be
                                                          preserved across a read-modify-write operation.

                                                    0x00.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].

116                                                                                                  July 03, 2011

                                          Texas Instruments-Advance Information
                                                                                   Stellaris LM3S6G65 Microcontroller

                  Register 8: Interrupt 0-31 Set Pending (PEND0), offset 0x200

                  Note: This register can only be accessed from privileged mode.
                  See Table 2-9 on page 85 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.

July 03, 2011                                                                                           117

                                        Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 9: Interrupt 32-54 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 22 corresponds to Interrupt 54. See Table 2-9 on page 85 for
                  interrupt assignments.

Interrupt 32-54 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                                                  INT

Type RO           RO   RO    RO      RO        RO   RO    RO        RO   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:23          reserved           RO
                                                    0x00  Software should not rely on the value of a reserved bit. To provide
         22:0             INT            R/W              compatibility with future products, the value of a reserved bit should be
                                                          preserved across a read-modify-write operation.

                                                    0x00.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.

118                                                                                                      July 03, 2011

                                          Texas Instruments-Advance Information
                                                                                    Stellaris LM3S6G65 Microcontroller

                  Register 10: Interrupt 0-31 Clear Pending (UNPEND0), offset 0x280

                  Note: This register can only be accessed from privileged mode.
                  See Table 2-9 on page 85 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.

July 03, 2011                                                                                           119

                                       Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 11: Interrupt 32-54 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 22 corresponds to Interrupt 54. See Table
                  2-9 on page 85 for interrupt assignments.

Interrupt 32-54 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                                                   INT

Type RO           RO   RO    RO      RO        RO   RO    RO        RO   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:23          reserved           RO
                                                    0x00  Software should not rely on the value of a reserved bit. To provide
         22:0             INT            R/W              compatibility with future products, the value of a reserved bit should be
                                                          preserved across a read-modify-write operation.

                                                    0x00.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.

120                                                                                                       July 03, 2011

                                          Texas Instruments-Advance Information
                                                                                  Stellaris LM3S6G65 Microcontroller

                  Register 12: Interrupt 0-31 Active Bit (ACTIVE0), offset 0x300

                  Note: This register can only be accessed from privileged mode.
                  See Table 2-9 on page 85 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.

July 03, 2011                                                                                     121

                                         Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 13: Interrupt 32-54 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
                  22 corresponds to Interrupt 54. See Table 2-9 on page 85 for interrupt assignments.

                  Caution Do not manually set or clear the bits in this register.

Interrupt 32-54 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                                               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:23         reserved            RO
                                                   0x00  Software should not rely on the value of a reserved bit. To provide
         22:0            INT              RO             compatibility with future products, the value of a reserved bit should be
                                                         preserved across a read-modify-write operation.

                                                   0x00.0000 Interrupt Active

                                                            Value Description
                                                            0 The corresponding interrupt is not active.
                                                            1 The corresponding interrupt is active, or active and pending.

122                                                                                                 July 03, 2011

                                         Texas Instruments-Advance Information
                                                                               Stellaris LM3S6G65 Microcontroller

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
Register 26: Interrupt 48-51 Priority (PRI12), offset 0x430
Register 27: Interrupt 52-54 Priority (PRI13), offset 0x434

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 85 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 133) indicates the
position of the binary point that splits the priority and subpriority fields.

These registers can only be accessed from privileged mode.

July 03, 2011                                                                  123

                                        Texas Instruments-Advance Information
Cortex-M3 Peripherals

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

       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.

124                                                                                                July 03, 2011

                                          Texas Instruments-Advance Information
                                                                                  Stellaris LM3S6G65 Microcontroller

                  Register 28: 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 85 for interrupt assignments.

                  When the MAINPEND bit in the Configuration and Control (CFGCTRL) register (see page 137) 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.

July 03, 2011                                                                                            125

                                        Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 29: Auxiliary Control (ACTLR), offset 0x008

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

                  The ACTLR register provides disable bits for IT folding, write buffer use for accesses to the default
                  memory map, and interruption of multi-cycle instructions. By default, this register is set to provide
                  optimum performance from the Cortex-M3 processor and does not normally require modification.

Auxiliary Control (ACTLR)

Base 0xE000.E000
Offset 0x008
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                                     DISFOLD DISWBUF DISMCYC

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:3          reserved
           2          DISFOLD        RO 0x0000.000 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
           1          DISWBUF                                      preserved across a read-modify-write operation.

                                     R/W       0         Disable IT Folding

                                                            Value Description
                                                            0 No effect.
                                                            1 Disables IT folding.

                                                         In some situations, the processor can start executing the first instruction
                                                         in an IT block while it is still executing the IT instruction. This behavior
                                                         is called IT folding, and improves performance, However, IT folding can
                                                         cause jitter in looping. If a task must avoid jitter, set the DISFOLD bit
                                                         before executing the task, to disable IT folding.

                                     R/W       0         Disable Write Buffer

                                                            Value Description

                                                            0 No effect.

                                                            1 Disables write buffer use during default memory map accesses.
                                                                     In this situation, all bus faults are precise bus faults but
                                                                     performance is decreased because any store to memory must
                                                                     complete before the processor can execute the next instruction.

                                                                     Note: This bit only affects write buffers implemented in the
                                                                                  Cortex-M3 processor.

126                                                                                              July 03, 2011

                                     Texas Instruments-Advance Information
                                                               Stellaris LM3S6G65 Microcontroller

Bit/Field        Name   Type  Reset  Description
    0          DISMCYC  R/W      0
                                     Disable Interrupts of Multiple Cycle Instructions

                                     Value Description
                                     0 No effect.
                                     1 Disables interruption of load multiple and store multiple

                                               instructions. In this situation, the interrupt latency of the
                                               processor is increased because any LDM or STM must complete
                                               before the processor can stack the current state and enter the
                                               interrupt handler.

July 03, 2011                                                  127

                        Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 30: 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 0x412F.C230

       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        1     0   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   0

       Bit/Field      Name                    Type      Reset     Description
        31:24          IMP                     R0       0x41      Implementer Code
                                                                  Value Description
                                                                  0x41 ARM

       23:20                VAR               RO        0x2       Variant Number

                                                                     Value Description

                                                                     0x2 The rn value in the rnpn product revision identifier, for example,
                                                                              the 2 in r2p0.

       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        0x0       Revision Number

                                                                     Value Description

                                                                     0x0 The pn value in the rnpn product revision identifier, for example,
                                                                              the 0 in r2p0.

128                                                                                                          July 03, 2011

                                              Texas Instruments-Advance Information
                                                                                                   Stellaris LM3S6G65 Microcontroller

                  Register 31: 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.

July 03, 2011                                                                                                                     129

                                           Texas Instruments-Advance Information
Cortex-M3 Peripherals

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.

130                                                            July 03, 2011

                        Texas Instruments-Advance Information
                                                                 Stellaris LM3S6G65 Microcontroller

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

                                       ...          ...

                                       0x46         Interrupt Vector 54

                                       0x47-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 66).

July 03, 2011                                                                  131

                          Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 32: 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    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: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:9              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 54
                                                             interrupts, the minimum alignment is 128 words.

       8: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.

132                                                                                                                July 03, 2011

                                            Texas Instruments-Advance Information
                                                                                          Stellaris LM3S6G65 Microcontroller

                  Register 33: 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 133 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.

July 03, 2011                                                                                                                                     133

                                                 Texas Instruments-Advance Information
Cortex-M3 Peripherals

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 133 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.

134                                                             July 03, 2011

                         Texas Instruments-Advance Information
                                                                              Stellaris LM3S6G65 Microcontroller

                  Register 34: 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.

July 03, 2011                                                                                                             135

                                       Texas Instruments-Advance Information
Cortex-M3 Peripherals

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.

136                                                           July 03, 2011

                       Texas Instruments-Advance Information
                                                                                          Stellaris LM3S6G65 Microcontroller

                  Register 35: 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 125).

Configuration and Control (CFGCTRL)

Base 0xE000.E000
Offset 0xD14
Type R/W, reset 0x0000.0200

       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   1    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       1    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.

July 03, 2011                                                                                                                 137

                                          Texas Instruments-Advance Information
Cortex-M3 Peripherals

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 125).

                             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 90 for more information).

138                                                                                  July 03, 2011

                       Texas Instruments-Advance Information
                                                                                        Stellaris LM3S6G65 Microcontroller

                  Register 36: 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.

July 03, 2011                                                                                                 139

                                                 Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 37: 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.

140                                                                                               July 03, 2011

                                         Texas Instruments-Advance Information
                                                                                                  Stellaris LM3S6G65 Microcontroller

                  Register 38: 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.

July 03, 2011                                                                                                                               141

                                                  Texas Instruments-Advance Information
Cortex-M3 Peripherals

                  Register 39: 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
                                                &nbs