FreeCalypso > hg > fc-magnetite
changeset 257:d4d07c751e56
helpers: mk-flash-script helper program written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 04 Aug 2017 06:54:12 +0000 |
parents | ba63f14d1e84 |
children | 13bcc2ed7e44 |
files | .hgignore helpers/Makefile helpers/mk-flash-script.c |
diffstat | 3 files changed, 44 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Fri Aug 04 00:09:09 2017 +0000 +++ b/.hgignore Fri Aug 04 06:54:12 2017 +0000 @@ -3,5 +3,6 @@ ^build- ^helpers/build-date$ ^helpers/makeline$ +^helpers/mk-flash-script$ ^helpers/srec4ram$ ^helpers/str2ind-ver$
--- a/helpers/Makefile Fri Aug 04 00:09:09 2017 +0000 +++ b/helpers/Makefile Fri Aug 04 06:54:12 2017 +0000 @@ -1,6 +1,6 @@ CC= gcc CFLAGS= -O2 -PROGS= build-date makeline srec4ram str2ind-ver +PROGS= build-date makeline mk-flash-script srec4ram str2ind-ver all: ${PROGS} @@ -10,6 +10,9 @@ makeline: makeline.c ${CC} ${CFLAGS} -o $@ $@.c +mk-flash-script: mk-flash-script.c + ${CC} ${CFLAGS} -o $@ $@.c + srec4ram: srec4ram.c ${CC} ${CFLAGS} -o $@ $@.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/helpers/mk-flash-script.c Fri Aug 04 06:54:12 2017 +0000 @@ -0,0 +1,39 @@ +/* + * This helper program generates the fc-loadtool command script + * for flashing the just-built firmware image. + */ + +#include <sys/types.h> +#include <sys/stat.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +main(argc, argv) + char **argv; +{ + struct stat st; + u_long image_size, sector_size; + + if (argc != 4) { + fprintf(stderr, + "usage: %s fwimage.bin flash-base flash-sector-size\n", + argv[0]); + exit(1); + } + if (stat(argv[1], &st) < 0) { + perror(argv[1]); + exit(1); + } + if (!S_ISREG(st.st_mode)) { + fprintf(stderr, "error: %s is not a regular file\n", argv[1]); + exit(1); + } + image_size = st.st_size; + sector_size = strtoul(argv[3], 0, 16); + image_size += sector_size - 1; + image_size &= ~(sector_size - 1); + printf("flash erase %s 0x%lx\n", argv[2], image_size); + printf("flash program-bin %s %s\n", argv[2], argv[1]); + exit(0); +}