Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

Flash memory problem

Hello, is it true that I cannot write 1MB of data into flash memory (4M)?

I am using Altera DE2 Board. My code is as follow:

--- Quote Start ---

# include <stdio.h># include <stdlib.h># include <unistd.h># include "altera_avalon_pio_regs.h"# include "system.h"# include "alt_types.h"# include "sys/alt_dma.h"# include "sys/alt_flash.h" # include "sys/alt_flash_dev.h"

# define loop 262144# define size 1048576

int main ()

{

alt_flash_fd* fd;

int ret_code, i;

int *src_ptr;

int *dest_ptr;

src_ptr = SDRAM_BASE + 0x200000; //Location of data written in SDRAM

dest_ptr = EXT_FLASH_BASE; //Location of data written in flash

//Open flash

fd = alt_flash_open_dev(EXT_FLASH_NAME);

if(fd!=NULL)

{

//Generate data into SDRAM

for(i=0;i<loop;i++)

{

IOWR(src_ptr, i, i);

}

//Write data into flash

ret_code = alt_write_flash(fd, 0, src_ptr, size);

if(ret_code != 0)

{

printf("Error writing into flash: %d\n", ret_code);

exit(1);

}

//Read from flash

for(i=0;i<loop;i++)

{

printf("Value at %X is %d, written at is %d\n", dest_ptr, *dest_ptr, IORD(src_ptr, i));

dest_ptr++;

}

}else

{

printf("Unable to open flash\n");

exit(1);

}

alt_flash_close_dev(fd);

return 0;

}

--- Quote End ---

I keep on getting error msg: Cannot write into flash and the error code is -5. pls help me. i am not sure whether is my coding problem or writing 1MB into flash is a special case. pls help! thanks!

11 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The -5 means EIO code (see errno.h file)

    This can be generated if HAL driver can't erase the flash block.

    Are you sure the flash is not write protected?

    Then, try initially to write a small amount of data, not the complete 1M buffer.