⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash.c

📁 ti dsp lf2407的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 + -