2 #define _FLASH_PRIVATE_
3 #include <cyg/io/flash.h>
7 int myprintf(char *format, ...)
12 extern char _start_bss_clear;
13 extern char __bss_end__;
17 // set up runtime environment
19 for (t=&_start_bss_clear; t<&__bss_end__; t++)
23 return flash_init((_printf *)&myprintf);
28 int checkFlash(void *addr, int len)
30 // Return error for illegal addresses
31 if ((addr<flash_info.start)||(addr>flash_info.end))
32 return FLASH_ERR_INVALID;
33 if ((((cyg_uint8 *)addr)+len)>(cyg_uint8 *)flash_info.end)
34 return FLASH_ERR_INVALID;
39 int erase(void *address, int len)
44 retval=checkFlash(address, len);
51 return flash_erase(address, len, &failAddress);
58 // Data follows immediately after program, long word aligned.
59 int program(void *buffer, void *address, int len)
63 retval=checkFlash(address, len);
70 //int flash_program(void *_addr, void *_data, int len, void **err_addr)
71 return flash_program(address, buffer, len, &failAddress);