Read This First.........................................................................................................................................................................25
About This Manual................................................................................................................................................................. 25
Register Bit Conventions........................................................................................................................................................25
Related Documentation..........................................................................................................................................................26
Community Resources...........................................................................................................................................................26
1.3.6 Multichannel Audio Serial Port (McASP)................................................................................................................... 35
1.3.7 Serial Peripheral Interface (SPI)................................................................................................................................36
1.3.13 Parallel Camera Interface........................................................................................................................................38
1.3.16 Clock, Reset, and Power Management................................................................................................................... 38
2.1.4 Trace Port Interface Unit (TPIU)................................................................................................................................44
2.1.5 Cortex®-M4 System Component Details................................................................................................................... 44
2.2.6 Power Management.................................................................................................................................................. 62
2.2.7 Instruction Set Summary........................................................................................................................................... 64
3.2.1 System Timer (SysTick).............................................................................................................................................70
3.2.3 System Control Block (SCB)..................................................................................................................................... 72
4 Direct Memory Access (DMA)............................................................................................................................................113
4.2.5 Transfer Mode..........................................................................................................................................................118
4.2.6 Transfer Size and Increment................................................................................................................................... 121
4.2.8 Interrupts and Errors................................................................................................................................................122
4.3.2 µDMA Channel Control Structure............................................................................................................................124
5.2.1 Data Control............................................................................................................................................................ 154
5.4 Initialization and Configuration.......................................................................................................................................156
6.2.3 Data Transmission...................................................................................................................................................174
6.2.4 Initialization and Configuration................................................................................................................................ 177
7.1.2 Signal Description....................................................................................................................................................205
7.2.5 FIFO and µDMA Operation......................................................................................................................................211
7.2.7 Initialization and Configuration................................................................................................................................ 220
8.3 Initialization and Configuration.......................................................................................................................................284
8.4 Access to Data Registers...............................................................................................................................................285
8.5.1 Common Transfer Sequence...................................................................................................................................286
9.4 Initialization and Configuration.......................................................................................................................................318
9.4.1 One-Shot and Periodic Timer Mode........................................................................................................................ 318
10.2.1 Initialization and Configuration.............................................................................................................................. 353
10.4.1 System Watchdog..................................................................................................................................................362
10.4.2 System Watchdog Recovery Sequence................................................................................................................ 364
11.3.1 Clock and Reset Management...............................................................................................................................368
11.4 Initialization and Configuration Using Peripheral APIs.................................................................................................368
11.4.1 Basic Initialization and Configuration.....................................................................................................................368
11.4.3 Card Detection and Initialization............................................................................................................................370
11.5 Performance and Testing..............................................................................................................................................372
12.3.1 Clock and Reset Management.............................................................................................................................. 409
12.3.2 I2S Data Port Interface..........................................................................................................................................410
12.3.3 Initialization and Configuration.............................................................................................................................. 410
12.4 Peripheral Library APIs for I2S Configuration.............................................................................................................. 412
12.4.1 Basic APIs for Enabling and Configuring the Interface..........................................................................................412
12.4.2 APIs for Data Access if DMA is Not Used............................................................................................................. 414
13.5 Initialization and Configuration.....................................................................................................................................491
13.6 Peripheral Library APIs for ADC Operation..................................................................................................................491
13.6.2 Configuring the ADC Channels............................................................................................................................. 491
13.6.3 Basic APIs for Enabling and Configuring the Interface..........................................................................................492
13.6.4 APIs for Data Transfer [Direct Access to FIFO and DMA Setup].......................................................................... 493
13.6.5 APIs for Interrupt Usage........................................................................................................................................494
13.6.6 APIs for Setting Up ADC Timer for Time-Stamping the Samples..........................................................................497
14 Parallel Camera Interface Module................................................................................................................................... 499
14.3.1 Modes of Operation...............................................................................................................................................501
14.4.1 Camera Core Reset...............................................................................................................................................505
14.4.2 Enable the Picture Acquisition...............................................................................................................................505
14.4.3 Disable the Picture Acquisition.............................................................................................................................. 506
14.6 Camera Registers........................................................................................................................................................ 507
14.8.1 Using Peripheral Driver APIs for Capturing an Image........................................................................................... 524
14.8.2 Using Peripheral Driver APIs for Communicating With Image Sensors................................................................ 527
15 Power, Reset, and Clock Management........................................................................................................................... 529
15.1.1 Power Management Unit (PMU)............................................................................................................................530
15.1.3 Supply Brownout and Blackout..............................................................................................................................531
15.1.4 Application Processor Power Modes.....................................................................................................................532
15.2 Power Management Control Architecture.................................................................................................................... 533
15.2.1 Global Power-Reset-Clock Manager (GPRCM).................................................................................................... 534
15.5 Power Management Framework.................................................................................................................................. 543
6SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
16.2 I/O Pad Electrical Specifications.................................................................................................................................. 597
16.3 Analog and Digital Pin Multiplexing..............................................................................................................................598
16.4 Special Analog/Digital Pins.......................................................................................................................................... 598
16.4.1 Pins 45 and 52.......................................................................................................................................................598
16.4.2 Pins 29 and 30.......................................................................................................................................................598
16.4.3 Pins 57, 58, 59, and 60..........................................................................................................................................598
16.5 Analog Mux Control Registers..................................................................................................................................... 601
16.6 Pins Available for Applications..................................................................................................................................... 603
16.8.1 Pad Configuration Registers for Application Pins..................................................................................................618
16.8.2 PAD Behavior During Reset and Hibernate...........................................................................................................619
16.8.3 Control Architecture...............................................................................................................................................620
16.8.5 Wake on Pad.........................................................................................................................................................625
16.8.6 Sense on Power.................................................................................................................................................... 626
17 Advance Encryption Standard Accelerator (AES).........................................................................................................627
18 Data Encryption Standard Accelerator (DES)................................................................................................................ 681
18.1 DES Functional Description......................................................................................................................................... 682
18.2 DES Block Diagram..................................................................................................................................................... 682
18.2.4 DES Enginer..........................................................................................................................................................684
18.3 DES-Supported Modes of Operation........................................................................................................................... 684
18.4.3 DES Events Servicing........................................................................................................................................... 689
18.5 DES Registers..............................................................................................................................................................691
19.1.2 µDMA and Interrupt Requests...............................................................................................................................713
20.2 Initialization and Configuration.....................................................................................................................................776
20.2.1 CRC Initialization and Configuration......................................................................................................................776
21.7 Flash User Application and Memory Partition.............................................................................................................. 800
21.8 Programming, Bootstrapping, and Updating the Flash User Application..................................................................... 802
21.9 Image Authentication and Integrity Check................................................................................................................... 803
21.10 Debugging Flash User Application Using JTAG.........................................................................................................805
A Software Development Kit Examples...............................................................................................................................807
B CC323x Device Miscellaneous Registers........................................................................................................................ 809
Figure 2-4. Data Storage........................................................................................................................................................... 52
Figure 6-2. UART Character Frame.........................................................................................................................................173
Figure 7-2. I2C Bus Configuration........................................................................................................................................... 206
Figure 7-3. START and STOP Conditions............................................................................................................................... 206
Figure 7-4. Complete Data Transfer With a 7-Bit Address...................................................................................................... 207
Figure 7-5. R/S Bit in First Byte............................................................................................................................................... 207
Figure 7-6. Data Validity During Bit Transfer on the I2C Bus...................................................................................................207
Figure 7-7. Master Single TRANSMIT..................................................................................................................................... 214
Figure 7-8. Master Single RECEIVE........................................................................................................................................215
Figure 7-9. Master TRANSMIT of Multiple Data Bytes............................................................................................................ 216
Figure 7-10. Master RECEIVE of Multiple Data Bytes.............................................................................................................217
Figure 7-11. Master RECEIVE with Repeated START after Master TRANSMIT.....................................................................218
Figure 7-12. Master TRANSMIT with Repeated START after Master RECEIVE.....................................................................218
Figure 8-3. Phase and Polarity Combinations......................................................................................................................... 271
Figure 8-4. Full-Duplex Single Transfer Format With PHA = 0................................................................................................272
Figure 8-5. Full-Duplex Single Transfer Format With PHA = 1................................................................................................273
Figure 8-6. Contiguous Transfers With SPIEN Kept Active (Two Data Pins Interface Mode)................................................. 275
Figure 8-7. Transmit/Receive Mode With No FIFO Used........................................................................................................ 277
Figure 8-8. Transmit/Receive Mode With Only Receive FIFO Enabled...................................................................................277
Figure 8-9. Transmit/Receive Mode With Only Transmit FIFO Used.......................................................................................278
Figure 8-10. Transmit/Receive Mode With Both FIFO Directions Used.................................................................................. 278
Figure 8-11. Buffer Almost Full Level (AFL).............................................................................................................................279
Figure 8-12. Buffer Almost Empty Level (AEL)........................................................................................................................279
Figure 8-13. 3-Pin Mode System Overview............................................................................................................................. 280
Figure 8-15. Flow Chart – Common Transfer Sequence.........................................................................................................287
Figure 8-16. Flow Chart – Transmit and Receive (Master and Slave).....................................................................................288
Figure 8-17. Flow Chart – FIFO Mode Common Sequence (Master)......................................................................................289
Figure 8-18. Flow Chart – FIFO Mode Transmit and Receive With Word Count (Master)...................................................... 290
Figure 8-19. Flow Chart – FIFO Mode Transmit and Receive without Word Count (Master)..................................................291
Figure 13-1. Architecture of the ADC Module in CC32xx........................................................................................................ 470
Figure 13-2. Operation of the ADC..........................................................................................................................................471
Figure 14-1. Camera Module Interfaces.................................................................................................................................. 500
Figure 14-2. Synchronization Signals and Frame Timing........................................................................................................501
Figure 14-3. Synchronization Signals and Data Timing...........................................................................................................501
Figure 14-4. Different Scenarios of CAM_P_HS and CAM_P_VS.......................................................................................... 502
Figure 14-5. CAM_P_HS Toggles Between Pixels in Decimation........................................................................................... 502
Figure 14-6. Parallel Camera Interface State Machine............................................................................................................502
Figure 14-7. FIFO Image Data Format.................................................................................................................................... 503
Figure 14-8. Assertion and Deassertion of the DMA Request Signal......................................................................................505
Figure 15-1. Power Management Unit Configuration.............................................................................................................. 531
Figure 15-3. Power Management Control Architecture in CC32xx..........................................................................................535
Figure 16-1. Board Configuration to Use Pins 45 and 52........................................................................................................ 599
Figure 16-2. Board Configuration to Use Pins 45 and 52 as Digital Signals........................................................................... 600
Figure 16-3. I/O Pad Data and Control Path Architecture in CC32xx......................................................................................620
Figure 16-4. Wake on Pad for Hibernate Mode....................................................................................................................... 625
Figure 18-1. DES Block Diagram.............................................................................................................................................683
Figure 18-2. DES – ECB Feedback Mode...............................................................................................................................685
Figure 18-5. DES Polling Mode............................................................................................................................................... 688
Figure 18-6. DES Interrupt Service..........................................................................................................................................689
Figure 18-7. DES Context Input Event Service....................................................................................................................... 690
Figure 21-12. User Application Image Binary Structure on Serial Flash................................................................................. 802
Figure 21-13. On-Chip Flash Programming and Update......................................................................................................... 804
Table 1-1. Register Bit Accessibility and Initial Condition.......................................................................................................... 25
Table 2-1. Summary of Processor Mode, Privilege Level, and Stack Use.................................................................................45
Table 2-9. Fault Status and Fault Address Registers................................................................................................................ 60
Table 3-4. ACTLR Register Field Descriptions.......................................................................................................................... 76
Table 3-5. STCTRL Register Field Descriptions........................................................................................................................78
Table 3-6. STRELOAD Register Field Descriptions...................................................................................................................80
Table 3-7. STCURRENT Register Field Descriptions................................................................................................................81
Table 3-8. EN_0 to EN_6 Register Field Descriptions...............................................................................................................82
Table 3-9. DIS_0 to DIS_6 Register Field Descriptions.............................................................................................................83
Table 3-10. PEND_0 to PEND_6 Register Field Descriptions...................................................................................................84
Table 3-11. UNPEND_0 to UNPEND_6 Register Field Descriptions.........................................................................................85
Table 3-12. ACTIVE_0 to ACTIVE_6 Register Field Descriptions.............................................................................................86
Table 3-13. PRI_0 to PRI_49 Register Field Descriptions.........................................................................................................87
Table 3-14. CPUID Register Field Descriptions.........................................................................................................................88
Table 3-15. INTCTRL Register Field Descriptions.....................................................................................................................89
Table 3-16. VTABLE Register Field Descriptions.......................................................................................................................92
Table 3-17. APINT Register Field Descriptions......................................................................................................................... 93
Table 3-18. SYSCTRL Register Field Descriptions................................................................................................................... 95
16SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 4-2. Channel Control Memory........................................................................................................................................ 116
Table 4-3. Individual Control Structure.....................................................................................................................................117
Table 4-4. 8-Bit Data Peripheral Configuration........................................................................................................................ 122
Table 6-1. Flow Control Mode..................................................................................................................................................175
Table 7-4. I2CMSA Register Field Descriptions.......................................................................................................................222
Table 7-5. I2CMCS Register Field Descriptions...................................................................................................................... 223
Table 7-6. Write Field Decoding for I2CMCS[6:0].................................................................................................................... 225
Table 7-7. I2CMDR Register Field Descriptions...................................................................................................................... 228
Table 7-8. I2CMTPR Register Field Descriptions.................................................................................................................... 229
Table 7-9. I2CMIMR Register Field Descriptions.....................................................................................................................230
Table 7-10. I2CMRIS Register Field Descriptions................................................................................................................... 232
Table 7-11. I2CMMIS Register Field Descriptions................................................................................................................... 235
Table 7-12. I2CMICR Register Field Descriptions................................................................................................................... 238
Table 7-13. I2CMCR Register Field Descriptions.................................................................................................................... 240
Table 7-14. I2CMCLKOCNT Register Field Descriptions........................................................................................................ 241
Table 7-15. I2CMBMON Register Field Descriptions...............................................................................................................242
Table 7-16. I2CMBLEN Register Field Descriptions................................................................................................................243
Table 7-17. I2CMBCNT Register Field Descriptions................................................................................................................244
Table 7-18. I2CSOAR Register Field Descriptions.................................................................................................................. 245
Table 7-19. I2CSCSR Register Field Descriptions.................................................................................................................. 246
Table 7-20. I2CSDR Register Field Descriptions.....................................................................................................................248
Table 7-21. I2CSIMR Register Field Descriptions................................................................................................................... 249
Table 7-22. I2CSRIS Register Field Descriptions....................................................................................................................251
Table 7-23. I2CSMIS Register Field Descriptions....................................................................................................................253
Table 7-24. I2CSICR Register Field Descriptions....................................................................................................................255
Table 7-25. I2CSOAR2 Register Field Descriptions................................................................................................................ 257
Table 7-26. I2CSACKCTL Register Field Descriptions............................................................................................................258
Table 7-27. I2CFIFODATA Register Field Descriptions........................................................................................................... 259
Table 7-28. I2CFIFOCTL Register Field Descriptions............................................................................................................. 260
Table 7-29. I2CFIFOSTATUS Register Field Descriptions.......................................................................................................262
Table 7-30. I2CPP Register Field Descriptions........................................................................................................................264
Table 7-31. I2CPC Register Field Descriptions....................................................................................................................... 265
Table 8-2. Phase and Polarity Combinations...........................................................................................................................271
Table 8-3. Clock Ratio Granularity...........................................................................................................................................275
Table 8-7. SPI_SYSCONFIG Register Field Descriptions.......................................................................................................293
Table 8-8. SPI_SYSSTATUS Register Field Descriptions....................................................................................................... 294
Table 8-9. SPI_IRQSTATUS Register Field Descriptions........................................................................................................ 295
Table 8-10. SPI_IRQENABLE Register Field Descriptions......................................................................................................297
Table 8-11. SPI_MODULCTRL Register Field Descriptions.................................................................................................... 299
Table 8-12. SPI_CHCONF Register Field Descriptions...........................................................................................................300
Table 8-13. SPI_CHSTAT Register Field Descriptions............................................................................................................ 303
Table 8-14. SPI_CHCTRL Register Field Descriptions............................................................................................................305
Table 8-15. SPI_TX Register Field Descriptions......................................................................................................................306
Table 8-16. SPI_RX Register Field Descriptions..................................................................................................................... 307
Table 8-17. SPI_XFERLEVEL Register Field Descriptions..................................................................................................... 308
Table 9-1. Available CCP Pins and PWM Outputs/Signals Pins.............................................................................................. 311
18SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 11-3. Base Address of SD-Host (also referred as MMCHS).......................................................................................... 378
Table 14-2. Ratio of the XCLK Frequency Generator..............................................................................................................504
Table 14-3. Camera Registers.................................................................................................................................................507
Table 14-4. CC_SYSCONFIG Register Field Descriptions......................................................................................................508
Table 14-5. CC_SYSSTATUS Register Field Descriptions......................................................................................................509
20SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 16-3. Pin Internal Pullup and Pulldown Electrical Specifications (25°C)........................................................................597
Table 16-4. Analog Mux Control Registers and Bits................................................................................................................ 601
Table 16-6. GPIO/Pins Available for Application......................................................................................................................603
Table 16-8. Pin Groups for Audio Interface (I2S)..................................................................................................................... 617
Table 16-9. Pin Groups for SPI Interface (GSPI)..................................................................................................................... 617
Table 16-10. Pin Groups for SD-Card Interface....................................................................................................................... 617
Table 16-11. Pad Configuration Registers............................................................................................................................... 618
Table 16-12. GPIO_PAD_CONFIG_0 to GPIO_PAD_CONFIG_32 Register Description....................................................... 619
Table 18-2. DES Global Initialization....................................................................................................................................... 686
Table 18-3. DES Algorithm Type Configuration....................................................................................................................... 686
22SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 18-4. 3DES Algorithm Type Configuration..................................................................................................................... 687
Table 18-5. DES Interrupt Mode.............................................................................................................................................. 689
Table 18-6. DES DMA Mode....................................................................................................................................................689
Table 18-7. DES Register Map................................................................................................................................................ 691
Table 18-8. DTHE_DES_IM Register Field Descriptions.........................................................................................................692
Table 18-9. DTHE_DES_RIS Register Field Descriptions.......................................................................................................693
Table 18-10. DTHE_DES_MIS Register Field Descriptions.................................................................................................... 694
Table 18-11. DTHE_DES_IC Register Field Descriptions........................................................................................................695
Table 18-12. DES_KEY3_L Register Field Descriptions......................................................................................................... 696
Table 18-13. DES_KEY3_H Register Field Descriptions.........................................................................................................697
Table 18-14. DES_KEY2_L Register Field Descriptions......................................................................................................... 698
Table 18-15. DES_KEY2_H Register Field Descriptions.........................................................................................................699
Table 18-16. DES_KEY1_L Register Field Descriptions......................................................................................................... 700
Table 18-17. DES_KEY1_H Register Field Descriptions.........................................................................................................701
Table 18-18. DES_IV_L Register Field Descriptions............................................................................................................... 702
Table 18-19. DES_IV_H Register Field Descriptions...............................................................................................................703
Table 18-20. DES_CTRL Register Field Descriptions............................................................................................................. 704
Table 18-21. DES_LENGTH Register Field Descriptions........................................................................................................705
Table 18-22. DES_DATA_L Register Field Descriptions..........................................................................................................706
Table 18-23. DES_DATA_H Register Field Descriptions.........................................................................................................707
Table 18-24. DES_SYSCONFIG Register Field Descriptions................................................................................................. 708
Table 18-25. DES_IRQSTATUS Register Field Descriptions...................................................................................................709
Table 18-26. DES_IRQENABLE Register Field Descriptions..................................................................................................710
Table 19-1. Interrupts and Events............................................................................................................................................ 713
Table 19-5. SHA Digest Processed in Three Passes.............................................................................................................. 717
Table 19-6. SHA Digest Processed in One Pass.....................................................................................................................718
Table 19-7. Continuing a Prior HMAC......................................................................................................................................720
Table 19-8. SHA-1 Apply on the Key....................................................................................................................................... 720
Table 20-2. Endian Configuration With Bit Reversal................................................................................................................775
This technical reference manual describes the modules and peripherals of the CC323x SimpleLink™ Wi-Fi
®
microcontroller (MCU). Each description presents the module or peripheral in a general sense. Not all features
and functions of all modules or peripherals may be present on all devices. Pin functions, internal signal
connections, and operational parameters differ from device to device. The user should consult the devicespecific data sheet for these details.
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; it explains the features and
functionality of each module, and it also explains how to use them. For each feature, references are given to the
documentation for the driver of the corresponding operating systems. This document does not contain
performance characteristics of the device or modules, which are gathered in the corresponding device data
sheets.
Register Bit Conventions
Table 1-1 lists each register with a key indicating the accessibility of the individual bit, and the initial condition.
Table 1-1. Register Bit Accessibility and Initial Condition
Key BitAccessibility
rwRead/write
rRead only
r0Read as 0
r1Read as 1
wWrite only
w0Write as 0
w1Write as 1
(w)No register bit implemented; writing 1 results in a pulse. The register bit is always read as 0.
h0Cleared by hardware
h1Set by hardware
-0, -1Condition after PUC
-(0), -(1)Condition after POR
-[0], -[1]Condition after BOR
-{0},-{1}Condition after Brownout
Glossary
TI GlossaryThis glossary lists and explains terms, acronyms, and definitions.
The following related documents about the CC323x device can be accessed at these links from Texas
Instruments™: http://www.ti.com/simplelinkwifi and http://www.ti.com/simplelinkwifi-wiki
1. SimpleLink™ Wi-Fi® CC3x3x Networking Subsystem Power Management
2. Cortex-M3/M4F Instruction Set Technical User's Manual
Note
This list of documents was current as of publication date. Check the website for additional
documentation, application notes, and white papers.
4. Bluetooth® Special Interest Group (SIG) Bluetooth Core Specifications.
5. Texas Instruments Bluetooth® low energy (BLE) Wiki.
6. Arm® Debug Interface V5 Architecture Specification (see Arm.com).
7. The Institute of Electrical and Electronic Engineers, Inc., IEEE Standard Test Access Port and BoundaryScan Architecture, IEEE Std 1149.1a 1993 and Supplement Std. 1149.1b 1994 (see IEEExplore.ieee.org).
8. The Institute of Electrical and Electronic Engineers, Inc., IEEE 1149.7 Standard for Reduced-Pin andEnhanced-Functionality Test Access Port and Boundary-Scan Architecture (see IEEExplore.ieee.org).
9. National Institute of Standards and Technology, NIST Special Publication 800-38A, Recommendation forBlock Cipher Modes of Operation Methods and Techniques (see NIST.gov).
10.National Institute of Standards and Technology, NIST Special Publication 800-38D, Recommendation forBlock Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC (see NIST.gov).
11.National Institute of Standards and Technology, FIPS 197, Advanced Encryption Standard (AES) (see
NIST.gov).
Community Resources
The following links connect to TI community resources. Linked contents are provided "AS IS" by the respective
contributors. They do not constitute TI specifications and do not necessarily reflect TI's views; see TI's Terms of
Use.
TI E2E™ Support Forum TI's Engineer-to-Engineer (E2E) Community. Created to foster collaboration
among engineers. At e2e.ti.com, you can ask questions, share knowledge, explore
ideas and help solve problems with fellow engineers.
TI Embedded
Processors Wiki
TI Product Information
Centers (PIC)
Texas Instruments Embedded Processors Wiki. Established to help developers
get started with Embedded Processors from Texas Instruments and to foster
innovation and growth of general knowledge about the hardware and software
surrounding these devices.
All technical support is channeled through the TI Product Information Centers (PIC).
To send an email request, enter your contact information and your request to PIC
request form.
26SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
SimpleLink™, Texas Instruments™, TI E2E™, Internet-on-a chip™, and are trademarks of Texas Instruments.
AMBA™ and CoreSight™ are trademarks of Arm Limited.
Wi-Fi® and Wi-Fi Direct®, and are registered trademarks of Wi-Fi Alliance.
Arm®, Cortex®, Thumb®, and are registered trademarks of Arm Limited.
Bluetooth® are registered trademarks of Bluetooth SIG, Inc..
All other trademarks are the property of their respective owners.
The CC323x device is part of the SimpleLink™ microcontroller (MCU) platform which consists of Wi-Fi®,
Bluetooth® low energy, Sub-1 GHz and host MCUs, which all share a common, easy-to-use development
environment with a single core software development kit (SDK) and rich tool set. A one-time integration of the
SimpleLink™ platform lets you add any combination of the devices from the portfolio into your design. The
ultimate goal of the SimpleLink™ platform is to achieve 100 percent code reuse when your design requirements
change. For more information, visit www.ti.com/simplelink.
The applications MCU subsystem contains an industry-standard Arm Cortex-M4 processor core running at
80 MHz. The device includes a wide variety of peripherals, including a fast parallel camera interface, I2S, SD,
UART, SPI, I2C, and 4-channel ADC. The CC32xx family of devices includes flexible embedded RAM for code
and data, and ROM with external serial flash bootloader and peripheral drivers.
The Wi-Fi network processor subsystem features a Wi-Fi Internet-on-a chip™, and contains an additional
dedicated Arm MCU that completely offloads the applications MCU. This subsystem includes an 802.11 a/b/g/n
radio, baseband, and MAC with a powerful crypto engine for fast, secure Internet connections with 256-bit
encryption. The CC32xx device supports Station, Access Point, and Wi-Fi Direct® modes. The device also
supports WPA2 personal and enterprise security and WPS 2.0. The Wi-Fi Internet-on-a chip™ includes
embedded TCP/IP and TLS/SSL stacks, HTTP server, and multiple Internet protocols.
30SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
The following sections provide an overview of the main components of the CC32xx system on chip (SoC) from a
microcontroller point of view.
1.3.1 Processor Core
1.3.1.1 Arm® Cortex®-M4 Processor Core
The CC32xx application MCU subsystem is built around an Arm Cortex-M4 processor core, which provides
outstanding computational performance and exceptional system response to interrupts at low power
consumption, while optimizing memory footprint—making the MCU subsystem an ideal fit for embedded
applications.
Key features of an Arm Cortex-M4 processor core are:
•Thumb®-2 mixed 16-bit and 32-bit instruction set delivers the high performance expected of a 32-bit Arm core
in a compact memory size – enabling richer applications within a given device memory size.
•Single-cycle multiply instruction and hardware divide
•Atomic bit manipulation (bit-banding), delivering maximum memory use and streamlined peripheral control
•Unaligned data access, enabling data to be efficiently packed into memory
•Hardware division and fast multiplier
•Deterministic, high-performance interrupt handling for time-critical applications
•Configurable 4-pin JTAG and 2-pin (SWJ-DP) debug access
•Ultra-low-power sleep modes
•Low active power consumption
•80-MHz operation
1.3.1.2 System Timer (SysTick)
The Arm® Cortex®-M4 processor core 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 is
clocked on the system clock.
SysTick makes OS porting between Cortex®-M4 devices much easier because there is no need to change the
OS system timer code. The SysTick timer integrates with the NVIC and can generate a SysTick exception
(exception type 15). In many OSs, a hardware timer generates interrupts so that the OS can perform task
management (for example, to allow multiple tasks to run at different time slots and to ensure that no single task
can lock up the entire system). To perform this function, the timer must be able to generate interrupts and, if
possible, be protected from user tasks so that user applications cannot change the timer behavior.
The counter can be used in several different ways:
•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 simple counter used to measure time to completion and time used
•An internal clock-source control based on missing or meeting durations
1.3.1.3 Nested Vector Interrupt Controller (NVIC)
The CC32xx device includes the Arm® NVIC. The NVIC and Cortex®-M4 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, thus 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. The NVIC and
Cortex®-M4 processor prioritize and handle all exceptions in handler mode. The NVIC and the processor core
interface are closely coupled to enable low-latency interrupt processing and efficient processing of late-arriving
interrupts. The NVIC maintains knowledge of the stacked, or nested, interrupts to enable tail-chaining of
interrupts.
32SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
•Exceptional interrupt handling through hardware implementation of required register manipulations
•Deterministic, fast interrupt processing: always 12 cycles, or just 6 cycles with tail-chaining
•Programmable priority level for each interrupt
•Low-latency interrupt and exception handling
•Level and pulse detection of interrupt signals
•Grouping of interrupts into group priority and subpriority interrupts
1.3.1.4 System Control Block
The system control block (SCB) provides system implementation information and system control, including
configuration, control, and reporting of system exceptions.
1.3.2 Memory
1.3.2.1 On-Chip SRAM
The CC32xx device has up to 256KB of zero wait state, on-chip SRAM, to which application programs are
downloaded and executed. The SRAM is used for both code and data, and is connected to the Multilayer-AHB
bus-matrix of the chip. There is no restriction on relative size or partitioning of code and data on the micro-direct
memory access (μDMA) controller except the lower 16KBs of SRAM.
The micro-direct memory access (µDMA) controller can transfer data to and from SRAM and various
peripherals. The SRAM banks implement an advanced 4-way interleaved architecture, which almost eliminates
the performance penalty when DMA and processor simultaneously access the SRAM.
Internal RAM has selective retention capability during low-power deep-sleep (LPDS) mode. Based on need,
during LPDS mode the application can choose to retain 256KB, 192KB, 128KB, or 64KB. Retaining the memory
during low-power mode provides a faster wakeup. TI provides an easy-to-use power-management framework for
processor and peripheral context save and restore mechanism based on SRAM retention.
1.3.2.2 ROM
CC32xx comes with factory programmed zero-wait-state ROM with the following firmware components:
•Device initialization
•Bootloader
•Peripheral driver library (DriverLib) release for product-specific peripherals and interfaces
When the CC32xx powers up, or the chip reset is released or returns from hibernate mode, the device
initialization procedure is executed first. After the chip hardware has been correctly configured, the bootloader is
executed, which loads the application code from nonvolatile memory into on-chip SRAM and makes a jump to
the application code entry point.
The CC32xx DriverLib is a software library that controls on-chip peripherals. The library performs both peripheral
initialization and control functions, with a choice of polled or interrupt-driven peripheral support.
The ROM DriverLib provides a rich set of drivers for peripheral and chip. The DriverLib is aimed at reducing
application development time and improving solution robustness. TI recommends that applications make
extensive use of the DriverLib APIs to optimize memory and MIPS requirement of end applications.
1.3.2.3 Flash Memory
The CC323xSF device comes with an on-chip flash memory of 1024KB, allowing application code to execute inplace while freeing up SRAM to be used exclusively for read-write data. The flash memory is used for code and
constant data sections, and is directly attached to the ICODE/DCODE bus of the Cortex®-M4 core. A 128-bitwide instruction prefetch buffer allows maintaining maximum performance for linear code, or loops that fit inside
the buffer.
The flash memory is organized as 2-KB sectors that can be independently erased. Reads and writes can be
performed at word (32-bit) level.
The CC32xx MCU includes a micro-direct memory access (μDMA) controller. The µDMA controller provides a
way to offload data-transfer tasks from the Cortex®-M4 processor, allowing 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. The µDMA controller 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:
•32 configurable channels
•80-MHz operation
•Support for memory-to-memory, memory-to-peripheral, and peripheral-to-memory in multiple transfer modes
– Basic and 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
– One channel each for receive and transmit path for bidirectional modules
– Dedicated channel for software-initiated transfers
– Per-channel configurable bus arbitration scheme
– Software-initiated requests for any channel
•Two levels of priority
•Design optimizations for improved bus access performance between the µDMA controller and the processor
core
•Transfer size is programmable in binary steps from 1 to 1024
•Source and destination address increment size of byte, halfword, word, or no increment
•Maskable peripheral requests
•Interrupt on transfer completion, with a separate interrupt per channel
1.3.4 General-Purpose Timer (GPT)
The CC32xx includes 4 instances of 32-bit user-programmable general-purpose timers (GPTs). GPTs count or
time external events that drive the timer input pins. Each GPT module (GPTM) block provides two 16-bit timers
or counters that can be configured to operate independently as timers or event counters, or configured to
operate as one 32-bit timer. The GPTM contains 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 GPT with an 8-bit prescaler
– 16-bit input-edge count or time-capture modes
– 16-bit pulse-width modulation (PWM) mode with software-programmable output inversion of the PWM
signal
•Count up or down
•Ability to determine the elapsed time between the assertion of the timer interrupt and entry into the ISR
•Can trigger efficient transfers using the µDMA.
– Dedicated channel for each timer
34SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
The watchdog timer (WDT) in the CC32xx restarts the system when it gets stuck due to an error and does not
respond as expected. The WDT can be configured to generate an interrupt to the MCU on its first time-out, and
to generate a reset signal on its second time-out. Once the WDT is configured, the lock register can be written to
prevent the timer configuration from being inadvertently altered.
The WDT provides the following features:
•32-bit down-counter with a programmable load register
•Programmable interrupt generation logic with interrupt masking
•Lock register protection from runaway software
•Reset generation logic
1.3.6 Multichannel Audio Serial Port (McASP)
The CC32xx includes a configurable multichannel audio serial port (McASP) for glue-less interfacing to audio
codec and DAC (speaker drivers). The audio port has two serializers or deserializers that can be individually
enabled to either transmit or receive and operate synchronously. Key features follow:
•Two stereo I2S channels
– One stereo receive and one stereo transmit lines
– Two stereo transmit lines
•Programmable clock and frame-sync polarity (rising or falling edge)
•Programmable word length (bits per word): 16 and 24 bits
•Programmable fractional divider for bit-clock generation, up to 9 MHz
The serial peripheral interface (SPI) is a 4-wire bidirectional communications interface that converts data
between parallel and serial. The SPI 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 SPI allows a
duplex serial communication between a local host and SPI-compliant external devices.
The CC32xx includes one SPI port dedicated to the application. Key features are:
•Programmable interface operation for Freescale SPI, MICROWIRE, or TI synchronous serial interfaces
master and slave modes
•3-pin and 4-pin mode
•Full duplex and half duplex
•Serial clock with programmable frequency, polarity, and phase
•Up to 20-MHz operation
•Programmable chip select polarity
•Programmable delay before the first SPI word is transmitted
•Programmable timing control between chip select and external clock generation
•No dead cycle between two successive words in slave mode
•SPI word lengths of 8, 16, and 32 bits
•Efficient transfers using the µDMA controller
1.3.8 Inter-Integrated Circuit (I2C) Interface
The inter-integrated circuit (I2C) bus provides bidirectional data transfer through a 2-wire design (a serial data
line SDA and a serial clock line SCL). The I2C bus interfaces to a wide variety of external I2C devices such as
sensors, serial memory, control ports of image sensors, and audio codecs. Multiple slave devices can be
connected to the same I2C bus. The CC32xx microcontroller includes one I2C module with the following
features:
•Master and slave modes of operation
•Master with arbitration and clock synchronization
A universal asynchronous receivers/transmitter (UART) is an integrated circuit used for RS-232 serial
communications. UARTs contain a transmitter (parallel-to-serial converter) and a receiver (serial-to-parallel
converter), each clocked separately.
The CC32xx device includes two fully programmable UARTs. The UART can generate individually-masked
interrupts from the RX, TX, modem status, and error conditions. The module generates a single combined
interrupt when any of the interrupts are asserted and unmasked.
The UARTs include the following features:
•Programmable baud-rate generator, allowing speeds up to 3 Mbps
•Separate 16 × 8 transmit (TX) and receive (RX) FIFOs to reduce CPU interrupt service loading
•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
36SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
•Fully programmable serial interface characteristics:
– 5, 6, 7, or 8 data bits
– Even, odd, stick, or no-parity bit generation and detection
– 1 or 2 stop-bit generation
•RTS and CTS modem handshake support
•Standard FIFO-level and end-of-transmission interrupts
•Efficient transfers using µ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
1.3.10 General-Purpose Input/Output (GPIO)
All digital pins of the CC32xx device and some of the analog pins can be used as a general-purpose input/output
(GPIO). The GPIOs are grouped as four instance GPIO modules, each 8-bit. Supported features include:
•Up to 28 GPIOs, depending on the functional pin configuration
•Interrupt capability for all GPIO pins:
– Level or edge sensitive
– Rising or falling edge
– Selective interrupt masking
•Can trigger DMA operation
•Selectable wakeup source (one out of six pins)
•Programmable pad configuration:
– Internal 5-µA pullup and pulldown
– Configurable drive strength of 2 mA, 4 mA, and 6 mA
– Open-drain mode
•GPIO register readable through the high-speed internal bus matrix
1.3.11 Analog-to-Digital Converter (ADC)
The analog-to-digital converter (ADC) peripheral converts a continuous analog voltage into a discrete digital
number. The CC32xx device includes ADC modules with four input channels. Each ADC module features 12-bit
conversion resolution for the four input channels. Features include:
•Number of bits: 12-bit
•Effective nominal accuracy: 10 bits
•Four analog input channels
•Automatic round-robin sampling
•Fixed sampling interval of 16 µs per channel
•Automatic 16-bit time-stamping of every ADC samples based on the system clock
•Dedicated DMA channel to transfer ADC channel data to the application RAM.
1.3.12 SD Card Host
The CC32xx includes an SD-Host interface for applications that require mass storage. The SD-Host interface
support is currently limited to 1-bit mode.
The CC32xx includes an 8-bit parallel camera port to enable image sensor-based applications.
1.3.14 Debug Interface
The CC32xx supports both IEEE Standard 1149.1 JTAG (4-wire) and the low-pin-count Arm® SWD (2-wire)
debug interfaces. Depending on the board-level configuration of the sense-on-power pull resistors, by default the
chip powers up with either the 4-wire JTAG or the 2-wire SWD interface.
As shown in Figure 1-1, the 4-wire JTAG signals from the chip pins are routed through an IcePick module. TAPs
other than the application MCU are reserved for TI production testing. A sequence that selects the TAP must be
sent to the device to connect to the Arm® Cortex®-M4 JTAG TAP. The 2-wire mode, however, directly routes the
Arm® SWD-TMS and SWD-TCK pins directly to the respective chip pins.
1.3.15 Hardware Cryptography Accelerator
The secure variant of the CC32xx includes a suite of high-throughput, state-of-the-art hardware accelerators for
fast computation of ciphers (AES, DES, 3-DES), hashing (SHA, MD5), and CRC algorithms by the application. It
is also referred to as the data hashing and transform engine (DTHE).
1.3.16 Clock, Reset, and Power Management
The CC32xx system-on-chip includes the necessary clock and power management functionalities to build a
stand-alone, battery-operated low-power solution. Key features follow:
•On-chip power management
– Wide voltage mode: 2.1 V to 3.6 V
•Powered by battery (2×1.5 V) or a regulated 3.3-V supply
– A set of three on-chip high-efficiency DC/DC converters produce the internal module supply voltages
when needed. These switching converters and their frequency plan are optimized to minimize interference
to WLAN radio.
•DIG-DCDC: Produces 0.9 V to 1.2 V for the core digital logic
•ANA1-DCDC: Produces low-ripple 1.8-V supply for the analog and RF
•PA-DCDC: Produces regulated 1.8 V with extremely fast transient regulation for the WLAN RF transmit
power amplifier
– A set of low-dropout regulators (LDOs) is used in the radio subsystem to further regulate and filter the
ANA1-DCDC output before being fed to the analog circuits
– On-chip factory-trimmed accurate band-gap voltage reference ensures the regulator outputs are stable
across process and temperature
1.3.17 SimpleLink™ Subsystem
The SimpleLink™ subsystem provides fast, secured WLAN and Internet connections with 256-bit encryption.
The CC32xx device supports station, AP, and Wi-Fi Direct® modes. The device also supports WPA2 personal
and enterprise security and WPS 2.0. The Wi-Fi® network processor includes an embedded IPv6 TCP/IP stack.
This multiprocessor subsystem consists of:
•IPv6 network processor and Wi-Fi® driver
•802.11 b/g/n/a MAC
•802.11 b/g/n/a PHY
•802.11 b/g/n/a radio
The SimpleLink™ subsystem is accessible from the application MCU over an asynchronous link, and can be
controlled through a complete set of SimpleLink™ host driver APIs provided as part of the ROM driver library.
The mode of usage is similar to that of an external MCU using the CC3120 device.
The co-location of the Wi-Fi® subsystem on the same die imposes a few restrictions on the application MCU.
These are covered in Chapter 15.
1.3.18 I/O Pads and Pin Multiplexing
The device makes extensive use of pin multiplexing to accommodate the large number of peripheral functions in
the smallest possible package. To achieve this configuration, pin multiplexing is controlled using a combination of
hardware configuration (at device reset) and register control.
The I/O pad and pin multiplexing sections feature flexible wide-voltage I/Os. Supported features include:
•Programmable drive strength of 2 mA, 4 mA, and 6 mA
•Open-drain mode
•Output buffer isolation
•Automatic output isolation during reset and hibernate
•Configurable pullup and pulldown (10 µA nominal)
•Software-configurable pad state retention during LPDS
The CC32xx device incorporates a dedicated instance of the Arm Cortex-M4 CPU core for executing application
code with or without real-time operating system (RTOS). This processor core is not used in any manner for
running any networking or device management task.
This dedicated Arm Cortex-M4 core, along with large on-chip SRAM, a rich set of peripherals, and advanced
DC-DC-based power management, provides a robust, contention-free, high-performance application platform at
much lower power, lower cost, and smaller solution size when compared to solutions based on discrete MCUs.
Features include:
•32-bit Arm Cortex-M4 architecture optimized for small-footprint embedded applications
•80-MHz operation
•Fast interrupt handling
•Thumb®-2 mixed 16-bit and 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 use and streamlined peripheral control
– Unaligned data access, enabling data to be efficiently packed into memory
•16-bit SIMD vector processing unit
•3-stage pipeline Harvard architecture
•Hardware division and fast digital signal processing-orientated multiply accumulate
•Saturating arithmetic for signal processing
•Deterministic, high-performance interrupt handling for time-critical applications
•Enhanced system debug with extensive breakpoints
•Serial-wire debug and serial-wire trace reduce the number of pins required for debugging and tracing
•Low power consumption with multiple sleep modes
The Arm Cortex-M4 application processor core in the CC32xx does not include the floating point unit (FPU) and
memory protection unit (MPU).
This chapter provides information on the implementation of the Cortex-M4 application processor in the CC32xx,
including the programming model, the memory model, the exception model, fault handling, and power
management. For technical details on the Arm Cortex-M4 CPU core, see the Arm® Cortex®-M4 Processor
Technical Reference Manual (ARM 100166_0001_00).
For technical details on the instruction set, see the Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A).
42SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
The Cortex-M4 application processor in the CC32xx 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.
2.1.3 Integrated Configurable Debug
The Cortex-M4 application processor implements an Arm CoreSight™-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.
The 4-bit trace interface from embedded trace macrocell (ETM) is not supported in the CC32xx due to pin
limitations. Instead, the processor integrates an instrumentation trace macrocell (ITM) alongside data
watchpoints and a profiling unit. A serial-wire viewer (SWV) can export a stream of software-generated
messages (printf style debug), data trace, and profiling information through a single pin to enable simple and
cost-effective profiling of the system trace events.
The flash patch and breakpoint unit (FPB) provides up to eight hardware breakpoint comparators for debugging.
The comparators in the FPB also provide remap functions for up to eight words of program code in the code
memory region. FPB also provides code patching capability; however, as the CC32xx application processor
implements and executes from SRAM architecture, this type of patching is no longer required.
For more information on the Cortex-M4 debug capabilities, see the Arm Debug Interface V5 Architecture
Specification.
The TPIU acts as a bridge between the Cortex®-M4 trace data from the ITM, and an off-chip trace port analyzer,
as shown in Figure 2-2.
Figure 2-2. TPIU Block Diagram
2.1.5 Cortex®-M4 System Component Details
The Cortex®-M4 application processor core includes the following system components:
•SysTck: A 24-bit count-down timer used as an RTOS tick timer or as a simple counter (see Section 3.2.1).
•Nested Vectored Interrupt Controller (NVIC): An embedded interrupt controller that supports low-latency
interrupt processing (see Nested Vectored Interrupt Controller [NVIC] in Section 3.2.2).
•System Control Block (SCB): The programming model interface to the processor. The SCB provides system
implementation information and system control, including configuration, control, and reporting of system
exceptions (see System Control Block [SCB] in Section 3.2.3).
44SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
This section describes the Cortex®-M4 programming model and includes the individual core register
descriptions, information about the processor modes, and privilege levels for software execution and stacks.
2.2.1.1 Processor Mode and Privilege Levels for Software Execution
The Cortex®-M4 has two modes of operation:
•Thread mode to execute application software. The processor enters thread mode when it comes out of reset.
•Handler mode to handle exceptions. When the processor has finished exception processing, it returns to
thread mode.
In addition, the Cortex®-M4 has two privilege levels:
•Unprivileged: In this mode, the 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, the software can use all instructions and has access to all resources
In thread mode, the CONTROL register 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.
2.2.1.2 Stacks
The processor uses a full descending stack, meaning that the stack pointer indicates the last stacked item on the
memory. When the processor pushes a new item onto the stack, it decrements the stack pointer, then writes the
item to the new memory location. The processor implements two stacks: the main stack and the process stack,
with a pointer for each held in independent registers (see the SP register).
In thread mode, the CONTROL register controls whether the processor uses the main stack or the process
stack. In handler mode, the processor always uses the main stack. Table 2-1 lists the options for processor
operations.
Table 2-1. Summary of Processor Mode, Privilege Level, and Stack Use
–BASEPRIR/W0x0000.0000Base Priority Mask register
–CONTROLR/W0x0000.0000Control register
–FPSCR/W–Floating-Point Status Control (N/A for CC32xx)
2.2.2.2 Register Descriptions
This section lists and describes the Cortex®-M4 registers. 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 may differ.
The R0–R12 registers are 32-bit general-purpose registers for data operations, and can be accessed from either
privileged or unprivileged mode.
2.2.2.2.1 Stack Pointer (SP)
In thread mode, the function of this register changes depending on the ASP bit in the Control (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 be accessed only in privileged mode; the PSP can be
accessed in either privileged or unprivileged mode.
2.2.2.2.2 Link Register (LR)
The Link register (LR) stores the return information for subroutines, function calls, and exceptions. The Link
register can be accessed from either privileged or unprivileged mode.
EXC_RETURN is loaded into the LR on exception entry.
2.2.2.2.3 Program Counter (PC)
The program counter (PC) register 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.
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, bits 19:16
•Execution Program Status register (EPSR), bits 26:24, bits 15:10
•Interrupt Program Status register (IPSR), bits 7:0
The PSR, IPSR, and EPSR registers can be accessed only 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.
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. Table
2-3 shows the possible register combinations for the PSR. See the descriptions of the MRS and MSR
instructions in the Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A) for more information about how to
access the program status registers.
Table 2-3. PSR Register Combinations
RegisterTypeCombination
(1)
(2)
(1) (2)
APSR, EPSR, and IPSR
APSR and IPSR
APSR and EPSR
PSRPSR R/W
IEPSRROEPSR and IPSR
IAPSRR/W
EAPSRR/W
(1)The processor ignores writes to the IPSR bits.
(2)Reads of the EPSR bits return zero, and the processor ignores writes to these bits
2.2.2.2.5 Priority Mask Register (PRIMASK)
The PRIMASK register prevents activation of all exceptions with programmable priority. Reset, nonmaskable
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 accessible only 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 Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A) for more
information on these instructions.
2.2.2.2.6 Fault Mask Register (FAULTMASK)
The FAULTMASK register prevents activation of all exceptions except for the NMI. Exceptions should be
disabled when they might impact the timing of critical tasks. This register is accessible only 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 Cortex®-M4 Devices Generic User Guide (ARM
DUI 0553A) for more information on these instructions.
48SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
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
accessible only in privileged mode.
2.2.2.2.8 Control Register (CONTROL)
The CONTROL register controls the stack used and the privilege level for software execution when the
processor is in thread mode, and indicates whether the FPU state is active. This register is accessible only in
privileged mode.
Handler mode always uses the 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. 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 the MSP. To switch the stack pointer used in thread mode to the PSP, either use the MSR instruction to set
the ASP bit, as detailed in the Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A), or perform an
exception return to thread mode with the appropriate EXC_RETURN value.
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
Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A).
2.2.2.3 Exceptions and Interrupts
The Cortex®-M4 application processor in the CC32xx supports interrupts and system exceptions. The processor
and the 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 Section 2.2.4.7 for more information.
The NVIC registers control interrupt handling. See Section 3.2.2 for more information.
2.2.2.4 Data Types
The Cortex®-M4 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.
2.2.3 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 4GB of addressable memory.
Table 2-4 provides the memory map of the CC32xx microcontroller subsystem. In this manual, register
addresses are given as a hexadecimal increment, relative to the base address of the module, 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 Section 2.2.3.1).
The processor reserves regions of the private peripheral bus (PPB) address range for core peripheral registers
(see Chapter 3).
Note
Within the memory map, attempts to read or write addresses in reserved spaces result in a bus fault.
In addition, attempts to write addresses in the flash range also result in a bus fault.
0x0000.00000x0007.FFFFOn-chip ROM (Bootloader + DriverLib)
0x0100.00000x010F.FFFFFlash
0x2000.00000x2003.FFFFBit-banded on-chip SRAM
0x2200.00000x23FF.FFFFBit-band alias of 0x2000.0000 to 0x200F.FFFF
0x4000.00000x4000.0FFFWatchdog timer A0
0x4000.40000x4000.4FFFGPIO port A0
0x4000.50000x4000.5FFFGPIO port A1
0x4000.60000x4000.6FFFGPIO port A2
0x4000.70000x4000.7FFFGPIO port A3
0x4000.C0000x4000.CFFFUART A0
0x4000.D0000x4000.DFFFUART A1
0x4002.00000x4002.07FFI2C A0 (master)
0x4002.08000x4002.0FFFI2C A0 (slave)
0x4002.40000x4002.4FFFGPIO port A4
0x4003.00000x4003.0FFFGeneral-purpose timer A0
0x4003.10000x4003.1FFFGeneral-purpose timer A1
0x4003.20000x4003.2FFFGeneral-purpose timer A2
0x4003.30000x4003.3FFFGeneral-purpose timer A3
0x400F.70000x400F.7FFFConfiguration registers
0x400F.E0000x400F.EFFFSystem control
0x400F.F0000x400F.FFFFµDMA
0x4200.00000x43FF.FFFFBit-band alias of 0x4000.0000 to 0x400F.FFFF
0x4401.00000x4401.0FFFSD Host (master)
0x4401.80000x4401.8FFFCamera Interface
0x4401.C0000x4401.EFFFI2S (also called McASP)
0x4402.00000x4402.0FFFFlashSPI
0x4402.10000x4402.1FFFGSPI (also called APSPI)
0x4402.20000x4402.2FFFLink SPI (APPS to NWP SPI)
0x4402.50000x4402.5FFFMCU reset clock manager
0x4402.60000x4402.6FFFMCU configuration space
0x4402.E8000x4402.E8B8ADC
0xE000.00000xE000.0FFFInstrumentation trace macrocell (ITM)
0xE000.10000xE000.1FFFData watchpoint and trace (DWT)
0xE000.20000xE000.2FFFFlash patch and breakpoint (FPB)
0xE000.E0000xE000.EFFFCortex-M4 peripherals (NVIC, SysTick,SCB)
0xE004.00000xE004.0FFFTrace port interface unit (TPIU)
0xE004.10000xE004.1FFFReserved for embedded trace macrocell (ETM)
Used for external serial
flash
Used by application
processor
50SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
A bit-band region maps each word in a bit-band alias region to a single bit in the bit-band region. In Arm
®
Cortex®-M4 architecture, the bit-band regions occupy the lowest 1MB of the SRAM. Accesses to the 32-MB
SRAM alias region map to the 1-MB SRAM bit-band region, as shown in Table 2-5.
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.
The CC32xx family of Wi-Fi microcontrollers support up to 256KB of on-chip SRAM for code and data. The
SRAM starts from address 0x2000 0000.
Bit-banding for peripherals is not supported in the CC32xx.
Table 2-5. SRAM Memory Bit-Banding Regions
Address RangeMemory RegionInstruction and Data Accesses
StartEnd
0x2000.00000x2003.FFFFSRAM bit-band regionDirect accesses to this memory range behave as SRAM
0x2200.00000x23FF.FFFFSRAM bit-band aliasData accesses to this region are remapped to bit band
memory accesses, but this region is also bit addressable
through bit-band alias.
region. A write operation is performed as read-modify-write.
Instruction accesses are not remapped.
2.2.3.1.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 1 to the bit-band bit, and writing a value with bit 0 clear writes 0
to the bit-band bit.
Bits 31:1 of the alias word have no effect on the bit-band bit. Writing 0x01 has the same effect as writing 0xFF.
Writing 0x00 has the same effect as writing 0x0E.
When reading a word in the alias region, 0x0000 0000 indicates that the targeted bit in the bit-band region is
clear, and 0x0000 0001 indicates that the targeted bit in the bit-band region is set.
2.2.3.1.2 Directly Accessing a Bit-Band Region
Behavior of memory accesses describes the behavior of direct byte, halfword, or word accesses to the bit-band
regions.
The processor views memory as a linear collection of bytes numbered in ascending order from zero. For
example, bytes 0 to 3 hold the first stored word, and bytes 4 to 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-4 shows how data is stored.
Figure 2-4. Data Storage
2.2.3.3 Synchronization Primitives
The Cortex®-M4 instruction set includes pairs of synchronization primitives which provide a nonblocking
mechanism that a thread or process can use to obtain exclusive access to a memory location. Software can use
these primitives to perform an ensured read-modify-write memory update sequence or for a semaphore
mechanism.
A pair of synchronization primitives consists of:
•A load-exclusive instruction, to read the value of a memory location and request exclusive access to that
location.
•A store-exclusive instruction, to try to write to the same memory location and return a status bit to a register. If
this status bit is clear, it indicates that the thread or process gained exclusive access to the memory and the
write succeeds; if this status bit is set, it indicates that the thread or process did not gain exclusive access to
the memory and no write was performed.
The pairs of load-exclusive and store-exclusive instructions are:
•The word instructions LDREX and STREX
•The halfword instructions LDREXH and STREXH
•The byte instructions LDREXB and STREXB
Software must use a load-exclusive instruction with the corresponding store-exclusive instruction. To perform an
exclusive read-modify-write of a memory location, software must:
1. Use a load-exclusive instruction to read the value of the location.
2. Modify the value, as required.
3. Use a store-exclusive instruction to try to write the new value back to the memory location.
4. Test the returned status bit. If the status bit is clear, the read-modify-write completed successfully. If the status
bit is set, no write was performed, which indicates that the value returned at Step 1 might be out of date. The
software must retry the entire read-modify-write sequence.
52SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
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 instruction 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®-M4 includes an exclusive access monitor that tags the fact that the processor has executed a loadexclusive instruction. The processor removes its exclusive access tag if one of the following occurs:
•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 Cortex®-M4 instruction set chapter
in the Arm® Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A).
2.2.4 Exception Model
The Arm® Cortex®-M4 application processor in the CC32xx and the 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 performing of
back-to-back interrupts without the overhead of state saving and restoration.
Table 2-6 lists all exception types. Software can set eight priority levels on seven of these exceptions (system
handlers) as well as on 70 interrupts (listed in Table 2-6). Priorities on the system handlers are set with the NVIC
System Handler Priority n (SYSPRIn) registers. Interrupts are enabled through the NVIC Interrupt Set Enable n
(ENn) register and prioritized with the NVIC Interrupt Priority n (PRIn) registers. Priorities can be grouped by
splitting priority levels into preemption priorities and subpriorities. All the interrupt registers are described in
Section 3.2.2.
Internally, the highest user-programmable priority (0) is treated as fourth priority, after a reset, nonmaskable
interrupt (NMI), and a hard fault, in that order. Note that 0 is the default priority for all the programmable
priorities.
Note
After a write to clear an interrupt source, several processor cycles may pass before deassertion of the
interrupt source is acknowledged by the NVIC. 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 recognizes 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 Section 3.2.2 for more information on exceptions and interrupts.
2.2.4.1 Exception States
Each exception is in one of the following states:
•Inactive: The exception is neither active nor 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 is being serviced by the processor but has not completed. 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.
•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 nonmaskable 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. NMI in the CC32xx is reserved for
the internal system, and is not available for application usage.
•Hard Fault: A hard fault is an exception that occurs because of an error during exception processing, or
because an exception cannot be managed by any other exception mechanism. Hard faults have a fixed
priority of –1, meaning they have higher priority than any exception with configurable priority.
•Memory Management Fault: A memory-management fault is an exception that occurs because of a memoryprotection-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 active
only 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 INTCTRL
register.
•SysTick: A SysTick exception is an exception that the system timer generates when it reaches zero when
enabled to generate an interrupt. Software can also generate a SysTick exception using the 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-7 lists the interrupts on the
CC32xx application processor
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-6 lists as having configurable priority (see the
SYSHNDCTRL register and the DIS0 register).
For more information about hard faults, memory management faults, bus faults, and usage faults, see Section
2.2.5.
54SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
•Interrupt service routines (ISRs): Interrupts (IRQx) are the exceptions handled by ISRs.
•Fault handlers: Hard fault, memory-management fault, usage fault, and bus fault are fault exceptions handled
by the fault handlers.
•System handlers: NMI, PendSV, SVCall, SysTick, and the fault exceptions are all system exceptions handled
by system handlers.
2.2.4.4 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-6. Figure 2-5 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.
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 0400 to 0x3FFF FC00. When configuring the VTABLE register, the offset must be aligned on a
1024-byte boundary.
56SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
As shown in Table 2-6, all exceptions have an associated priority, with a lower assigned priority value indicating
an actual higher priority and configurable priorities for all exceptions except reset, hard fault, and NMI. If software
does not configure any priorities, then all exceptions with a configurable priority have a priority of 0.
Configurable priority values for the CC32xx implementation are in the range from 0 to 7. This means
that the reset, hard fault, and NMI exceptions (NMI is reserved for use by the system) 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]
Figure 2-5. Vector Table
Note
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.
2.2.4.6 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.
2.2.4.7 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 Section 2.2.4.6 for more
information about preemption by an interrupt. When one exception preempts another, the exceptions are
called nested exceptions.
•Return: Return occurs when the exception handler is completed, 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.
•Tail-chaining: This mechanism speeds up exception servicing. On completion of an exception handler, if a
pending exception 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. When the late-arriving exception returns from the exception handler, the
normal tail-chaining rules apply.
2.2.4.7.1 Exception Entry
Exception entry occurs when there is a pending exception with sufficient priority and either the processor is in
thread mode or the new exception has a 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 the
PRIMASK, FAULTMASK, and BASEPRI registers). 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-6 shows the Cortex®-M4 stack frame layout, which is similar to that of Armv7-M implementations
without an FPU.
58SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
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 with 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 which operation mode the processor was in before the entry occurred.
If no higher-priority exception occurs during exception entry, the processor starts executing the exception
handler and automatically changes the status of the corresponding pending interrupt to active.
If another higher-priority exception occurs during exception entry, known as late arrival, the processor starts
executing the exception handler for this exception and does not change the pending status of the earlier
exception
2.2.5 Fault Handling
Faults are a subset of the exceptions (see Section 2.2.4). The following conditions generate a fault:
•A bus error on an instruction fetch, 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 nonexecutable (XN)
2.2.5.1 Fault Types
Table 2-8 lists the types of fault, the handler used for the fault, the corresponding fault status register, and the
name of the register bit that indicates the fault has occurred.
Table 2-8. Faults
FaultHandlerFault Status RegisterBit Name
Bus error on a vector readHard faultHard Fault Status (HFAULTSTAT)VECT
Fault escalated to a hard faultHard faultHard Fault Status (HFAULTSTAT)FORCED
Default memory mismatch on
instruction access
Default memory mismatch on data
access
Default memory mismatch on
exception stacking
Default memory mismatch on
exception unstacking
Bus error during exception stackingBus faultBus Fault Status (BFAULTSTAT)BSTKE
Memory management faultMemory Management Fault Status
(MFAULTSTAT)
Memory management faultMemory Management Fault Status
(MFAULTSTAT)
Memory management faultMemory Management Fault Status
(MFAULTSTAT)
Memory management faultMemory Management Fault Status
Bus error during exception unstacking Bus faultBus Fault Status (BFAULTSTAT)BUSTKE
Bus error during instruction prefetchBus faultBus Fault Status (BFAULTSTAT)IBUS
Precise data bus errorBus faultBus Fault Status (BFAULTSTAT)PRECISE
Imprecise data bus errorBus faultBus Fault Status (BFAULTSTAT)IMPRE
Attempt to access a coprocessorUsage faultUsage Fault Status (UFAULTSTAT)NOCP
Undefined instructionUsage faultUsage Fault Status (UFAULTSTAT)UNDEF
Attempt to enter an invalid instruction
set state
Invalid EXC_RETURN valueUsage faultUsage Fault Status (UFAULTSTAT)INVPC
Illegal unaligned load or storeUsage faultUsage Fault Status (UFAULTSTAT)UNALIGN
Divide by 0Usage faultUsage Fault Status (UFAULTSTAT)DIV0
(1)Occurs on an access to an XN region.
(2)Attempting to use an instruction set other than the Thumb instruction set, or returning to a nonload-store-multiple instruction with ICI
(2)
continuation.
Usage faultUsage Fault Status (UFAULTSTAT)INVSTAT
2.2.5.2 Fault Escalation and Hard Faults
All fault exceptions except for hard fault have configurable exception priority (see SYSPRI1 in Section 3.3.1.17 ).
Software can disable execution of the handlers for these faults (see SYSHNDCTRL).
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
Section 2.2.4.
In some situations, a fault with configurable priority is treated as a hard fault. This process is called priorityescalation, 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.
•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 fault handler that is currently executing.
•An exception handler causes a fault for which the priority is the same as or lower than the exception that is
currently executing.
•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.
2.2.5.3 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-9.
Table 2-9. Fault Status and Fault Address Registers
Bus faultBus Fault Status (BFAULTSTAT) Bus Fault Address (FAULTADDR) Section 3.3.1.23
Usage faultUsage Fault Status
(UFAULTSTAT)
–Section 3.3.1.23
2.2.5.4 Lockup State
The processor enters a lockup state if a hard fault occurs when executing the NMI or hard fault handlers. When
the processor is in the lockup state, it does not execute any instructions. The processor remains in lockup state
until it is reset, an NMI occurs, or it is halted by a debugger.
The CC32xx Wi-Fi microcontroller is a multiprocessor system-on-chip. An advanced power-management
scheme has been implemented at chip level that delivers the best-in-class energy efficiency across a wide class
of application profiles, while handling the asynchronous sleep-wake requirements of multiple high-performance
processors and Wi-Fi radio subsystems. The Cortex®-M4 application processor subsystem (consisting of the
CM4 core and application peripherals) is a subset of this.
In the chip-level power-management scheme, the application program is unaware of the power state transitions
of the other subsystems. This approach insulates the user from the complexities of a multiprocessor system and
simplifies the application development process.
From the standpoint of the Cortex®-M4 application processor, CC32xx supports the SLEEP mode similar to
those in discrete microcontrollers. In addition to SLEEP mode, additional modes are offered that consume much
less power:
•Low-Power Deep-Sleep (LPDS) mode:
– Recommended for ultra-low power always-connected cloud and Wi-Fi applications
– Up to 256KB of SRAM retention and fast wakeup (<5 mS)
– When networking and Wi-Fi subsystems are disabled, the MCU draws less than 100 µA with 256KB of
SRAM retained (code and data). Total system current (including Wi-Fi and network periodic wakeup) as
low as 700 µA
– Processor and peripheral registers are not retained. Global always ON configurations at SoC level are
retained
•Hibernate (HIB) Mode:
– Recommended for ultra-low power infrequently connected cloud and Wi-Fi applications
– Ultra low current of 4 µA, including RTC
– Wake on RTC or selected GPIO
– No SRAM or logic retention. 2 × 32-bit register retention
•Shutdown Mode (choose this mode when periodic activity is required and the period between cycles is long):
– Lowest power mode of about 1 µA
– System including RTC and memories are off
– Cold boot initialization is required
LPDS and HIB modes are discussed in more detail in the Power Clock and Reset Management chapter.
Figure 2-7 shows the architecture of the CC32xx SoC level power management, especially from the application
point of view.
The Cortex®-M4 processor implementation inside the CC32xx multiprocessor SoC has a few differences when
compared to a discrete MCU. While SLEEP mode is supported, in the CC32xx this mode is limited in energy
consumption savings.
Ultra-low power applications should be architected such that time spent in LPDS or hibernate mode is
maximized. The Cortex®-M4 application processor can be configured wake up on selected events, for example
network events such as an incoming data packet, timer, or I/O pad toggle. The time spent in RUN (or ACTIVE)
state should then be minimized. The dedicated Cortex®-M4 application processor in CC32xx is particularly suited
for this mode of operation due to its advanced power management, DMA, zero wait-state multi-layer AHB
interconnect, fast execution and retention over the entire range of zero wait-state SRAM.
•SLEEP: Sleep mode stops the processor clock (clock gating).
62SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
The processor implements a version of the Thumb instruction set. Table 2-10 lists the supported instructions.
•< > 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 ARM® Cortex®-
This chapter provides information on the CC32xx implementation of the Cortex®-M4 application processor in
CC32xx peripherals, including:
•SysTick (see Section 3.2.1) – Provides a simple, 24-bit clear-on-write, decrementing, wrap-on-zero counter
with a flexible control mechanism.
•Nested Vectored Interrupt Controller (NVIC) (see Section 3.2.2) – Facilitates low-latency exception and
interrupt handling, controls power management, and implements system control registers.
•System Control Block (SCB) (see Section 3.2.3) – Provides system implementation information and system
control, including configuration, control, and reporting of system exceptions.
Table 3-1 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
AddressCore Peripheral
0xE000.E010 to 0xE000.E01FSystem timer
0xE000.E100 to 0xE000.E4EFNested vectored interrupt controller
0xE000.EF00 to 0xE000.EF03
0xE000.E008 to 0xE000.E00F
0xE000.ED00 to 0xE000.ED3F
System control block
3.2 Functional Description
This chapter provides information on the CC32xx implementation of the Cortex®-M4 application processor in
CC32xx peripherals: SysTick, NVIC, and SCB.
3.2.1 System Timer (SysTick)
SysTick is an integrated system timer which provides a simple, 24-bit clear-on-write, decrementing, wrap-onzero counter with a flexible control mechanism. The counter can be used in several different ways:
•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 measuring time to completion and time used
•An internal clock source control based on missing or 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.
When enabled, the timer counts down on each clock from the reload value to 0, 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 0, 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.
70SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
The SysTick counter reload and current value are undefined at reset; the correct initialization sequence for the
SysTick counter follows:
1. Program the value in the STRELOAD register.
2. Clear the STCURRENT register by writing any value to it.
3. Configure the STCTRL register for the required operation.
Note
When the processor is halted for debugging, the counter does not decrement.
3.2.2 Nested Vectored Interrupt Controller (NVIC)
This section describes the NVIC and the registers it uses. The NVIC supports:
•A programmable priority level of 0 to 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 nonmaskable interrupt (NMI)
The processor automatically stacks its state on exception entry and unstacks this state on exception exit, with no
instruction overhead, providing low-latency exception handling.
3.2.2.1 Level-Sensitive and Pulse Interrupts
The processor supports both level-sensitive and pulse interrupts. Pulse interrupts are also described as edgetriggered interrupts.
A level-sensitive interrupt is held asserted until the peripheral deasserts the interrupt signal. Typically, this
happens because the interrupt service routine (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 Section
3.2.2.2 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.
3.2.2.2 Hardware and Software Control of Interrupts
The Cortex®-M4 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 or
SWTRIG register.
A pending interrupt remains pending until one of the following conditions occurs:
•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.
– For a pulse interrupt, the state of the interrupt changes to INACTIVE if the state was PENDING, or to
ACTIVE if the state was ACTIVE and PENDING.
3.2.3 System Control Block (SCB)
The SCB provides system implementation information and system control, including configuration, control, and
reporting of the system exceptions.
3.3 Register Map
Table 3-2 lists the Cortex®-M4 Peripheral SysTick, NVIC, and SCB registers. The offset listed is a hexadecimal
increment to the address of the register, 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-2. Peripherals Register Map
OffsetNameTypeResetDescription
System Timer (SysTick) Registers
0x010STCTRLR/W0x0000.0000SysTick Control and Status Register
0x014STRELOADR/W–SysTick Reload Value Register
0x018STCURRENTR/WC–SysTick Current Value Register
0x100EN0R/W0x0000.0000Interrupt 0 to 31 Set Enable
0x104EN1R/W0x0000.0000Interrupt 32 to 63 Set Enable
0x108EN2R/W0x0000.0000Interrupt 64 to 95 Set Enable
0x10CEN3R/W0x0000.0000Interrupt 96 to 127 Set Enable
0x110EN4R/W0x0000.0000Interrupt 128 to 159 Set Enable
0x114EN5R/W0x0000.0000Interrupt 160 to 191 Set Enable
0x118EN6R/W0x0000.0000Interrupt 192 to 199 Set Enable
0x180DIS0R/W0x0000.0000Interrupt 0 to 31 Clear Enable
0x184DIS1R/W0x0000.0000Interrupt 32 to 63 Clear Enable
0x188DIS2R/W0x0000.0000Interrupt 64 to 95 Clear Enable
0x18CDIS3R/W0x0000.0000Interrupt 96 to 127 Clear Enable
0x190DIS4R/W0x0000.0000Interrupt 128 to 159 Clear Enable
0x194DIS5R/W0x0000.0000Interrupt 160 to 191 Clear Enable
72SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
0x198DIS6R/W0x0000.0000Interrupt 192 to 199 Clear Enable
0x200PEND0R/W0x0000.0000Interrupt 0 to 31 Set Pending
0x204PEND1R/W0x0000.0000Interrupt 32 to 63 Set Pending
0x208PEND2R/W0x0000.0000Interrupt 64 to 95 Set Pending
0x20CPEND3R/W0x0000.0000Interrupt 96 to 127 Set Pending
0x210PEND4R/W0x0000.0000Interrupt 128 to 159 Set Pending
0x214PEND5R/W0x0000.0000Interrupt 160 to 191 Set Pending
0x218PEND6R/W0x0000.0000Interrupt 192 to 199 Set Pending
0x280UNPEND0R/W0x0000.0000Interrupt 0 to 31 Clear Pending
0x284UNPEND1R/W0x0000.0000Interrupt 32 to 63 Clear Pending
0x288UNPEND2R/W0x0000.0000Interrupt 64 to 95 Clear Pending
0x28CUNPEND3R/W0x0000.0000Interrupt 96 to 127 Clear Pending
0x290UNPEND4R/W0x0000.0000Interrupt 128 to 159 Clear Pending
0x294UNPEND5R/W0x0000.0000Interrupt 160 to 191 Clear Pending
0x298UNPEND6R/W0x0000.0000Interrupt 192 to 199 Clear Pending
0x300ACTIVE0RO0x0000.0000Interrupt 0 to 31 Active Bit
0x304ACTIVE1RO0x0000.0000Interrupt 32 to 63 Active Bit
0x308ACTIVE2RO0x0000.0000Interrupt 64 to 95 Active Bit
0x30CACTIVE3RO0x0000.0000Interrupt 96 to 127 Active Bit
0x310ACTIVE4RO0x0000.0000Interrupt 128 to 159 Active Bit
0x314ACTIVE5RO0x0000.0000Interrupt 160 to 191 Active Bit
0x318ACTIVE6RO0x0000.0000Interrupt 192 to 199 Active Bit
0x400PRI0R/W0x0000.0000Interrupt 0 to 3 Priority
0x404PRI1R/W0x0000.0000Interrupt 4 to 7 Priority
0x408PRI2R/W0x0000.0000Interrupt 8 to 11 Priority
0x40CPRI3R/W0x0000.0000Interrupt 12 to 15 Priority
0x410PRI4R/W0x0000.0000Interrupt 16 to 19 Priority
0x414PRI5R/W0x0000.0000Interrupt 20 to 23 Priority
0x418PRI6R/W0x0000.0000Interrupt 24 to 27 Priority
0x41CPRI7R/W0x0000.0000Interrupt 28 to 31 Priority
0x420PRI8R/W0x0000.0000Interrupt 32 to 35 Priority
0x424PRI9R/W0x0000.0000Interrupt 36 to 39 Priority
0x428PRI10R/W0x0000.0000Interrupt 40 to 43 Priority
0x42CPRI11R/W0x0000.0000Interrupt 44 to 47 Priority
0x430PRI12R/W0x0000.0000Interrupt 48 to 51 Priority
0x434PRI13R/W0x0000.0000Interrupt 52 to 55 Priority
0x438PRI14R/W0x0000.0000Interrupt 56 to 59 Priority
0x43CPRI15R/W0x0000.0000Interrupt 60 to 63 Priority
0x440PRI16R/W0x0000.0000Interrupt 64 to 67 Priority
0x444PRI17R/W0x0000.0000Interrupt 68 to 71 Priority
0x448PRI18R/W0x0000.0000Interrupt 72 to 75 Priority
0x44CPRI19R/W0x0000.0000Interrupt 76 to 79 Priority
0x450PRI20R/W0x0000.0000Interrupt 80 to 83 Priority
0x454PRI21R/W0x0000.0000Interrupt 84 to 87 Priority
0x458PRI22R/W0x0000.0000Interrupt 88 to 91 Priority
0x45CPRI23R/W0x0000.0000Interrupt 92 to 95 Priority
0x460PRI24R/W0x0000.0000Interrupt 96 to 99 Priority
0x464PRI25R/W0x0000.0000Interrupt 100 to 103 Priority
0x468PRI26R/W0x0000.0000Interrupt 104 to 107 Priority
0x46CPRI27R/W0x0000.0000Interrupt 108 to 111 Priority
0x470PRI28R/W0x0000.0000Interrupt 112 to 115 Priority
0x474PRI29R/W0x0000.0000Interrupt 116 to 119 Priority
0x478PRI30R/W0x0000.0000Interrupt 120 to 123 Priority
0x47CPRI31R/W0x0000.0000Interrupt 124 to 127 Priority
0x480PRI32R/W0x0000.0000Interrupt 128 to 131 Priority
0x484PRI33R/W0x0000.0000Interrupt 132 to 135 Priority
0x488PRI34R/W0x0000.0000Interrupt 136 to 139 Priority
0x48CPRI35R/W0x0000.0000Interrupt 140 to 143 Priority
0x490PRI36R/W0x0000.0000Interrupt 144 to 147 Priority
0x494PRI37R/W0x0000.0000Interrupt 148 to 151 Priority
0x498PRI38R/W0x0000.0000Interrupt 152 to 155 Priority
0x49CPRI39R/W0x0000.0000Interrupt 156 to 159 Priority
0x4A0PRI40R/W0x0000.0000Interrupt 160 to 163 Priority
0x4A4PRI41R/W0x0000.0000Interrupt 164 to 167 Priority
0x4A8PRI42R/W0x0000.0000Interrupt 168 to 171 Priority
0x4ACPRI43R/W0x0000.0000Interrupt 172 to 175 Priority
0x4B0PRI44R/W0x0000.0000Interrupt 176 to 179 Priority
0x4B4PRI45R/W0x0000.0000Interrupt 180 to 183 Priority
0x4B8PRI46R/W0x0000.0000Interrupt 184 to 187 Priority
0x4BCPRI47R/W0x0000.0000Interrupt 188 to 191 Priority
0x4C0PRI48R/W0x0000.0000Interrupt 192 to 195 Priority
0x4C4PRI49R/W0x0000.0000Interrupt 196 to 199 Priority
0xF00SWTRIGWO0x0000.0000Software Trigger Interrupt
System Control Block (SCB) Registers
0x008ACTLRR/W0x0000.0000Auxiliary Control
0xD00CPUIDRO0x410F.C241CPU ID Base
0xD04INTCTRLR/W0x0000.0000Interrupt Control and State
0xD08VTABLER/W0x0000.0000Vector Table Offset
0xD0CAPINTR/W0xFA05.0000Application Interrupt and Reset Control
0xD10SYSCTRLR/W0x0000.0000System Control
0xD14CFGCTRLR/W0x0000.0200Configuration and Control
0xD18SYSPRI1R/W0x0000.0000System Handler Priority 1
0xD1CSYSPRI2R/W0x0000.0000System Handler Priority 2
0xD20SYSPRI3R/W0x0000.0000System Handler Priority 3
0xD24SYSHNDCTRLR/W0x0000.0000System Handler Control and State
0xD28FAULTSTATR/W1C0x0000.0000Configurable Fault Status
0xD2CHFAULTSTATR/W1C0x0000.0000Hard Fault Status
0xD34MMADDRR/W–Memory Management Fault Address
0xD38FAULTADDRR/W–Bus Fault Address
74SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 3-3 lists the memory-mapped Cortex registers. All register offset addresses not listed in Table 3-3 should
be considered as reserved locations and the register contents should not be modified.
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-3. Cortex Registers
OffsetAcronymRegister NameSection
8hACTLRAuxiliary ControlSection 3.3.1.1
10hSTCTRLSysTick Control and Status RegisterSection 3.3.1.2
14hSTRELOADSysTick Reload Value RegisterSection 3.3.1.3
18hSTCURRENTSysTick Current Value RegisterSection 3.3.1.4
100h to 118h EN_0 to EN_6Interrupt Set EnableSection 3.3.1.5
180h to 198h DIS_0 to DIS_6Interrupt Clear EnableSection 3.3.1.6
200h to 218h PEND_0 to PEND_6Interrupt Set PendingSection 3.3.1.7
280h to 298h UNPEND_0 to UNPEND_6Interrupt Clear PendingSection 3.3.1.8
300h to 318h ACTIVE_0 to ACTIVE_6Interrupt Active BitSection 3.3.1.9
400h to 4C4h PRI_0 to PRI_49Interrupt PrioritySection 3.3.1.10
ACTLR is shown in Figure 3-1 and described in Table 3-4.
Return to Table 3-3.
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-M4 application processor in the CC32xx, and does not normally require modification.
Note
This register can only be accessed from privileged mode.
Figure 3-1. ACTLR Register
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVED
R-0h
15141312111098
RESERVEDDISOOFPDISFPCA
R-0hR/W-0hR/W-0h
76543210
RESERVEDDISFOLDDISWBUFDISMCYC
R-0hR/W-0hR/W-0hR/W-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-4. ACTLR Register Field Descriptions
BitFieldTypeResetDescription
31-10RESERVEDR0h
9DISOOFPR/W0h
8DISFPCAR/W0h
7-3RESERVEDR0h
2DISFOLDR/W0h
Disable out-of-order floating point
N/A for the CC32xx.
Disable 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.
0h = No effect.
1h = Disables IT folding.
76SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 3-4. ACTLR Register Field Descriptions (continued)
BitFieldTypeResetDescription
1DISWBUFR/W0h
0DISMCYCR/W0h
Disable 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.
0h = No effect.
1h = Disables IT folding.
Disable Interrupts of Multiple Cycle 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.
0h = No effect.
1h = Disables interruption of load multiple and store multiple
STCTRL is shown in Figure 3-2 and described in Table 3-5.
Return to Table 3-3.
The SysTick (STCTRL) register enables the SysTick features.
Note
This register can only be accessed from privileged mode.
Figure 3-2. STCTRL Register
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVEDCOUNT
R-0hR-0h
15141312111098
RESERVED
R-0h
76543210
RESERVEDCLK_SRCINTENENABLE
R-0hR/W-0hR/W-0hR/W-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-5. STCTRL Register Field Descriptions
BitFieldTypeResetDescription
31-17RESERVEDR0h
16COUNTR0h
15-3RESERVEDR0h
2CLK_SRCR/W0h
1INTENR/W0h
Count Flag
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.
0h = The SysTick timer has not counted to 0 since the last time this
bit was read.
1h = The SysTick timer has counted to 0 since the last time this bit
was read.
Clock Source
0h = Precision internal oscillator (PIOSC) divided by 4
1h = System clock
Interrupt Enable
0h = Interrupt generation is disabled. Software can use the COUNT
bit to determine if the counter has ever reached 0.
1h = An interrupt is generated to the NVIC when SysTick counts to 0.
78SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 3-5. STCTRL Register Field Descriptions (continued)
BitFieldTypeResetDescription
0ENABLER/W0h
Enable
0h = The counter is disabled.
1h = 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.
STRELOAD is shown in Figure 3-3 and described in Table 3-6.
Return to Table 3-3.
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. To access this register correctly, the system clock must be faster than
8 MHz.
Note
This register can only be accessed from privileged mode.
STCURRENT is shown in Figure 3-4 and described in Table 3-7.
Return to Table 3-3.
The STCURRENT register contains the current value of the SysTick counter.
Note
This register can only be accessed from privileged mode.
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-7. STCURRENT Register Field Descriptions
BitFieldTypeResetDescription
31-24RESERVEDR0h
23-0CURRENTR/WC0h
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.3.1.5 EN_0 to EN_6 Register (offset = 100h to 118h) [reset = 0h]
EN_0 to EN_6 is shown in Figure 3-5 and described in Table 3-8.
The ENn registers enable interrupts and show which interrupts are enabled. Bit 0 of EN0 corresponds to
Interrupt 0; bit 31 corresponds to Interrupt 31. Bit 0 of EN1 corresponds to Interrupt 32; bit 31 corresponds to
Interrupt 63. Bit 0 of EN2 corresponds to Interrupt 64; bit 31 corresponds to Interrupt 95. Bit 0 of EN3
corresponds to Interrupt 96; bit 31 corresponds to Interrupt 127. Bit 0 of EN4 corresponds to Interrupt 128; bit 31
corresponds to Interrupt 159. Bit 0 of EN5 corresponds to Interrupt 160; bit 31 corresponds to Interrupt 191. Bit 0
of EN6 corresponds to interrupt 192; bit 7 corresponds to interrupt 199. 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.
Note
This register can only be accessed from privileged mode.
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-8. EN_0 to EN_6 Register Field Descriptions
BitFieldTypeResetDescription
31-0INTR/W0h
Interrupt Enable
A bit can only be cleared by setting the corresponding INT[n] bit in
the DISn register.
0h (W) = On a write, no effect.
0h (R) = On a read, indicates the interrupt is disabled.
1h (W) = On a write, enables the interrupt.
1h (R) = On a read, indicates the interrupt is enabled.
82SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
3.3.1.6 DIS_0 to DIS_6 Register (offset = 180h to 198h) [reset = 0h]
DIS_0 to DIS_6 is shown in Figure 3-6 and described in Table 3-9.
The DISn registers disable interrupts. Bit 0 of DIS0 corresponds to Interrupt 0; bit 31 corresponds to Interrupt 31.
Bit 0 of DIS1 corresponds to Interrupt 32; bit 31 corresponds to Interrupt 63. Bit 0 of DIS2 corresponds to
Interrupt 64; bit 31 corresponds to Interrupt 95. Bit 0 of DIS3 corresponds to Interrupt 96; bit 31 corresponds to
Interrupt 127. Bit 0 of DIS4 corresponds to Interrupt 128; bit 31 corresponds to Interrupt 159. Bit 0 of DIS5
corresponds to Interrupt 160; bit 31 corresponds to Interrupt 191. Bit 0 of DIS6 corresponds to Interrupt 192; bit
7 corresponds to Interrupt 199.
Note
This register can only be accessed from privileged mode.
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-9. DIS_0 to DIS_6 Register Field Descriptions
BitFieldTypeResetDescription
31-0INTR/W0h
Interrupt Disable EN5 (for DIS5) register; EN6 (for DIS6) register
0h (R) = On a read, indicates the interrupt is disabled.
1h (W) = On a write, no effect.
1h (R) = On a read, indicates the interrupt is enabled.
3.3.1.7 PEND_0 to PEND_6 Register (offset = 200h to 218h) [reset = 0h]
PEND_0 to PEND_6 is shown in Figure 3-7 and described in Table 3-10.
The PENDn registers force interrupts into the pending state and show which interrupts are pending. Bit 0 of
PEND0 corresponds to Interrupt 0; bit 31 corresponds to Interrupt 31. Bit 0 of PEND1 corresponds to Interrupt
32; bit 31 corresponds to Interrupt 63. Bit 0 of PEND2 corresponds to Interrupt 64; bit 31 corresponds to Interrupt
95. Bit 0 of PEND3 corresponds to Interrupt 96; bit 31 corresponds to Interrupt 127. Bit 0 of PEND4 corresponds
to Interrupt 128; bit 31 corresponds to Interrupt 159. Bit 0 of PEND5 corresponds to Interrupt 160; bit 31
corresponds to Interrupt 191. Bit 0 of PEND6 corresponds to Interrupt 192; bit 7 corresponds to Interrupt 199.
Note
This register can only be accessed from privileged mode.
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-10. PEND_0 to PEND_6 Register Field Descriptions
BitFieldTypeResetDescription
31-0INTR/W0h
Interrupt Set Pending
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 (for PEND0 to PEND3) register.
UNPEND4 (for PEND4) register
UNPEND5 (for PEND5) register
UNPEND6 (for PEND6) register
0h (W) = On a write, no effect.
0h (R) = On a read, indicates that the interrupt is not pending.
1h (W) = On a write, the corresponding interrupt is set to pending
even if it is disabled.
1h (R) = On a read, indicates that the interrupt is pending.
84SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
3.3.1.8 UNPEND_0 to UNPEND_6 Register (offset = 280h to 298h) [reset = 0h]
UNPEND_0 to UNPEND_6 is shown in Figure 3-8 and described in Table 3-11.
The UNPENDn registers show which interrupts are pending and remove the pending state from interrupts. Bit 0
of UNPEND0 corresponds to Interrupt 0; bit 31 corresponds to Interrupt 31. Bit 0 of UNPEND1 corresponds to
Interrupt 32; bit 31 corresponds to Interrupt 63. Bit 0 of UNPEND2 corresponds to Interrupt 64; bit 31
corresponds to Interrupt 95. Bit 0 of UNPEND3 corresponds to Interrupt 96; bit 31 corresponds to Interrupt 127.
Bit 0 of UNPEND4 corresponds to Interrupt 128; bit 10 corresponds to Interrupt 159. Bit 0 of UNPEND5
corresponds to Interrupt 160; bit 31 corresponds to interrupt 191. Bit 0 of UNPEND6 corresponds to Interrupt
192; bit 7 corresponds to Interrupt 199.
Note
This register can only be accessed from privileged mode.
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-11. UNPEND_0 to UNPEND_6 Register Field Descriptions
BitFieldTypeResetDescription
31-0INTR/W0h
Interrupt Clear Pending
Setting a bit does not affect the active state of the corresponding
interrupt.
0h (W) = On a write, no effect.
0h (R) = On a read, indicates that the interrupt is not pending.
1h (W) = On a write, clears the corresponding INT[n] bit in the
PEND0 (for UNPEND0 to UNPEND3) register; PEND4 (for
UNPEND4) register; PEND5 (for UNPEND5) register; PEND6 (for
UNPEND6) register; so that interrupt [n] is no longer pending.
1h (R) = On a read, indicates that the interrupt is pending.
3.3.1.9 ACTIVE_0 to ACTIVE_6 Register (offset = 300h to 318h) [reset = 0h]
ACTIVE_0 to ACTIVE_6 is shown in Figure 3-9 and described in Table 3-12.
The UNPENDn registers indicate which interrupts are active. Bit 0 of ACTIVE0 corresponds to Interrupt 0; bit 31
corresponds to Interrupt 31. Bit 0 of ACTIVE1 corresponds to Interrupt 32; bit 31 corresponds to Interrupt 63. Bit
0 of ACTIVE2 corresponds to Interrupt 64; bit 31 corresponds to Interrupt 95. Bit 0 of ACTIVE3 corresponds to
Interrupt 96; bit 31 corresponds to Interrupt 127. Bit 0 of ACTIVE4 corresponds to Interrupt 128; bit 31
corresponds to Interrupt 159. Bit 0 of ACTIVE5 corresponds to Interrupt 160; bit 31 corresponds to Interrupt 191.
Bit 0 of ACTIVE6 corresponds to Interrupt 192; bit 7 corresponds to Interrupt 199.
CAUTION
Do not manually set or clear the bits in this register.
3.3.1.10 PRI_0 to PRI_49 Register (offset = 400h to 4C4h) [reset = 0h]
PRI_0 to PRI_49 is shown in Figure 3-10 and described in Table 3-13.
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: bits 31 to 29 have interrupt [4n+3], bits
23 to 21 have interrupt [4n+2], bits 15 to 13 have interrupt [4n+1], and bits 7 to have interrupt [4n]. 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 indicates the position of the binary point that splits the priority and
subpriority fields.
Note
This register can only be accessed from privileged mode.
Figure 3-10. PRI_0 to PRI_49 Register
31302928272625242322212019181716
INTDRESERVEDINTCRESERVED
R/W-0hR-0hR/W-0hR-0h
1514131211109876543210
INTBRESERVEDINTARESERVED
R/W-0hR-0hR/W-0hR-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-13. PRI_0 to PRI_49 Register Field Descriptions
BitFieldTypeResetDescription
31-29INTDR/W0h
28-24RESERVEDR0h
23-21INTCR/W0h
20-16RESERVEDR0h
15-13INTBR/W0h
12-8RESERVEDR0h
7-5INTAR/W0h
4-0RESERVEDR0h
Interrupt Priority for Interrupt [4n+3]
This field holds a priority value, 0-7, for the interrupt with the number
[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 corresponding interrupt.
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.
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.
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.
CPUID is shown in Figure 3-11 and described in Table 3-14.
Return to Table 3-3.
The CPUID register contains the ARM Cortex-M4 processor part number, version, and implementation
information.
Note
This register can only be accessed from privileged mode.
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-15. INTCTRL Register Field Descriptions
BitFieldTypeResetDescription
31NMISETR/W0h
30-29RESERVEDR0h
28PENDSVR/W0h
27UNPENDSVW0h
NMI Set 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.
0h (W) = On a write, no effect.
0h (R) = On a read, indicates an NMI exception is not pending.
1h (W) = On a write, changes the NMI exception state to pending.
1h (R) = On a read, indicates an NMI exception is pending.
PendSV Set 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.
0h (W) = On a write, no effect.
0h (R) = On a read, indicates a PendSV exception is not pending.
1h (W) = On a write, changes the PendSV exception state to
pending.
1h (R) = On a read, indicates a PendSV exception is pending.
PendSV Clear Pending
This bit is write onl on a register read, its value is unknown.
0h = On a write, no effect.
1h = On a write, removes the pending state from the PendSV
Table 3-15. INTCTRL Register Field Descriptions (continued)
BitFieldTypeResetDescription
26PENDSTSETR/W0h
25PENDSTCLRW0h
24RESERVEDR0h
23ISRPRER0h
22ISRPENDR0h
21-20RESERVEDR0h
SysTick Set Pending
This bit is cleared by writing a 1 to the PENDSTCLR bit.
0h (W) = On a write, no effect.
0h (R) = On a read, indicates a SysTick exception is not pending.
1h (W) = On a write, changes the SysTick exception state to
pending.
1h (R) = On a read, indicates a SysTick exception is pending.
SysTick Clear Pending
This bit is write only on a register read, its value is unknown.
0h = On a write, no effect.
1h = On a write, removes the pending state from the SysTick
exception.
Debug Interrupt Handling
This bit is only meaningful in debug mode, and reads as zero when
the processor is not in debug mode.
0h = The release from halt does not take an interrupt.
1h = The release from halt takes an interrupt.
Interrupt Pending
This bit provides status for all interrupts excluding NMI and faults.
0h = No interrupt is pending.
1h = An interrupt is pending.
90SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 3-15. INTCTRL Register Field Descriptions (continued)
BitFieldTypeResetDescription
19-12VECPENDR0h
11
RETBASER0h
10-8RESERVEDR0h
7-0VECACTR0h
Interrupt Pending Vector Number
This field contains the exception number of the highest priority
pending 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.
Return to Base
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).
0h = There are preempted active exceptions to execute.
1h = There are no active exceptions, or the currently executing
exception is the only active exception.
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.
VTABLE is shown in Figure 3-13 and described in Table 3-16.
Return to Table 3-3.
The VTABLE register indicates the offset of the vector table base address from memory address 0x0000.0000.
Note
This register can only be accessed from privileged mode.
APINT is shown in Figure 3-14 and described in Table 3-17.
Return to Table 3-3.
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. 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
This register can only be accessed from privileged mode.
Note
Determining preemption of an exception uses only the group priority field.
PRIGROUP Bit Field = Binary Point = Group Priority Field = Subpriority Field = Group Priorities =
Subpriorities
0h-4h = bxxx = [7:5] = None = 8 = 1
5h = bxx.y = [7:6] = [5] = 4 = 2
6h = bx.yy = [7] = [6:5] = 2 = 4
7h = b.yyy = None = [7:5] = 1 = 8
INTx field showing the binary point. An x denotes a group priority field bit, and a y denotes a
subpriority field bit.
Figure 3-14. APINT Register
3130292827262524
VECTKEY
R/W-FA05h
2322212019181716
VECTKEY
R/W-FA05h
15141312111098
ENDIANESSRESERVEDPRIGROUP
R-0hR-0hR/W-0h
76543210
RESERVEDSYSRESREQVECTCLRACTVECTRESET
R-0hW-0hW-0hW-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
SYSCTRL is shown in Figure 3-15 and described in Table 3-18.
Return to Table 3-3.
The SYSCTRL register controls features of entry to and exit from low-power state.
Note
This register can only be accessed from privileged mode.
CFGCTRL is shown in Figure 3-16 and described in Table 3-19.
Return to Table 3-3.
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
•Access to the SWTRIG register by unprivileged software.
Note
This register can only be accessed from privileged mode.
Figure 3-16. CFGCTRL Register
3130292827262524
RESERVED
R-0h
2322212019181716
RESERVED
R-0h
15141312111098
RESERVEDSTKALIGNBFHFMIGN
R-0hR/W-1hR/W-0h
76543210
RESERVEDDIV0UNALIGNEDRESERVEDMANIPENDBASETHR
R-0hR/W-0hR/W-0hR-0hR/W-0hR/W-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-19. CFGCTRL Register Field Descriptions
BitFieldTypeResetDescription
31-10RESERVEDR0h
9STKALIGNR/W1h
8BFHFMIGNR/W0h
7-5RESERVEDR0h
Stack Alignment on Exception Entry
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.
0h = The stack is 4-byte aligned.
1h = The stack is 8-byte aligned.
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.
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.
0h = Data bus faults caused by load and store instructions cause a
lock-up.
1h = Handlers running at priority -1 and -2 ignore data bus faults
caused by load and store instructions.
96SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
Table 3-19. CFGCTRL Register Field Descriptions (continued)
BitFieldTypeResetDescription
4DIV0R/W0h
3UNALIGNEDR/W0h
2RESERVEDR0h
1MANIPENDR/W0h
0BASETHRR/W0h
Trap on Divide by 0
This bit enables faulting or halting when the processor executes an
SDIV or UDIV instruction with a divisor of 0.
0h = Do not trap on divide by 0. A divide by zero returns a quotient of
0.
1h = Trap on divide by 0.
Trap on Unaligned Access
Unaligned LDM, STM, LDRD, and STRD instructions always fault
regardless of whether UNALIGNED is set.
0h = Do not trap on unaligned halfword and word accesses.
1h = Trap on unaligned halfword and word accesses. An unaligned
access generates a usage fault.
Allow Main Interrupt Trigger
0h = Disables unprivileged software access to the SWTRIG register.
1h = Enables unprivileged software access to the SWTRIG register.
Thread State Control
0h = The processor can enter Thread mode only when no exception
is active.
1h = The processor can enter Thread mode from any level under the
SYSPRI1 is shown in Figure 3-17 and described in Table 3-20.
Return to Table 3-3.
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.
Note
This register can only be accessed from privileged mode.
Figure 3-17. SYSPRI1 Register
31302928272625242322212019181716
RESERVEDUSAGERESERVED
R-0hR/W-0hR-0h
1514131211109876543210
BUSRESERVEDMEMRESERVED
R/W-0hR-0hR/W-0hR-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-20. SYSPRI1 Register Field Descriptions
BitFieldTypeResetDescription
31-24RESERVEDR0h
23-21USAGER/W0h
20-16RESERVEDR0h
15-13BUSR/W0h
12-8RESERVEDR0h
7-5MEMR/W0h
4-0RESERVEDR0h
Usage Fault Priority
This field configures the priority level of the usage fault. Configurable
priority values are in the range 0-7, with lower values having higher
priority.
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.
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.
98SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020
SYSPRI2 is shown in Figure 3-18 and described in Table 3-21.
Return to Table 3-3.
The SYSPRI2 register configures the priority level, 0 to 7 of the SVCall handler. This register is byte-accessible.
Note
This register can only be accessed from privileged mode.
SYSPRI3 is shown in Figure 3-19 and described in Table 3-22.
Return to Table 3-3.
The SYSPRI3 register configures the priority level, 0 to 7 of the SysTick exception and PendSV handlers. This
register is byte-accessible.
Note
This register can only be accessed from privileged mode.
Figure 3-19. SYSPRI3 Register
31302928272625242322212019181716
TICKRESERVEDPENDSVRESERVED
R/W-0hR-0hR/W-0hR-0h
1514131211109876543210
RESERVEDDEBUGRESERVED
R-0hR/W-0hR-0h
LEGEND: R/W = Read/Write; R = Read only; W1toCl = Write 1 to clear bit; -n = value after reset
Table 3-22. SYSPRI3 Register Field Descriptions
BitFieldTypeResetDescription
31-29TICKR/W0h
28-24RESERVEDR0h
23-21PENDSVR/W0h
20-8RESERVEDR0h
7-5DEBUGR/W0h
4-0RESERVEDR0h
SysTick Exception Priority
This field configures the priority level of the SysTick exception.
Configurable priority values are in the range 0-7, with lower values
having higher priority.
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.
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.
100SimpleLink™ Wi-Fi® CC323xSWRU543A – JANUARY 2019 – REVISED SEPTEMBER 2020