diff options
author | Paul David <paul.david@ettus.com> | 2017-03-14 19:35:50 -0400 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-06-30 10:50:37 -0700 |
commit | 6ed6a01784a5846a462fdef92b1bcd6c1f1c90d9 (patch) | |
tree | 41f2b1f72d9192b7023cb8c7b0e108de4e3f75c2 | |
parent | 55ce8d93dbe5cd77d64ec8274f6b6d05027cc76f (diff) | |
download | uhd-6ed6a01784a5846a462fdef92b1bcd6c1f1c90d9.tar.gz uhd-6ed6a01784a5846a462fdef92b1bcd6c1f1c90d9.tar.bz2 uhd-6ed6a01784a5846a462fdef92b1bcd6c1f1c90d9.zip |
Utils: Added X3xx support for reading FPGA images
-rw-r--r-- | host/utils/uhd_image_loader.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/host/utils/uhd_image_loader.cpp b/host/utils/uhd_image_loader.cpp index 5ea789ee2..5f5ed2871 100644 --- a/host/utils/uhd_image_loader.cpp +++ b/host/utils/uhd_image_loader.cpp @@ -1,5 +1,5 @@ // -// Copyright 2015 Ettus Research LLC +// Copyright 2015-2017 Ettus Research // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -56,17 +56,16 @@ void sigint_handler(int){ int UHD_SAFE_MAIN(int argc, char *argv[]){ - std::string fw_path = ""; - std::string fpga_path = ""; - po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value<std::string>()->default_value(""), "Device args, optional loader args") - ("fw-path", po::value<std::string>(&fw_path)->default_value(""), "Firmware path (uses default if none specified)") - ("fpga-path", po::value<std::string>(&fpga_path)->default_value(""), "FPGA path (uses default if none specified)") + ("fw-path", po::value<std::string>()->default_value(""), "Firmware path (uses default if none specified)") + ("fpga-path", po::value<std::string>()->default_value(""), "FPGA path (uses default if none specified)") + ("out-path", po::value<std::string>()->default_value(""), "Output path/filename of the downloaded FPGA .bit file") ("no-fw", "Don't burn firmware") - ("no-fpga", "Don't burn FPGA") + ("no-fpga", "Don't Burn FPGA") + ("download", "Download an image to a bit/bin file") ; po::variables_map vm; @@ -86,10 +85,12 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ // Convert user options uhd::image_loader::image_loader_args_t image_loader_args; image_loader_args.args = vm["args"].as<std::string>(); - image_loader_args.load_firmware = (vm.count("no-fw") == 0); - image_loader_args.load_fpga = (vm.count("no-fpga") == 0); + image_loader_args.load_firmware = (vm.count("no-fw") == 0); + image_loader_args.load_fpga = (vm.count("no-fpga") == 0); + image_loader_args.download = (vm.count("download") != 0); image_loader_args.firmware_path = vm["fw-path"].as<std::string>(); image_loader_args.fpga_path = vm["fpga-path"].as<std::string>(); + image_loader_args.out_path = vm["out-path"].as<std::string>(); // Force user to specify a device if(not image_loader_args.args.has_key("type")){ @@ -113,6 +114,14 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ #endif /* UHD_PLATFORM_WIN32 */ image_loader_args.fpga_path = fs::absolute(image_loader_args.fpga_path).string(); } + if(image_loader_args.out_path != ""){ + #ifndef UHD_PLATFORM_WIN32 + if(image_loader_args.out_path.find("~") == 0){ + image_loader_args.out_path.replace(0,1,getenv("HOME")); + } + #endif /* UHD_PLATFORM_WIN32 */ + image_loader_args.out_path = fs::absolute(image_loader_args.out_path).string(); + } // Detect which type of device we're working with device_type = image_loader_args.args.get("type",""); |