Introduction
524
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
Flash Controller A (FLCTL_A)
10.1 Introduction
The flash memory is byte, word (4 bytes), and full-word (16 bytes) addressable and programmable. The
flash controller acts as the control and access interface between software (application) and the various
functions supported by the flash memory on the device. The flash controller features include:
•
Internal programming voltage generation
•
Byte, word (4 bytes), full-word (16 bytes), and burst (up to 4x16 bytes) programmable
•
Ultra-low-power operation
•
Sector erase and mass erase
•
Optimized read operations from the flash (for program fetches or data reads)
•
Configurable write and erase protection per sector
FLCTL_A differs from FLCTL only in terms of the size of the addressable flash memory. FLCTL can
address flash main memory up to 256KB and information memory up to 16KB. FLCTL_A can address
flash main memory up to 2048KB and information memory up to 32KB. See the device-specific data sheet
for details on the available flash memory and the flash controller used in the device.
10.1.1 Flash Memory Organization
The flash memory on the device consists of two independent equal sized memory banks, each containing
the following regions
•
Main memory region: This is the primary code memory and is intended for code and data for the user
application.
•
Information memory region: Intended for TI or customer code or data. Some of the information memory
sectors are used by TI, and others are available for users. Details on information memory are available
in the device-specific data sheet.
10.1.2 Flash Controller Address Mapping
The two memory regions implemented in the flash are equally divided between the two flash banks. The
following example is for the MSP432P4111I MCU, which has 2048KB of flash main memory and 32KB of
information memory.
•
Main Memory, 2048KB, mapped from 0h to 1F_FFFFh
–
Accesses from 0h to F_FFFFh are mapped to Bank0. All Bank0 parameters and settings (through
configuration registers) apply to these accesses.
–
Accesses from 10_0000h to 1F_FFFFh are mapped to Bank1. All Bank1 parameters and settings
(through configuration registers) apply to these accesses.
•
Information Memory, 32KB, mapped from 20_0000h to 20_7FFFh
–
Accesses from 20_0000h to 20_3FFFh are mapped to Bank0. All Bank0 parameters and settings
(through configuration registers) apply to these accesses.
–
Accesses from 20_4000h to 20_7FFFh are mapped to Bank1. All Bank1 parameters and settings
(through configuration registers) apply to these accesses.
Any access that does not fall within a valid flash memory region returns a bus error response.
NOTE:
The previous address mapping example is for illustration purposes ONLY. See the
appropriate data sheet for the flash region addresses on the device of interest.
10.1.3 Flash Controller Access Privileges
The flash memory on the device can be accessed by the CPU, the DMA, or through the debugger (JTAG
or SW):
•
CPU (Instruction and Data buses)
–
The CPU can issue instruction fetches to the entire flash memory region
–
The CPU can issue data reads and writes to the entire flash memory region (unless the access is