diff --git a/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.c b/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.c index 1c3a7f7..0d45f7d 100644 --- a/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.c +++ b/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.c @@ -1,7 +1,7 @@ /* * P8000 WDC Emulator * - * $Id: wdc_drv_mmc.c,v 1.5 2012/06/05 18:24:16 olivleh1 Exp $ + * $Id: wdc_drv_mmc.c,v 1.6 2012/06/05 19:46:26 olivleh1 Exp $ * */ @@ -420,7 +420,7 @@ uint8_t mmc_read_multiblock ( uint32_t addr, uint8_t *Buffer, uint8_t numblocks while ( 1 ) { send_dummy_byte(); if ( recv_byte() == SB_START ) - break; + break; } send_dummy_byte(); @@ -445,8 +445,8 @@ uint8_t mmc_read_multiblock ( uint32_t addr, uint8_t *Buffer, uint8_t numblocks } Buffer = Buffer + 512; #else - send_dummy_byte(); - send_dummy_byte(); + send_dummy_byte(); + send_dummy_byte(); Buffer++; #endif @@ -462,12 +462,12 @@ uint8_t mmc_read_multiblock ( uint32_t addr, uint8_t *Buffer, uint8_t numblocks resp = mmc_cmd ( cmd ); -/* TODO: Apacer Card I have sends 0x7f after some reads - No idea why - CRC was correct - if ( resp > 1 ) { - MMC_Disable(); - return ( 2 ); - } -*/ + /* TODO: Apacer Card I have sends 0x7f after some reads - No idea why - CRC was correct + if ( resp > 1 ) { + MMC_Disable(); + return ( 2 ); + } + */ // Pad 8 send_dummy_byte(); diff --git a/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.h b/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.h index 659b3f6..af24e5b 100644 --- a/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.h +++ b/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_drv_mmc.h @@ -1,7 +1,7 @@ /* * P8000 WDC Emulator * - * $Id: wdc_drv_mmc.h,v 1.3 2012/06/05 18:21:48 olivleh1 Exp $ + * $Id: wdc_drv_mmc.h,v 1.4 2012/06/05 19:46:26 olivleh1 Exp $ * */ @@ -14,7 +14,6 @@ extern uint8_t mmc_read_sector ( uint32_t addr, uint8_t *Buffer ); extern uint8_t mmc_write_sector ( uint32_t addr, uint8_t *Buffer ); extern uint8_t mmc_read_multiblock ( uint32_t addr, uint8_t *Buffer, uint8_t numblocks ); -extern uint8_t mmc_write_multiblock_predef ( uint32_t addr, uint8_t *Buffer, uint8_t numblocks ); extern uint8_t mmc_write_multiblock ( uint32_t addr, uint8_t *Buffer, uint8_t numblocks ); diff --git a/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_main.c b/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_main.c index 854e1f3..95f6e17 100644 --- a/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_main.c +++ b/P8000_WDC_Emulator/P8000_WDC_Emulator/wdc_main.c @@ -1,7 +1,7 @@ /* * P8000 WDC Emulator * - * $Id: wdc_main.c,v 1.10 2012/06/05 18:21:48 olivleh1 Exp $ + * $Id: wdc_main.c,v 1.11 2012/06/05 19:46:26 olivleh1 Exp $ * * TODO: - Different Errorcodes in the MMC layer (use defines) * - errorchecking in several places @@ -100,7 +100,7 @@ main ( void ) uart_putc_hex ( cmd_buffer[7] ); uart_putc_hex ( cmd_buffer[8] ); uart_putc ( '\n' ); -#endif +#endif #endif switch ( cmd_buffer[0] ) { @@ -112,19 +112,19 @@ main ( void ) , data_counter ); errorcode = 1; - if(data_counter/512 == 1) { - errorcode = wdc_write_sector ( blockno, data_buffer); + 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); + 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) - for ( i16 = 0; i16 < data_counter; i16 += 512 ) { - errorcode = wdc_write_sector ( blockno, &data_buffer[i16] ); - if ( errorcode ) break; - blockno++; - } -*/ + /* check if this really works - this must be used if the card does not support multiblock-access (there are some) + for ( i16 = 0; i16 < data_counter; i16 += 512 ) { + errorcode = wdc_write_sector ( blockno, &data_buffer[i16] ); + if ( errorcode ) break; + blockno++; + } + */ if ( errorcode ) wdc_send_error(); break; @@ -135,19 +135,19 @@ main ( void ) blockno = wdc_p8kblock2sdblock ( ( ( uint32_t ) cmd_buffer[5] << 24 ) | ( ( uint32_t ) cmd_buffer[4] << 16 ) | ( ( uint16_t ) cmd_buffer[3] << 8 ) | cmd_buffer[2] ); errorcode = 1; - if(data_counter/512 == 1) { - errorcode = wdc_read_sector ( blockno, data_buffer); + 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); + 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) - for ( i16 = 0; i16 < data_counter; i16 += 512 ) { - errorcode = wdc_read_sector ( blockno, &data_buffer[i16] ); - if ( errorcode ) break; - blockno++; - } -*/ + /* check if this really works - this must be used if the card does not support multiblock-access (there are some) + for ( i16 = 0; i16 < data_counter; i16 += 512 ) { + errorcode = wdc_read_sector ( blockno, &data_buffer[i16] ); + if ( errorcode ) break; + blockno++; + } + */ if ( errorcode ) wdc_send_error(); wdc_send_data ( data_buffer @@ -355,10 +355,10 @@ void measure_performance() { uint32_t starttime; uint8_t data_buffer[4096]; - uint32_t blockno=0; - uint8_t numblocks=4; + uint32_t blockno = 0; + uint8_t numblocks = 4; uint8_t i8, errorcode; - uint8_t nr_of_tests=5; + uint8_t nr_of_tests = 5; #define BLOCKNO 300000 sei(); @@ -366,73 +366,79 @@ void measure_performance() TCCR0B = ( 1 << CS01 ); // Prescaler 8 TCNT0 = 0x00; - uart_puts_p ( PSTR ( "Performance Measurement. Displayed are the Timer-Overflows." ) );uart_putc ( '\n' ); - uart_puts_p ( PSTR ( "Timer is initialized with a Prescaler 8" ) );uart_putc ( '\n' ); + uart_puts_p ( PSTR ( "Performance Measurement. Displayed are the Timer-Overflows." ) ); + uart_putc ( '\n' ); + uart_puts_p ( PSTR ( "Timer is initialized with a Prescaler 8" ) ); + uart_putc ( '\n' ); - uart_puts_p ( PSTR ( "Test Read 5000 512B-Blocks with Multiblock-Read (4KB Blocksize):" ) );uart_putc ( '\n' ); + uart_puts_p ( PSTR ( "Test Read 5000 512B-Blocks with Multiblock-Read (4KB Blocksize):" ) ); + uart_putc ( '\n' ); for ( i8 = 0; i8 < nr_of_tests; i8++ ) { - blockno=BLOCKNO; - for ( starttime = overflow; blockno < (BLOCKNO+5000); blockno+=numblocks ) { - errorcode = wdc_read_multiblock ( blockno, data_buffer,numblocks ); - if(errorcode) { - break; - } - } - if(errorcode) - break; - uart_putdw_dec ( overflow - starttime ); - uart_putc ( '\n' ); - } - - uart_puts_p ( PSTR ( "Test Write 5000 512B-Blocks with Multiblock-Write (4KB Blocksize):" ) );uart_putc ( '\n' ); - memset ( &data_buffer[0], 0xCC, 512*numblocks ); - for ( i8 = 0; i8 < nr_of_tests; i8++ ) { - blockno=BLOCKNO; - for ( starttime = overflow; blockno < (BLOCKNO+5000); blockno+=numblocks ) { - errorcode = wdc_write_multiblock ( blockno, data_buffer,numblocks ); - if(errorcode) { + blockno = BLOCKNO; + for ( starttime = overflow; blockno < ( BLOCKNO + 5000 ); blockno += numblocks ) { + errorcode = wdc_read_multiblock ( blockno, data_buffer, numblocks ); + if ( errorcode ) { break; } } - if(errorcode) + if ( errorcode ) break; uart_putdw_dec ( overflow - starttime ); uart_putc ( '\n' ); } - uart_puts_p ( PSTR ( "Test Read 5000 512B-Blocks with Singleblock-Read (512B Blocksize):" ) );uart_putc ( '\n' ); + uart_puts_p ( PSTR ( "Test Write 5000 512B-Blocks with Multiblock-Write (4KB Blocksize):" ) ); + uart_putc ( '\n' ); + memset ( &data_buffer[0], 0xCC, 512 * numblocks ); + for ( i8 = 0; i8 < nr_of_tests; i8++ ) { + blockno = BLOCKNO; + for ( starttime = overflow; blockno < ( BLOCKNO + 5000 ); blockno += numblocks ) { + errorcode = wdc_write_multiblock ( blockno, data_buffer, numblocks ); + if ( errorcode ) { + break; + } + } + if ( errorcode ) + break; + uart_putdw_dec ( overflow - starttime ); + uart_putc ( '\n' ); + } + + uart_puts_p ( PSTR ( "Test Read 5000 512B-Blocks with Singleblock-Read (512B Blocksize):" ) ); + uart_putc ( '\n' ); for ( i8 = 0; i8 < nr_of_tests; i8++ ) { - blockno=BLOCKNO; - for ( starttime = overflow; blockno < (BLOCKNO+5000); blockno++ ) { + blockno = BLOCKNO; + for ( starttime = overflow; blockno < ( BLOCKNO + 5000 ); blockno++ ) { errorcode = wdc_read_sector ( blockno, data_buffer ); - if(errorcode) { + if ( errorcode ) { break; } } - if(errorcode) - break; + if ( errorcode ) + break; uart_putdw_dec ( overflow - starttime ); uart_putc ( '\n' ); } - uart_puts_p ( PSTR ( "Test Write 5000 512B-Blocks with Singleblock-Write (512B Blocksize):" ) );uart_putc ( '\n' ); - memset ( &data_buffer[0], 0xCC, 512*numblocks ); + uart_puts_p ( PSTR ( "Test Write 5000 512B-Blocks with Singleblock-Write (512B Blocksize):" ) ); + uart_putc ( '\n' ); + memset ( &data_buffer[0], 0xCC, 512 * numblocks ); for ( i8 = 0; i8 < nr_of_tests; i8++ ) { - blockno=BLOCKNO; - for ( starttime = overflow; blockno < (BLOCKNO+5000); blockno++ ) { + blockno = BLOCKNO; + for ( starttime = overflow; blockno < ( BLOCKNO + 5000 ); blockno++ ) { errorcode = wdc_write_sector ( blockno, data_buffer ); - if(errorcode) { + if ( errorcode ) { break; } } - if(errorcode) - break; + if ( errorcode ) + break; uart_putdw_dec ( overflow - starttime ); uart_putc ( '\n' ); } - while(1); + while ( 1 ); } #endif \ No newline at end of file