aboutsummaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-12-16 12:02:01 +0100
committerLorenz Meier <lm@inf.ethz.ch>2013-12-16 12:02:01 +0100
commitd53b00283e4b57611cc7e8c85a4dd1f18629aab0 (patch)
treedbe1926e0ab9a0a7f694e07867746caadaf4c05c /src/drivers
parent43582cdb6843cdcfdc8f0deba1439b6c3fe7e417 (diff)
downloadpx4-firmware-d53b00283e4b57611cc7e8c85a4dd1f18629aab0.tar.gz
px4-firmware-d53b00283e4b57611cc7e8c85a4dd1f18629aab0.tar.bz2
px4-firmware-d53b00283e4b57611cc7e8c85a4dd1f18629aab0.zip
PX4IO upgrade improvement
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/px4io/px4io.cpp66
1 files changed, 33 insertions, 33 deletions
diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp
index 569f1e413..db882e623 100644
--- a/src/drivers/px4io/px4io.cpp
+++ b/src/drivers/px4io/px4io.cpp
@@ -2562,6 +2562,39 @@ px4io_main(int argc, char *argv[])
if_test((argc > 2) ? strtol(argv[2], NULL, 0) : 0);
}
+ if (!strcmp(argv[1], "forceupdate")) {
+ /*
+ force update of the IO firmware without requiring
+ the user to hold the safety switch down
+ */
+ if (argc <= 3) {
+ warnx("usage: px4io forceupdate MAGIC filename");
+ exit(1);
+ }
+ if (g_dev == nullptr) {
+ warnx("px4io is not started, still attempting upgrade");
+ } else {
+ uint16_t arg = atol(argv[2]);
+ int ret = g_dev->ioctl(nullptr, PX4IO_REBOOT_BOOTLOADER, arg);
+ if (ret != OK) {
+ printf("reboot failed - %d\n", ret);
+ exit(1);
+ }
+
+ // tear down the px4io instance
+ delete g_dev;
+ }
+
+ // upload the specified firmware
+ const char *fn[2];
+ fn[0] = argv[3];
+ fn[1] = nullptr;
+ PX4IO_Uploader *up = new PX4IO_Uploader;
+ up->upload(&fn[0]);
+ delete up;
+ exit(0);
+ }
+
/* commands below here require a started driver */
if (g_dev == nullptr)
@@ -2647,39 +2680,6 @@ px4io_main(int argc, char *argv[])
exit(0);
}
- if (!strcmp(argv[1], "forceupdate")) {
- /*
- force update of the IO firmware without requiring
- the user to hold the safety switch down
- */
- if (argc <= 3) {
- warnx("usage: px4io forceupdate MAGIC filename");
- exit(1);
- }
- if (g_dev == nullptr) {
- warnx("px4io is not started, still attempting upgrade");
- } else {
- uint16_t arg = atol(argv[2]);
- int ret = g_dev->ioctl(nullptr, PX4IO_REBOOT_BOOTLOADER, arg);
- if (ret != OK) {
- printf("reboot failed - %d\n", ret);
- exit(1);
- }
-
- // tear down the px4io instance
- delete g_dev;
- }
-
- // upload the specified firmware
- const char *fn[2];
- fn[0] = argv[3];
- fn[1] = nullptr;
- PX4IO_Uploader *up = new PX4IO_Uploader;
- up->upload(&fn[0]);
- delete up;
- exit(0);
- }
-
if (!strcmp(argv[1], "checkcrc")) {
/*
check IO CRC against CRC of a file