EasyManua.ls Logo

Texas Instruments MSP430x1xx - Flash Memory Access During Write or Erase

Texas Instruments MSP430x1xx
432 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Flash Memory Operation
5-14
Flash Memory Controller
5.3.4 Flash Memory Access During Write or Erase
When any write or any erase operation is initiated from RAM and while
BUSY=1, the CPU may not read or write to or from any flash location.
Otherwise, an access violation occurs, ACCVIFG is set, and the result is
unpredictable. Also if a write to flash is attempted with WRT=0, the ACCVIFG
interrupt flag is set, and the flash memory is unaffected.
When a byte/word write or any erase operation is initiated from within flash
memory, the flash controller returns op-code 03FFFh to the CPU at the next
instruction fetch. Op-code 03FFFh is the JMP PC instruction. This causes the
CPU to loop until the flash operation is finished. When the operation is finished
and BUSY=0, the flash controller allows the CPU to fetch the proper op-code
and program execution resumes.
The flash access conditions while BUSY=1 are listed in Table 5−3.
Table 5−3.Flash Access While BUSY = 1
Flash
Operation
Flash
Access
WAIT Result
Read 0 ACCVIFG = 0. 03FFFh is the value read
Any erase, or
Byte/word write
Write 0 ACCVIFG = 1. Write is ignored
Any erase, or
Byte/word write
Instruction
fetch
0 ACCVIFG = 0. CPU fetches 03FFFh. This
is the JMP PC instruction.
Any 0 ACCVIFG = 1, LOCK = 1
Read 1 ACCVIFG = 0, 03FFFh is the value read
Block write
Write 1 ACCVIFG = 0, Write is ignored
Instruction
fetch
1 ACCVIFG = 1, LOCK = 1
All interrupt sources should be disabled before initiating any flash operation.
If an enabled interrupt were to occur during a flash operation, the CPU would
fetch 03FFFh as the address of the interrupt service routine. The CPU would
then execute the JMP PC instruction while BUSY=1. When the flash operation
finished, the CPU would begin executing code at address 03FFFh, not the
correct address for interrupt service routine.

Table of Contents

Related product manuals