FreeCalypso > hg > freecalypso-tools
diff loadtools/flprogsrec.c @ 670:815c3f8bcff1
fc-loadtool: flash e-program-m0 and e-program-srec implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 08 Mar 2020 01:47:57 +0000 |
parents | 51bcfb251b23 |
children | 185c9bf208d3 |
line wrap: on
line diff
--- a/loadtools/flprogsrec.c Sun Mar 08 01:32:08 2020 +0000 +++ b/loadtools/flprogsrec.c Sun Mar 08 01:47:57 2020 +0000 @@ -186,7 +186,7 @@ return(0); } -flashcmd_progsrec_gen(bank, imgfile, is_m0) +flashcmd_progsrec_gen(bank, imgfile, is_m0, with_erase) char *imgfile; { struct flash_bank_info *bi; @@ -208,6 +208,13 @@ regions, &nregions, &total_len, &tmpfile); if (rc < 0) return(rc); + if (with_erase) { + rc = erase_sectors_for_prog(bi, regions, nregions); + if (rc < 0) { + fclose(tmpfile); + return(rc); + } + } sprintf(shortarg, "%lx", (u_long) bi->base_addr); targv[0] = bi->ops->loadagent_setbase_cmd; targv[1] = shortarg; @@ -347,7 +354,7 @@ fprintf(stderr, "usage: %s %s image.srec\n", argv[0], argv[1]); return(-1); } - return flashcmd_progsrec_gen(bank, argv[2], 0); + return flashcmd_progsrec_gen(bank, argv[2], 0, argv[1][0] == 'e'); } flashcmd_program_m0(argc, argv, bank) @@ -357,5 +364,5 @@ fprintf(stderr, "usage: %s %s image.m0\n", argv[0], argv[1]); return(-1); } - return flashcmd_progsrec_gen(bank, argv[2], 1); + return flashcmd_progsrec_gen(bank, argv[2], 1, argv[1][0] == 'e'); }