Mercurial > nand-ecoscentric
diff packages/redboot/current/src/load.c @ 196:9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
| author | jlarmour |
|---|---|
| date | Fri, 23 Nov 2001 17:12:52 +0000 |
| parents | 022f1e506033 |
| children | ea3f0bd33a73 |
line wrap: on
line diff
--- a/packages/redboot/current/src/load.c +++ b/packages/redboot/current/src/load.c @@ -62,7 +62,7 @@ static char usage[] = "[-r] [-v] " " | disk" #endif #if CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS > 1 - "-c <channel_number>" + " -c <channel_number>" #endif "}]\n [-b <base_address>] <file_name>"; @@ -208,11 +208,16 @@ load_srec_image(int (*getc)(void), void case '9': addr = (unsigned char *)_hex2(getc, ('9'-type+2), &sum); offset += ('9'-type+2); - entry_address = (unsigned long *)addr; + entry_address = (unsigned long)addr; if (terminate) (*terminate)(xyzModem_close, getc); if (addr_offset) diag_printf("Address offset = %p\n", (void *)addr_offset); diag_printf("Entry point: %p, address range: %p-%p\n", (void*)entry_address, (void *)lowest_address, (void *)highest_address); + + // Save load base/top + load_address = lowest_address; + load_address_end = highest_address; + return highest_address; default: if (terminate) (*terminate)(xyzModem_abort, getc); @@ -502,6 +507,11 @@ do_load(int argc, char *argv[]) err = 0; end = (unsigned long) mp; } + + // Save load base/top + load_address = base; + load_address_end = end; + if (0 == err) diag_printf("Raw file loaded %p-%p\n", (void *)base, (void *)end); } else {
