From 807db81bdd99812bbdbbf05aefd42901628d4cf3 Mon Sep 17 00:00:00 2001 From: Harsh Sharma Date: Wed, 16 Mar 2022 12:35:57 -0500 Subject: Fixed fpga loader --- src/MtsIoSysfs.cpp | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) (limited to 'src/MtsIoSysfs.cpp') diff --git a/src/MtsIoSysfs.cpp b/src/MtsIoSysfs.cpp index c7e892a..8bde1fb 100644 --- a/src/MtsIoSysfs.cpp +++ b/src/MtsIoSysfs.cpp @@ -33,6 +33,7 @@ enum action_code { ACTION_INIT, ACTION_JSON, ACTION_LOAD_FPGA, + ACTION_CHECK_FPGA, ACTION_SHOW, ACTION_SHOW_TRIGGER, ACTION_STORE, @@ -56,11 +57,12 @@ int main(int argc, char **argv) { int c; static struct option long_options[] = { {"help", no_argument, nullptr, 'h'}, + {"check", no_argument, nullptr, 'c'}, {"data", required_argument, nullptr, 'd'}, {"input", required_argument, nullptr, 'i'}, {"init", no_argument, nullptr, 'I'}, {"json", no_argument, nullptr, 'j'}, - {"load-fpga", optional_argument, nullptr, 'l'}, + {"load-fpga", no_argument, nullptr, 'l'}, {"path", required_argument, nullptr, 'p'}, {"show", required_argument, nullptr, 's'}, {"show-trigger", required_argument, nullptr, 'S'}, @@ -73,7 +75,7 @@ int main(int argc, char **argv) { for (;;) { int option_index = 0; - c = getopt_long(argc, argv, "d:hi:Ijl:p:s:St:T:vV", long_options, + c = getopt_long(argc, argv, "cd:hi:Ijlp:s:St:T:vV", long_options, &option_index); if (c == -1) break; @@ -87,6 +89,10 @@ int main(int argc, char **argv) { true); break; } + case 'c': { + action = ACTION_CHECK_FPGA; + break; + } case 'd': { data = optarg; break; @@ -96,7 +102,7 @@ int main(int argc, char **argv) { break; } case 'p': { - forcedAP = optarg; + forcedAP = std::string(optarg); break; } case 'I': { @@ -107,6 +113,10 @@ int main(int argc, char **argv) { action = ACTION_JSON; break; } + case 'l': { + action = ACTION_LOAD_FPGA; + break; + } case 's': { action = ACTION_SHOW; name = optarg; @@ -127,18 +137,17 @@ int main(int argc, char **argv) { name = optarg; break; } - case 'L': { - action = ACTION_LOAD_FPGA; - break; + case ':': { + printf("Missing arg for %c\n", optopt); + exit(-1); } - case '?': { - printError("%s option requires arguement", optopt); - break; + case 'h': { + m.printUsage(argv[0]); + exit(0); } - case 'h': default: m.printUsage(argv[0]); - exit(0); + exit(-1); } } @@ -184,7 +193,9 @@ int main(int argc, char **argv) { action = ACTION_NONE; } } else if (strcmp(argv[index], COMMMAND_LOAD_FPGA) == 0) { - action = ACTION_LOAD_FPGA; + if (action != ACTION_CHECK_FPGA) { + action = ACTION_LOAD_FPGA; + } } else if (strcmp(argv[index], COMMMAND_VERSION) == 0) { action = ACTION_VERSION; } else if (strcmp(argv[index], COMMMAND_EXTRA) == 0) { @@ -216,6 +227,10 @@ int main(int argc, char **argv) { case ACTION_JSON: { m.json(); } + case ACTION_CHECK_FPGA: { + Mtac15Fpga mtac15Fpga(fpgaFilePath, forcedAP); + mtac15Fpga.printFpgaVersion(); + } case ACTION_LOAD_FPGA: { Mtac15Fpga mtac15Fpga(fpgaFilePath, forcedAP); return mtac15Fpga.upgradeFpga(); -- cgit v1.2.3