FreeCalypso > hg > fc-magnetite
diff helpers/mk-flash-script.c @ 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 | |
children |
line wrap: on
line diff
--- /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); +}