/* vx_read_flash_ram.c VxWorks version of flash ram read function Written by: Rod Klein Date: July 24, 1998 Rev. History: */ /* Include Files */ #include #include "VISION.h" #include "tracker.h" #include "functions.h" /* Start program */ void read_flash_ram( reg) int reg; { int i; int fileout; char f_name[64]; unsigned int adr; unsigned int max; unsigned int num; unsigned int addr; unsigned int data; unsigned int bytes; unsigned int number; unsigned int status; unsigned int fl_addr; unsigned int bank_len; unsigned int buffer[ VX_FLASH_LEN]; i = 0; adr = 0; addr = 0; data = 0; bytes = 0; number = 0; status = 0; fl_addr = 0; fileout = 0; bank_len = 0; max = VX_FLASH_LEN; flash_bank_len( &bank_len); if( reg == 0 ) { if( bank_len == 0x80000 ) { if( prompt_hex( "\n Address to read (0:80000) [%05X]? ", &addr)) { if( addr > 0x80000) { printf("\n Out of Flash RAM Range\n"); return; } } } else { if( prompt_hex( "\n Address to read (0:100000) [%06X]? ", &addr)) { if( addr > 0x100000) { printf("\n Out of Flash RAM Range\n"); return; } } } fl_addr = FLASH_RAM | (addr << 2); status = VISIONread( finder, fl_addr, WORD_LEN, &bytes, &data); if( status != 0 ) perror(" read_flash_ram: VISIONread"); printf("\n Flash RAM Data [%X] = %02X\n", fl_addr, data >> 24); } else { addr = 0; if( bank_len == 0x80000 ) { if( prompt_hex( "\n Address to read (0:80000 hex) [%05X]? ", &addr)) { adr = addr; if( prompt_hex( "\n Number of locations to read (1:80000)(hex)[%05X]?", &number)) { if( number < 1 | number > 0x80000) { printf("\n Out of Flash RAM Range\n"); return; } } } } else { if( prompt_hex( "\n Address to read (0:100000 hex) [%06X]? ", &addr)) { adr = addr; if( prompt_hex( "\n Number of locations to read (1:100000)(hex)[%06X]?", &number)) { if( number < 1 | number > 0x100000) { printf("\n Out of Flash RAM Range\n"); return; } } } } if( number > VX_FLASH_LEN ) { num = number; while( num > VX_FLASH_LEN ) { adr = addr; for( i=0; i