flash.c

来自「altera epxa1的例子程序」· C语言 代码 · 共 50 行

C
50
字号

//#include <stdio.h>


#include "flash.h"


void write_flash_value(unsigned short *address, short int value)
{
	short int check;
	short int prog_done_mask = (1<<7);
	
	
	
	*address = 0x0060;  					// Enter Unlock command (0x60)
	
	*(address + (0x1F8000)) = 0x00D0;  					// Unlock the first block BA = 0x08 (0xD0 unlocks the flash)
	*address = 0x0090;	 					// Move to Read Status Mode
	check = *(address+0x0002);					//*********add a check for the lock status
	
	*address = 0x0020; //Enter Erase Mode
	*(address + (0x1F8000)) = 0x00D0; //Enter Erase confirm commnad
	*(address + 0x000) = 0x00D0; //Enter Erase confirm commnad
	*address = 0x0070;	//Switch to Read Status Mode
	
	check = *address;
	while ((check & prog_done_mask) == 0) {
		check = *address;
	}
	*address = 0x0050;
	*address = 0x00FF;
	
	
				*address = 0x0060;  					// Enter Unlock command (0x60)
				*(address + (0x1F8000)) = 0x00D0;  			// Unlock the first block BA = 0x08 (0xD0 unlocks the flash)
				*address = 0x0090;	 				// Move to Read Status Mode
				check = *(address+0x0002);				//*********add a check for the lock status
				*address = 0x0040;
		        	*(address + (0x1FFFFF)) = value; 		//Write Value to Flash
				*address = 0x0070;						//Switch to Read Status Mode
				check = *address;
				while ((check & prog_done_mask) == 0)   		//Check to see if programming is done
					check = *address;		
				*address = 0x0050;						//Clear Read Status Register
				
		
	
	
	
}	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?