Texas Instruments TMS320F20x/F24x DSP manual AR0, AR1, AR2, AR6, Maxpgm, VER0, Wrcmnd, Wrexe, Stop

Page 58

Assembly Source for Algorithms

PRELIMINARY

* programmed bits. For example, if the flash is programmed *

*using a CLKOUT period of 50 ns, the flash can be read back

*

reliably over the CLKOUT period range of 50 ns to 150 ns *

* (6.67 MHz±20 MHz). The programming pulse-duration is

*

* 100 us, and a maximum of 150 pulses is applied per row.

*

*

 

 

*

* The following resources are used for temporary storage:

*

*

AR0

Used for comparisons

*

*

AR1

Used for pgm pulse count

*

*

AR2

Used for row banz loop.

*

*

AR6

Parameter passed to Delay

*

*

FL_ADRS

Used for flash address

*

*

FL_DATA

Used for flash data.

*

*

FL_ST

Used for flash start address

*

*

BASE_0

Used for row±done flag

*

*

BASE_1

Used for row start address

*

*

SPAD1

Flash commands

*

*

SPAD2

Flash commands

*

*

 

 

**

**************************************************************

 

.include ºsvar20.hº

*

 

 

 

MAX_PGM

.set

150

;Only allow 150 pulses per row.

VER0

.set

010h

;VER0 command.

WR_CMND

.set

4

;Write command.

WR_EXE

.set

045h

;Write EXEBIN command.

STOP

.set

0

;Reset command.

 

.def

GCLR

 

 

.ref

PROTECT,SEG_ST,SEG_END

 

.ref

DELAY,REGS,ARRAY

.sect

ºfl_clrº

 

*************************************************************

*

GCLR: This routine performs a clear operation on the

*

* flash array defined by the FL_ST variable. The segments

*

* to be cleared are defined by the SEG_ST, SEG_END, and

*

*

PROTECT variables.

*

* The following resources are used for temp storage:

*

*

AR0

Used for comparisons

*

*

AR1

Used for pgm pulse count

*

*

AR2

Used for row banz loop

*

*

FL_ADRS

Used for flash address

*

*

FL_DATA

Used for flash data

*

*

BASE_0

Used for row±done flag

*

*

BASE_1

Used for row start address

*

*

BASE_2

Used for byte mask.

*

*************************************************************

GCLR:

 

 

SETC

INTM

;Disable all ints.

CLRC

SXM

;Disable sign extension.

SPLK

#0,ERROR

;Reset error flag

LACL

SEG_ST

;Get segment start address.

SACL

FL_ADRS

;Save as current address.

AND

#04000h

;Get array start address.

A-6

PRELIMINARY

Image 58
Contents Literature Number SPRU282 September Important Notice Read This First Preliminary Related Documentation From Texas Instruments Preliminary If You Need Assistance Viii Contents Contents Figures Tables Introduction Basic Concepts of Flash Memory Technology TMS320F20x/F24x Flash Module ±1. TMS320 Devices With On-Chip Flash Eeprom±1. TMS320F20x/F24x Program Space Memory Maps Benefits of Embedded Flash Memory in a DSP System Preliminary Flash Operations and Control Registers TopicPreliminary Flash Operations and Control Registers ±1. Flash Memory Logic Levels During Programming and Erasing Accessing the Flash Module ±2. Memory Maps in Register and Array Access Modes 1 TMS320F206 Flash Access-Control Register2 TMS320F24x Flash Access-Control Register OUTFlash Module Control Registers Segment Control Register Segctr±3. Segment Control Register Field Descriptions Flash Test Register TST Write Address Register WadrsWrite Data Register Wdata Read Modes Program Operation Erase Operation Recovering From Over-Erasure Flash-Write Operation Reading From the Flash Array Protecting the ArrayAlgorithm Implementations Software Considerations How the Algorithms Fit Into the Program-Erase-Reprogram Flow ±1. Algorithms in the Overall Flow Programming or Clear Algorithm ±2. The Programming Algorithm in the Overall FlowPreliminary ±3. Programming or Clear Algorithm Flow Step Action Description Mask the data to program Preliminary Erase Algorithm ±4. Erase Algorithm in the Overall Flow±2. Steps for Applying One Erase Pulse Preliminary ±5. Erase Algorithm Flow Flash-Write Algorithm ±6. Flash-Write Algorithm in the Overall Flow±3. Steps for Applying One Flash-Write Pulse ±7. Flash-Write Algorithm Flow Preliminary Preliminary Assembly Source Listings Program Examples Assembly Source for Algorithms Header File for Constants and Variables, SVAR20.HBASE+0 ErrorBASE0 BASE1D7K ConstantsD5K DloopSegend Clear Algorithm, SCLR20.ASMSegst ProtectAR0 Gclr PROTECT,SEGST,SEGEND DELAY,REGS,ARRAYSplk #0,ERROR AR1Lacl Fladrs Exit Splk #1,ERRORSacl Flst NewrowShutdown Write Operation Tblw SPAD1 Execute Command LAR Activate Write BIT Tblw SPAD1 Execute Command LARSET Delay Call DELAY,*,AR6 Wait Stop Write Operation Splk Tblr FldataLacl BASE2 Tblw SPAD1 Execute Command LARPrgbyte Call SETRDVER0 Bcnd PBDONE,EQErase Algorithm, SERA20.ASM Inverse Erase Command Word Erase Command WordErase Exebin Command Word Flash Write Command WordCall Setmode Clrc OVMSacl Flend XoreraseBldd Splk #STOP,BASE0Inverase Splk #INVER,BASE0 Call Setmode Nextivers Lacl BASE1Flash Stop command, and Ffff for Wdata Flash-Write Algorithm, SFLW20.ASM Flws MaxflwBldd #FLST,BASE1 Bcnd Call Array Access Flash Array DoneCall DELAY,*,AR6 Flwrite SplkLAR AR0,#MAXFLW Cmpr Setmode Call Lacl Tblw LAR Call Call RETProgramming Algorithm, SPGM20.ASM AR4 PROTECT,DELAY,REGS,ARRAYAR3 GpgmjMask ALL Interrupts Setc Intm Globally Mask ALL Interrupts Splk #0,ERRORGpgmj Splk SUB Sacl BASE4Lacl Fladrs Newrow Rowdone Lacl FladrsBcnd DONE, GT Adjrow NEGShut Down Write Operation Tblw SPAD1 Execute Command LAR SETRDVER0 Call Regs Access Flash RegistersBcnd PBEND,EQ XOR FldataPbend RET Subroutines Used By All Four Algorithms, SUTILS20.ASM OUT SPAD2,F24XACCS OUT SPAD2,FACCESS0SPAD2,FACCESS1 Lacc Flst SUBCallable Interface to Flash Algorithms PARMS+1 GclrSEGST,SEGEND,PROTECT PARMS+2Arstack Lacl ErrorErsparams ArprotectLAR AR1,SVAR1 Sacl ErscountCall Flws 1PROTECTPopd *+ Call GpgmjSample Assembly Code to Erase and Reprogram the TMS320F206 Assembly Code for TMS320F206PARMS+1 SUB Memory Psaram Block B2Sections DLY PsaramSample C Code to Erase and Reprogram the TMS320F206 Linker Command File for TMS320F206 Sample C Code BLKB2 FLASH0FLASH1 Block B2 DsaramSample Assembly Code to Erase and Reprogram the TMS320F240 Assembly Code for TMS320F240CKCR0 RticrWdcr CKCR1Sacl Syssr LDP #DPPF1PORRST, PLLRST, Illrst SWRST, Wdrst Lacl Syssr Accl = Syssr LDP #PARMS SplkDaram LDP #PARMS Extram Linker Command File for TMS320F240 Sample Assembly CodeB0PGM Extram 0 /******Delay Subroutine Rev1.003/98 JGC Linker Command File for TMS320F240 Sample C Code Block B2 Dsram B0DATCompute Length Function for Disabling TMS320F240 Watchdog TimerLacl Wdcr Pshd Functions for Initializing the TMS320F240Sacl Wdcr SyscrSacl Wdtcr Index Assembly code SERA2x.ASM Described 10 to Margin Role in single program pulse WRITE/ERASE field Described