Texas Instruments TMS320F20x/F24x DSP manual Block B2 Dsram, B0DAT

Page 101

PRELIMINARY

Using the Algorithms With C Code to Erase and Reprogram the 'F240

/************************Command Line Options**************************/

±cr

/*Use Ram init model.

*/

±heap 0x0

/*No heap needed for this example.

*/

±stack 0x96

/*150 word stack is enough for this example.

*/

±x

/*Force re±reading of libraries.

*/

±l c:\dsptools\fix\rts2xx.lib ±o sample24.out

±m sample24.map

/*****************************Input Files******************************/

sample24.obj

/*User C±code with calls to erase() and program() */

c240init.obj

/*C±callabe asm function to init '240 regs

*/

wdtoff.obj

/*C±callable asm function to disable the wdt

*/

flash.obj

/*C±callable interface to standard algorithms.

*/

algos\spgm20.obj

/*Standard Programming algorithms.

*/

algos\sclr20.obj

/*Standard Clear algorithm.

*/

algos\sera20.obj

/*Standard Erase algorithm.

*/

algos\sflw20.obj

/*Standard Flash±write algorithm.

*/

algos\sutils20.obj

/*Subroutines used by standard algorithms.

*/

/*****************************Memory Map*******************************/

MEMORY

{

PAGE 0: /* PM ± Program memory */

FLASH0: origin = 0x0000, length = 0x4000

EXTRAM: origin = 0x8000, length = 0x400 /*Use 1K of EXT SRAM for PROGRAM*/

B0: origin = 0xfe00, length = 0x100

PAGE 1: /* DM ± Data memory */

 

 

 

 

BLK_B2:

origin = 0x60, length = 0x20

/*BLOCK B2

*/

DSRAM:

 

origin = 0x8000, length = 0x4000

/*External data RAM */

B0DAT:

 

origin = 0x200, length = 0x100

/*B0 RAM

*/

 

 

 

 

 

/*(Used for pgm data buffer)*/

B1:

 

origin = 0x300, length = 0x100

/* B1 RAM (Used for algo vars )*/

}

 

 

 

 

 

 

 

/*************************Section Allocation***************************/

SECTIONS

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

.text

:{} > EXTRAM PAGE 0

/* sample.c */

 

 

/*All these sections are for flash programming.*/

 

 

PRG_text

: {} > EXTRAM PAGE 0

/**erase() and program()*****/

 

 

 

 

 

/*****from flash.asm file****/

 

fl_prg : {} > EXTRAM

PAGE 0

/**Programming Algorithm*****/

 

fl_clr : {} > EXTRAM

PAGE 0

/******Clear Algorithm*******/

 

fl_ers : {} > EXTRAM

PAGE 0

/******Erase Algorithm*******/

 

fl_wrt : {} > EXTRAM

PAGE 0

/****Flash±write Algorithm***/

 

DLY

: {} > EXTRAM

PAGE 0

/******Delay Subroutine******/

 

REG

: {} > EXTRAM

PAGE 0

/*******Regs Subroutine******/

 

ARY

: {} > EXTRAM

PAGE 0

/******Array Subroutine******/

 

PRG_data

: {} > B1

PAGE 1

/*Reserved in flash.asm for**/

 

 

 

 

 

/***flash algo variables.****/

 

PRG_parm

: {} > B1

PAGE 1

/*Reserved in flash.asm for**/

 

 

 

 

 

/*parameter passing to algos*/

 

/*End of sections for flash programming.

*/

 

PRELIMINARY

Assembly Source Listings and Program Examples

A-49

Image 101
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 ±1. TMS320 Devices With On-Chip Flash Eeprom TMS320F20x/F24x Flash Module±1. TMS320F20x/F24x Program Space Memory Maps Benefits of Embedded Flash Memory in a DSP System Preliminary Topic Flash Operations and Control RegistersPreliminary Flash Operations and Control Registers ±1. Flash Memory Logic Levels During Programming and Erasing Accessing the Flash Module 1 TMS320F206 Flash Access-Control Register ±2. Memory Maps in Register and Array Access ModesOUT 2 TMS320F24x Flash Access-Control RegisterSegment Control Register Segctr Flash Module Control Registers±3. Segment Control Register Field Descriptions Write Address Register Wadrs Flash Test Register TSTWrite Data Register Wdata Read Modes Program Operation Erase Operation Recovering From Over-Erasure Flash-Write Operation Protecting the Array Reading From the Flash ArrayAlgorithm Implementations Software Considerations How the Algorithms Fit Into the Program-Erase-Reprogram Flow ±1. Algorithms in the Overall Flow ±2. The Programming Algorithm in the Overall Flow Programming or Clear AlgorithmPreliminary ±3. Programming or Clear Algorithm Flow Step Action Description Mask the data to program Preliminary ±4. Erase Algorithm in the Overall Flow Erase Algorithm±2. Steps for Applying One Erase Pulse Preliminary ±5. Erase Algorithm Flow ±6. Flash-Write Algorithm in the Overall Flow Flash-Write Algorithm±3. Steps for Applying One Flash-Write Pulse ±7. Flash-Write Algorithm Flow Preliminary Preliminary Assembly Source Listings Program Examples Header File for Constants and Variables, SVAR20.H Assembly Source for AlgorithmsBASE0 ErrorBASE+0 BASE1D5K ConstantsD7K DloopSegst Clear Algorithm, SCLR20.ASMSegend ProtectSplk #0,ERROR Gclr PROTECT,SEGST,SEGEND DELAY,REGS,ARRAYAR0 AR1Sacl Flst Exit Splk #1,ERRORLacl Fladrs NewrowSET Delay Call DELAY,*,AR6 Wait Stop Write Operation Splk Activate Write BIT Tblw SPAD1 Execute Command LARShutdown Write Operation Tblw SPAD1 Execute Command LAR Tblr FldataPrgbyte Call SETRDVER0 Tblw SPAD1 Execute Command LARLacl BASE2 Bcnd PBDONE,EQErase Algorithm, SERA20.ASM Erase Exebin Command Word Erase Command WordInverse Erase Command Word Flash Write Command WordSacl Flend Clrc OVMCall Setmode XoreraseInverase Splk #INVER,BASE0 Call Setmode Splk #STOP,BASE0Bldd Nextivers Lacl BASE1Flash Stop command, and Ffff for Wdata Flash-Write Algorithm, SFLW20.ASM Bldd #FLST,BASE1 MaxflwFlws Call DELAY,*,AR6 Call Array Access Flash Array DoneBcnd Flwrite SplkSetmode Call Lacl Tblw LAR Call Call RET LAR AR0,#MAXFLW CmprProgramming Algorithm, SPGM20.ASM AR3 PROTECT,DELAY,REGS,ARRAYAR4 GpgmjGpgmj Splk Setc Intm Globally Mask ALL Interrupts Splk #0,ERRORMask ALL Interrupts SUB Sacl BASE4Bcnd DONE, GT Rowdone Lacl FladrsLacl Fladrs Newrow Adjrow NEGSETRDVER0 Call Regs Access Flash Registers Shut Down Write Operation Tblw SPAD1 Execute Command LARPbend RET XOR FldataBcnd PBEND,EQ Subroutines Used By All Four Algorithms, SUTILS20.ASM SPAD2,FACCESS1 OUT SPAD2,FACCESS0OUT SPAD2,F24XACCS Lacc Flst SUBCallable Interface to Flash Algorithms SEGST,SEGEND,PROTECT GclrPARMS+1 PARMS+2Ersparams Lacl ErrorArstack ArprotectCall Flws Sacl ErscountLAR AR1,SVAR1 1PROTECTCall Gpgmj Popd *+Assembly Code for TMS320F206 Sample Assembly Code to Erase and Reprogram the TMS320F206PARMS+1 SUB Memory Sections Block B2Psaram DLY PsaramSample C Code to Erase and Reprogram the TMS320F206 Linker Command File for TMS320F206 Sample C Code FLASH1 FLASH0BLKB2 Block B2 DsaramAssembly Code for TMS320F240 Sample Assembly Code to Erase and Reprogram the TMS320F240Wdcr RticrCKCR0 CKCR1PORRST, PLLRST, Illrst SWRST, Wdrst Lacl Syssr Accl = Syssr LDP #DPPF1Sacl Syssr LDP #PARMS SplkDaram LDP #PARMS B0PGM Linker Command File for TMS320F240 Sample Assembly CodeExtram Extram 0 /******Delay Subroutine Rev1.003/98 JGC Linker Command File for TMS320F240 Sample C Code B0DAT Block B2 DsramLacl Wdcr Function for Disabling TMS320F240 Watchdog TimerCompute Length Sacl Wdcr Functions for Initializing the TMS320F240Pshd SyscrSacl Wdtcr Index Assembly code SERA2x.ASM Described 10 to Margin Role in single program pulse WRITE/ERASE field Described