?? flash.c
字號:
/***************************************************************************************************
* Filename : FLASHMAIN.C
* Last Modified : 23 Jan 2002.
* Version : 1.3
* Originator : Texas Instruments, DSP Digital Control Systems Group.
*************************************************************************************************/
/* Compiler directives to place all the kernel functions in the KER_text section.
* This section is handled by the linker command file to have a load address in the
* flash memory but a run addres in the SARAM block. This is copied at run time
* to the run address by the copyKernel function.
*/
#pragma CODE_SECTION(kernelControlLoop,"KER_text")
#pragma CODE_SECTION(AnotherKernelFunction,"KER_text")
/* Function prototypes and constants, registers etc.
*/
void flashmain(void );
void lf240xInitSys(void);
/* Import the function prototypes and variable information from the
* flash algorithms
*/
#include "..\\flashalgos\\include\\CFlash.h"
/* Import the function prototypes and variable information from the
* flash algorithms
*/
#include "regs240x.h"
/* Buffer to hold data for programming into flash
*/
int bufferArray[32];
extern int bufferbak[32];
void flashmain()
{
int i;
for(i=0;i<32;i++)bufferarray[i]=bufferbak[i];
/*
* Call the system initialization function.
* For flash programming at a minimum the Watchdog must be shut down
* and the PLL initialized
*/
lf240xInitSys();
copyKernel();
kernelControlLoop();
}
int kernelControlLoop(void)
{
copyClearAlgo();
flashAlgoVars.SECTOR_CMD=(SECTOR3);
/* The code here assumes that clearFlash suceeds, a real app
would do error checking.*/
clearFlash(&flashAlgoVars);
copyEraseAlgo();
flashAlgoVars.SECTOR_CMD=(SECTOR1);
eraseFlash(&flashAlgoVars);
/* The code here assumes that eraseFlash suceeds, a real app
would do error checking.*/
copyProgramAlgo();
/* Setup the sector permissions */
flashAlgoVars.SECTOR_CMD=(SECTOR1);
/* Setup ptr to data buffer. */
flashAlgoVars.DATA_PTR=(int)(&bufferArray);
/* Number of words to program */
flashAlgoVars.FL_SECEND=0x32;
/* Block address */
flashAlgoVars.ADDR=0x7000;
/* Call the program routine */
programFlash(&flashAlgoVars);
/* The code here assumes that programFlash suceeds, a real app
would do error checking.*/
/* Map in the flash into the program space */
/* SCSR2=0xb; */
/* Map in the ext-RAM into the program space */
/* SCSR2=0x7;*/
}
void lf240xInitSys(void)
{
WDCR=0x6f; /* Dis-able the watchdog */
SCSR1=0x0; /* PLL = x4 */
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -