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();
+	}
+}