
34
S29GL-P MirrorBit
 Flash Family
S29GL-P_00_A7 November 8, 2007
D a t a
S h e e t
( P r e l i m i n a r y )
7.7.6
Program Suspend/Program Resume Commands 
The Program Suspend command allows the system to interrupt an embedded programming operation or a 
“Write to Buffer” programming operation so that data can read from any non-suspended sector. When the 
Program Suspend command is written during a programming process, the device halts the programming 
operation within 15
μs maximum (5
μs typical) and updates the status bits. Addresses are “don't-cares” when 
writing the Program Suspend command. 
After the programming operation has been suspended, the system can read array data from any non-
suspended sector. The Program Suspend command may also be issued during a programming operation 
while an erase is suspended. In this case, data may be read from any addresses not within a sector in Erase 
Suspend or Program Suspend. If a read is needed from the Secured Silicon Sector area, then user must use 
the proper command sequences to enter and exit this region. 
The system may also write the Autoselect Command Sequence when the device is in Program Suspend 
mode. The device allows reading Autoselect codes in the suspended sectors, since the codes are not stored 
in the memory array. When the device exits the Autoselect mode, the device reverts to Program Suspend 
mode, and is ready for another valid operation. See 
Autoselect
  on page 21
 for more information. 
After the Program Resume command is written, the device reverts to programming. The system can 
determine the status of the program operation using the write operation status bits, just as in the standard 
program operation. See 
Write Operation Status
  on page 36
 for more information.
The system must write the Program Resume command (address bits are “don't care”) to exit the Program 
Suspend mode and continue the programming operation. Further writes of the Program Resume command 
are ignored. Another Program Suspend command can be written after the device has resumed programming.
Software Functions and Sample Code
The following is a C source code example of using the program suspend function. Refer to the 
Spansion Low 
Level Driver User’s Guide
 (available on 
www.spansion.com
) for general information on Spansion Flash 
memory software development guidelines.
/* Example: Program suspend command */
  *( (UINT16 *)base_addr ) = 0x00B0;   /* write suspend command           */
The following is a C source code example of using the program resume function. Refer to the 
Spansion Low 
Level Driver User’s Guide
 (available on 
www.spansion.com
) for general information on Spansion Flash 
memory software development guidelines.
/* Example: Program resume command */
  *( (UINT16 *)base_addr ) = 0x0030;   /* write resume command            */
Table 7.12  
Program Suspend
(LLD Function = lld_ProgramSuspendCmd)
Cycle
Operation
Word Address
Data
1
Write
Base + XXXh
00B0h
Table 7.13  
Program Resume
(LLD Function = lld_ProgramResumeCmd)
Cycle
Operation
Word Address
Data
1
Write
Base + XXXh
0030h