FreeCalypso > hg > freecalypso-sw
diff loadtools/flutil.c @ 62:6fb41cfa773d
fc-loadtool: flash erase implemented, compiles
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Thu, 27 Jun 2013 04:56:17 +0000 |
parents | a10491da8c3a |
children | a7da6648a7f8 |
line wrap: on
line diff
--- a/loadtools/flutil.c Mon Jun 24 17:46:15 2013 +0000 +++ b/loadtools/flutil.c Thu Jun 27 04:56:17 2013 +0000 @@ -99,3 +99,33 @@ printf("%08lX %lx\n", (u_long) sp->start, (u_long) sp->size); return(0); } + +get_flash_sector_range(bi, useroff, userlen, startp, endp) + struct flash_bank_info *bi; + u_long useroff, userlen; + struct sector_info **startp, **endp; +{ + struct sector_info *sp; + uint32_t remlen; + + for (sp = bi->sectors; sp->size; sp++) + if (sp->start == useroff) + break; + if (!sp->size) { + fprintf(stderr, + "error: specified offset not aligned to a flash sector boundary\n"); + return(-1); + } + *startp = sp; + for (remlen = userlen; remlen; ) { + if (remlen < sp->size) { + fprintf(stderr, + "error: specified length not aligned to a flash sector boundary\n"); + return(-1); + } + remlen -= sp->size; + sp++; + } + *endp = sp; + return(0); +}