FreeCalypso > hg > freecalypso-sw
diff loadtools/ltmain.c @ 22:e658a84b37df
loadtool coming along
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sat, 04 May 2013 04:36:29 +0000 |
parents | |
children | aca1948e9713 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loadtools/ltmain.c Sat May 04 04:36:29 2013 +0000 @@ -0,0 +1,68 @@ +/* + * This module contains the main() function for fc-loadtool + */ + +#include <sys/types.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include "srecreader.h" + +extern char *target_ttydev; +extern struct srecreader iramimage; +extern char default_loadagent_image[]; + +char loadtool_command[512]; + +main(argc, argv) + char **argv; +{ + extern char *optarg; + extern int optind; + int c; + + while ((c = getopt(argc, argv, "a:h:H:i:")) != EOF) + switch (c) { + case 'a': + iramimage.filename = optarg; + continue; + case 'h': + read_hwparam_file_shortname(optarg); + continue; + case 'H': + read_hwparam_file_fullpath(optarg); + continue; + case 'i': + set_beacon_interval(optarg); + continue; + case '?': + default: +usage: fprintf(stderr, + "usage: fc-loadtool [options] ttyport\n"); + exit(1); + } + if (argc - optind != 1) + goto usage; + target_ttydev = argv[optind]; + if (!iramimage.filename) + iramimage.filename = default_loadagent_image; + + open_target_serial(); + perform_romload(); + putchar('\n'); + if (tpinterf_pass_output() < 0) { + fprintf(stderr, + "loadtool error: no '=' prompt received from target\n"); + exit(1); + } + for (;;) { + if (isatty(0)) { + fputs("loadtool> ", stdout); + fflush(stdout); + } + if (!fgets(loadtool_command, sizeof loadtool_command, stdin)) + exit(0); + loadtool_dispatch_cmd(); + } +}