From c4582b847339a632caca53a69c3db67ec50d5d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Tue, 18 Dec 2012 20:55:18 +0000 Subject: [PATCH] removed timing routines from sd_card.c (since they were disappointing anyway) modified S-record reader diagnostic output --- BaS_gcc/sources/basflash.c | 2 +- BaS_gcc/sources/s19reader.c | 54 ++++++++++++++++++++++--------------- BaS_gcc/sources/sd_card.c | 32 ---------------------- 3 files changed, 33 insertions(+), 55 deletions(-) diff --git a/BaS_gcc/sources/basflash.c b/BaS_gcc/sources/basflash.c index 7e9f6e6..f246beb 100644 --- a/BaS_gcc/sources/basflash.c +++ b/BaS_gcc/sources/basflash.c @@ -10,5 +10,5 @@ void basflash(void) { - xprintf("Hello from BASFLASH.S19!\r\n"); + xprintf("\r\nHello from BASFLASH.S19!\r\n\r\n"); } diff --git a/BaS_gcc/sources/s19reader.c b/BaS_gcc/sources/s19reader.c index 666fa60..ef4fa02 100644 --- a/BaS_gcc/sources/s19reader.c +++ b/BaS_gcc/sources/s19reader.c @@ -333,6 +333,7 @@ void flasher_load(char *flasher_filename) DRESULT res; FRESULT fres; FATFS fs; + FIL file; err_t err; void *start_address; uint32_t length; @@ -344,28 +345,41 @@ void flasher_load(char *flasher_filename) fres = f_mount(0, &fs); if (fres == FR_OK) { - /* first pass: parse and check for inconsistencies */ - xprintf("check file integrity: "); - err = read_srecords(flasher_filename, &start_address, &length, simulate); - if (err == OK) + if ((fres = f_open(&file, flasher_filename, FA_READ) != FR_OK)) { - /* next pass: copy data to destination */ - xprintf("OK.\r\ncopy/flash data: "); - err = read_srecords(flasher_filename, &start_address, &length, memcpy); + xprintf("flasher file %s not present on disk\r\n", flasher_filename); + } + else + { + f_close(&file); + + /* first pass: parse and check for inconsistencies */ + xprintf("check file integrity: "); + err = read_srecords(flasher_filename, &start_address, &length, simulate); if (err == OK) { - /* next pass: verify data */ - xprintf("OK.\r\nverify data: "); - err = read_srecords(flasher_filename, &start_address, &length, verify); + /* next pass: copy data to destination */ + xprintf("OK.\r\ncopy/flash data: "); + err = read_srecords(flasher_filename, &start_address, &length, memcpy); if (err == OK) { - xprintf("OK.\r\n"); - typedef void void_func(void); - void_func *func; - xprintf("target successfully written and verified. Start address: %p\r\n", start_address); + /* next pass: verify data */ + xprintf("OK.\r\nverify data: "); + err = read_srecords(flasher_filename, &start_address, &length, verify); + if (err == OK) + { + xprintf("OK.\r\n"); + typedef void void_func(void); + void_func *func; + xprintf("target successfully written and verified. Start address: %p\r\n", start_address); - func = start_address; - (*func)(); + func = start_address; + (*func)(); + } + else + { + xprintf("failed\r\n"); + } } else { @@ -377,20 +391,16 @@ void flasher_load(char *flasher_filename) xprintf("failed\r\n"); } } - else - { - xprintf("failed\r\n"); - } } else { - xprintf("could not mount FAT FS\r\n"); + // xprintf("could not mount FAT FS\r\n"); } f_mount(0, NULL); } else { - xprintf("could not initialize SD card\r\n"); + // xprintf("could not initialize SD card\r\n"); } } diff --git a/BaS_gcc/sources/sd_card.c b/BaS_gcc/sources/sd_card.c index 524c9f5..82bb53f 100644 --- a/BaS_gcc/sources/sd_card.c +++ b/BaS_gcc/sources/sd_card.c @@ -83,38 +83,6 @@ void sd_card_init(void) } } f_close(&file); - - /* - * let's see if we find our boot flashing executable on disk - */ - fres = f_open(&file, FLASHCODE_NAME, FA_READ); - if (fres == FR_OK) - { - /* - * yes, load and execute it - * - * FIXME: we will need some kind of user confirmation here - * to avoid unwanted flashing or "bootsector viruses" before going productive - */ - uint32_t size; /* length of code piece read */ - uint32_t total_size = 0L; - uint32_t start_time = MCF_SLT_SCNT(0); - uint32_t end_time; - uint32_t time = 0; - - while ((fres = f_read(&file, (void *) FLASHCODE_ADDRESS, 1024, &size)) == FR_OK) - { - total_size += size / 1024; - //xprintf("read hunk of %d bytes, total_size = %d kBytes\r\n", size, total_size); - } - end_time = MCF_SLT_SCNT(0); - time = (end_time - start_time) / 132L; - xprintf("result of f_read: %ld, %ld kbytes read\r\n", fres, total_size); - xprintf("time to load %s: %ld s\r\n", FLASHCODE_NAME, time / 1000 / 100); - xprintf("equals to about %ld kBytes/second\r\n", total_size / (time / 1000 / 100)); - - } - f_close(&file); } f_mount(0, 0L); /* release work area */ }