Texas Instruments TMS320F20x/F24x DSP Computer Drive User Manual


 
C-Callable Interface to Flash Algorithms
PRELIMINARY
A-28
PRELIMINARY
;**Variables included from flash algorithms.
.include ”svar20.h” ;Variable declarations
.ref GCLR ;References clear algo.
.ref GPGMJ ;References program algo.
.ref GERS ;References erase algo.
.ref FLWS ;References flash–write algo.
;**Parameters used by flash algorithms.
.def PRG_bufaddr, PRG_paddr
.def PRG_length, PARMS
.def SEG_ST,SEG_END,PROTECT
*************************************************************
VARS: .usect ”PRG_data”,16 ;This is an uninitialized data *
;section required by the standard *
;flash algos for temporary *
;variables. Pointers to this *
;space are hardcoded in SVAR20.H, *
;and variables are init’d at *
;run time. *
*************************************************************
PARMS: .usect ”PRG_parm”,10 ;This is an uninitialized data *
;section used for temporary *
;variables and for passing *
;parameters to the flash *
;algorithms. *
*************************************************************
PROTECT .set PARMS ;Segment enable bits. *
*************************************************************
***** Parameters needed for Programming algorithm. ********
*************************************************************
PRG_bufaddr .set PARMS+1 ;Addr of buffer for pgm data *
PRG_paddr .set PARMS+2 ;First flash addr to program *
PRG_length .set PARMS+3 ;Length of block to program *
*************************************************************
** Parameters needed for CLEAR, ERASE, and FLW algorithms. *
*************************************************************
SEG_ST .set PARMS+4 ;Segment start address. *
SEG_END .set PARMS+5 ;Segment end address. *
*************************************************************
**** Other misc variables. ****
*************************************************************
ERS_COUNT .set PARMS+6 ;Used for erase fail count. *
SV_AR1 .set PARMS+7 ;Used to save AR1. *
**************************************************************
.sect ”PRG_text”
**********************************************************
* function erase(PROTECT,SEG_ST,SEG_END) *
* Status is returned in the accumulator. *
* 0 = Fail,1 = Pass *
**********************************************************
* This function performs the clear and erase operation *
* on the ’F2XX flash. If the erase operation fails, the *
* flash–write operation is used to try to recover from *
* depletion. If the array recovers, the entire process *
* (clr+ers+flw) is repeated a maximum of 10 times. The *
* return value indicates the status. If this function *