Hey any one tell me how to write buffer in NOR FLASH ((JS28F128J3F75) , i also attach my code for writtng buffer in Nor Flash
#include "socDefs.h"
#include "APB_Interrupt.h"
#include "APB_UART.h"
#include "platform.h"
#include "externals.h"
#include "APB_GPIO.h"
#define BR_57600_40MHZ 42
#define nbytes 0x2000
void SDRAM_write(unsigned int baseaddr ,unsigned int offset, unsigned short data);
unsigned SDRAM_Verify(unsigned int baseaddr, unsigned int offset);
void IRQ_Handler (void)
{
}
void Flash_write(unsigned int baseaddr ,unsigned int offset, unsigned short data)
{
*((volatile unsigned int *)(baseaddr + offset)) = (unsigned short)data;
}
unsigned Flash_Verify(unsigned int baseaddr, unsigned int offset)
{
unsigned short read_data;
read_data= *((volatile unsigned int *)(baseaddr + offset)) ;
return (read_data & 0xFFFF);
}
int main( void)
{
unsigned read, read1, read2, read3, i, j;
unsigned short data[4] = {0xA5A5, 0xAAAA, 0x5555,0x5a5a};
uart_cfg(UART1_BASE_ADDR,BR_57600_40MHZ);
unsigned char mesg1[] = "\n\r Write OK ";
unsigned char mesg2[] = "\n\r write Error ";
unsigned char mesg3[] = "\n\r Buffer Erase ";
unsigned char mesg4[] = "\n\r Buffer Not Erase ";
Flash_write(Flash_BASE_ADDR, 0x4000, 0x20);
Flash_write(Flash_BASE_ADDR, 0x4000, 0xD0);
read3 = Flash_Verify(Flash_BASE_ADDR ,0x4000);
if(read3 == 0x80)
uart_puts(UART1_BASE_ADDR, (unsigned char *)&mesg3, sizeof(mesg3));
else
uart_puts(UART1_BASE_ADDR, (unsigned char *)&mesg4, sizeof(mesg4));
Flash_write(Flash_BASE_ADDR, 0x4000, 0xE8);
read = Flash_Verify(Flash_BASE_ADDR ,0x4000);
Flash_write(Flash_BASE_ADDR, 0x4000, 4);
for(i = 0, j = 0; i < 0x10; i = i + 4, j++)
{
Flash_write(Flash_BASE_ADDR, (0x4000 + i), data[j]);
}
Flash_write(Flash_BASE_ADDR,0x4000, 0xD0);
read1 = Flash_Verify(Flash_BASE_ADDR ,0x4000);
if(read1 == 0x80)
uart_puts(UART1_BASE_ADDR, (unsigned char *)&mesg1, sizeof(mesg1));
else
uart_puts(UART1_BASE_ADDR, (unsigned char *)&mesg2, sizeof(mesg2));
Flash_write(Flash_BASE_ADDR, 0x4000, 0xFF);
for(i = 0, j = 0; i < 0x10; i = i + 4, j++)
{
read2 = Flash_Verify(Flash_BASE_ADDR , (0x4000 + i) );
}