/* erase_flash_ram.c Erase Flash Ram Chip Written by: Rod Klein Date: July 23, 1998 Rev. History: */ /* Include Files */ #include #include #include "VISION.h" #include "tracker.h" #include "functions.h" /* Start program */ void erase_flash_ram() { int i; int flag; int minutes; int seconds; int sl_count; int err_flag; unsigned int addr; unsigned int data; unsigned int bytes; unsigned int status; unsigned int fl_cmd; unsigned int fl_addr; unsigned int bank_len; unsigned int erase_data[] = {0xAA, 0x55, 0x80, 0xAA, 0x55, 0x10}; unsigned int erase_addr[] = {0x555, 0x2AA, 0x555, 0x555, 0x2AA, 0x555}; i = 0; addr = 0; data = 0; flag = 1; bytes = 0; status = 0; fl_cmd = 0; fl_addr = 0; seconds = 5; err_flag = 0; sl_count = 0; minutes = 128; bank_len = 0; flash_bank_len( &bank_len); for( i=0; i<6; i++ ) { fl_addr = FLASH_RAM | (erase_addr[i] << 2); fl_cmd = (erase_data[i] << 24) | erase_data[i]; status = VISIONwrite( finder, fl_addr, WORD_LEN, &bytes, &fl_cmd); if( status != 0 ) perror(" erase_flash_ram: VISIONwrite"); } sleep( minutes); while( flag == 1 ) { sleep( seconds); for( i=0; i> 24; if( data != 0xFF ) { err_flag = 1; break; } else err_flag = 0; } if( err_flag == 0 ) flag = 0; sl_count++; if( sl_count == 12 ) { printf("\n Unable to erase Flash Ram\n"); return; } } }