make data buffers global to get a better overview of SRAM usage during

compile time.
when detecting an error during Reading Blocks from the "WDC", respond only
with an error message - not with error+data
This commit is contained in:
Oliver Lehmann 2012-06-05 20:30:09 +00:00
parent 47fcd4b9cd
commit 8c8505b107
3 changed files with 16 additions and 15 deletions

View File

@ -1,7 +1,7 @@
/*
* P8000 WDC Emulator
*
* $Id: wdc_if_p8000.c,v 1.2 2012/05/31 20:22:42 olivleh1 Exp $
* $Id: wdc_if_p8000.c,v 1.3 2012/06/05 20:30:09 olivleh1 Exp $
*
*/
@ -112,11 +112,11 @@ void wdc_send_data ( uint8_t *buffer, uint16_t count )
void wdc_send_error()
{
uint8_t data_buffer[1];
uint8_t buffer[1];
data_buffer[0] = 0x01;
buffer[0] = 0x01;
wdc_write_data_to_p8k ( data_buffer
wdc_write_data_to_p8k ( buffer
, 1
, INFO_STAT_ERROR
);

View File

@ -1,7 +1,7 @@
/*
* P8000 WDC Emulator
*
* $Id: wdc_main.c,v 1.11 2012/06/05 19:46:26 olivleh1 Exp $
* $Id: wdc_main.c,v 1.12 2012/06/05 20:30:09 olivleh1 Exp $
*
* TODO: - Different Errorcodes in the MMC layer (use defines)
* - errorchecking in several places
@ -49,8 +49,6 @@ main ( void )
uint16_t data_counter;
uint32_t blockno;
uint8_t errorcode;
uint8_t data_buffer[4096];
uint8_t cmd_buffer[9];
uint8_t i8;
uint16_t i16;
#endif
@ -115,7 +113,6 @@ main ( void )
if ( data_counter / 512 == 1 ) {
errorcode = wdc_write_sector ( blockno, data_buffer );
} else {
uart_putc ( '#' );
errorcode = wdc_write_multiblock ( blockno, data_buffer, data_counter / 512 );
}
/* check if this really works - this must be used if the card does not support multiblock-access (there are some)
@ -138,7 +135,6 @@ main ( void )
if ( data_counter / 512 == 1 ) {
errorcode = wdc_read_sector ( blockno, data_buffer );
} else {
uart_putc ( '#' );
errorcode = wdc_read_multiblock ( blockno, data_buffer, data_counter / 512 );
}
/* check if this really works - this must be used if the card does not support multiblock-access (there are some)
@ -148,11 +144,13 @@ main ( void )
blockno++;
}
*/
if ( errorcode )
if ( errorcode ) {
wdc_send_error();
wdc_send_data ( data_buffer
, data_counter
);
} else {
wdc_send_data ( data_buffer
, data_counter
);
}
break;
case CMD_WR_WDC_RAM:
@ -354,7 +352,6 @@ void atmega_setup ( void )
void measure_performance()
{
uint32_t starttime;
uint8_t data_buffer[4096];
uint32_t blockno = 0;
uint8_t numblocks = 4;
uint8_t i8, errorcode;

View File

@ -1,7 +1,7 @@
/*
* P8000 WDC Emulator
*
* $Id: wdc_ram.h,v 1.2 2012/06/02 00:51:55 olivleh1 Exp $
* $Id: wdc_ram.h,v 1.3 2012/06/05 20:30:09 olivleh1 Exp $
*
*/
@ -35,4 +35,8 @@ uint8_t wdc_get_hdd_sectors();
#define SIZE_PAR_WDC_PAR 80
#define SIZE_PAR_WDC_BTT 125
/* switched from local to global for keeping an eye on memory usage */
uint8_t data_buffer[4096];
uint8_t cmd_buffer[9];
#endif /* WDC_RAM_H_ */