Add argument parsing

This commit is contained in:
Markus Koch 2019-06-21 20:57:56 +02:00
parent 0834cf0c0d
commit 7df813fc71
2 changed files with 29 additions and 1 deletions

View File

@ -9,7 +9,7 @@ int fpga_generate_bitstream(struct fpga_chain *chain,
{ {
int i; int i;
char *buf = NULL; char *buf = NULL;
FILE *bitstream = stderr; FILE *bitstream = stdout;
if (strcmp(filename, "-")) { if (strcmp(filename, "-")) {
bitstream = fopen(filename, "wb"); bitstream = fopen(filename, "wb");

View File

@ -3,6 +3,8 @@
#include "fpga_fdef_loader.h" #include "fpga_fdef_loader.h"
#include "fpga_global.h" #include "fpga_global.h"
#include "fpga.h" #include "fpga.h"
#include "unistd.h"
#include "string.h"
#define E_FDEF 1 #define E_FDEF 1
#define E_BITSTREAM 2 #define E_BITSTREAM 2
@ -12,11 +14,37 @@ int development_test_main(int argc, char *argv[])
struct fpga_cell *entry_cell; struct fpga_cell *entry_cell;
struct fpga_chain *chain; struct fpga_chain *chain;
int opt;
char *fdef_filename = "fdef/4x4.fdef"; char *fdef_filename = "fdef/4x4.fdef";
char *kst_filename = "-";
char *bitstream_filename = "-"; char *bitstream_filename = "-";
set_log_level(LL_DEBUG); set_log_level(LL_DEBUG);
while((opt = getopt(argc, argv, "f:i:o:")) != -1)
{
switch(opt)
{
case 'f':
fdef_filename = optarg;
break;
case 'i':
kst_filename = optarg;
report(LL_WARNING, "Input not yet implemented.");
break;
case 'o':
bitstream_filename = optarg;
break;
case ':':
case '?':
printf("Usage: %s [-f fdef] [-i input.kst] [-o output.bin]",
argv[0]);
break;
default:
break;
}
}
entry_cell = fpga_fdef_loader_load(fdef_filename); entry_cell = fpga_fdef_loader_load(fdef_filename);
if (!entry_cell) { if (!entry_cell) {
report(LL_CRITICAL, "Error loading FDEF."); report(LL_CRITICAL, "Error loading FDEF.");