M58LT128HST, M58LT128HSB
Flowcharts and pseudo codes
Figure 27. Buffer Enhanced Factory Program flowchart and pseudo code
Buffer_Enhanced_Factory_Program_Command
SETUP PHASE
Start
(start_address, DataFlow[]) {
Write 80h to
Address WA1
writeToFlash (start_address, 0x80) ;
Write D0h to
Address WA1
writeToFlash (start_address, 0xD0) ;
do {
Read Status
Register
do {
status_register = readFlash (start_address);
NO
SR7 = 0
YES
if (status_register.SR4==1) { /*error*/
if (status_register.SR3==1) error_handler ( ) ;/*V
if (status_register.SR1==1) error_handler ( ) ;/* Protected Block */
error */
PP
NO
}
PROGRAM AND
VERIFY PHASE
Initialize count
X = 0
SR4 = 1
while (status_register.SR7==1)
x=0; /* initialize count */
do {
Write PDX
Address WA1
Read Status Register
SR3 and SR1for errors
writeToFlash (start_address, DataFlow[x]);
Increment Count
X = X + 1
Exit
x++;
NO
X = 32
YES
}while (x<32)
do {
Read Status
Register
status_register = readFlash (start_address);
}while (status_register.SR0==1)
NO
NO
SR0 = 0
YES
Last data?
} while (not last data)
YES
Write FFFFh to
Address = NOT WA1
writeToFlash (another_block_address, FFFFh)
EXIT PHASE
Read Status
Register
do {
status_register = readFlash (start_address)
NO
SR7 = 1
YES
}while (status_register.SR7==0)
full_status_register_check();
Full Status Register
Check
End
AI12898
}
99/110