removed timing routines from sd_card.c (since they were disappointing anyway)
modified S-record reader diagnostic output
This commit is contained in:
@@ -10,5 +10,5 @@
|
|||||||
|
|
||||||
void basflash(void)
|
void basflash(void)
|
||||||
{
|
{
|
||||||
xprintf("Hello from BASFLASH.S19!\r\n");
|
xprintf("\r\nHello from BASFLASH.S19!\r\n\r\n");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -333,6 +333,7 @@ void flasher_load(char *flasher_filename)
|
|||||||
DRESULT res;
|
DRESULT res;
|
||||||
FRESULT fres;
|
FRESULT fres;
|
||||||
FATFS fs;
|
FATFS fs;
|
||||||
|
FIL file;
|
||||||
err_t err;
|
err_t err;
|
||||||
void *start_address;
|
void *start_address;
|
||||||
uint32_t length;
|
uint32_t length;
|
||||||
@@ -344,6 +345,14 @@ void flasher_load(char *flasher_filename)
|
|||||||
fres = f_mount(0, &fs);
|
fres = f_mount(0, &fs);
|
||||||
if (fres == FR_OK)
|
if (fres == FR_OK)
|
||||||
{
|
{
|
||||||
|
if ((fres = f_open(&file, flasher_filename, FA_READ) != FR_OK))
|
||||||
|
{
|
||||||
|
xprintf("flasher file %s not present on disk\r\n", flasher_filename);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
f_close(&file);
|
||||||
|
|
||||||
/* first pass: parse and check for inconsistencies */
|
/* first pass: parse and check for inconsistencies */
|
||||||
xprintf("check file integrity: ");
|
xprintf("check file integrity: ");
|
||||||
err = read_srecords(flasher_filename, &start_address, &length, simulate);
|
err = read_srecords(flasher_filename, &start_address, &length, simulate);
|
||||||
@@ -382,15 +391,16 @@ void flasher_load(char *flasher_filename)
|
|||||||
xprintf("failed\r\n");
|
xprintf("failed\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xprintf("could not mount FAT FS\r\n");
|
// xprintf("could not mount FAT FS\r\n");
|
||||||
}
|
}
|
||||||
f_mount(0, NULL);
|
f_mount(0, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
xprintf("could not initialize SD card\r\n");
|
// xprintf("could not initialize SD card\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,38 +83,6 @@ void sd_card_init(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
f_close(&file);
|
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 */
|
f_mount(0, 0L); /* release work area */
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user