forked from Archive/PX4-Autopilot
px4io: ensure upload device is closed after use
this should release it for PWM use
This commit is contained in:
parent
421253e6db
commit
fc572906b7
|
@ -127,6 +127,8 @@ PX4IO_Uploader::upload(const char *filenames[])
|
|||
if (ret != OK) {
|
||||
/* this is immediately fatal */
|
||||
log("bootloader not responding");
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -145,18 +147,25 @@ PX4IO_Uploader::upload(const char *filenames[])
|
|||
|
||||
if (filename == NULL) {
|
||||
log("no firmware found");
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
struct stat st;
|
||||
if (stat(filename, &st) != 0) {
|
||||
log("Failed to stat %s - %d\n", filename, (int)errno);
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return -errno;
|
||||
}
|
||||
fw_size = st.st_size;
|
||||
|
||||
if (_fw_fd == -1)
|
||||
if (_fw_fd == -1) {
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
/* do the usual program thing - allow for failure */
|
||||
for (unsigned retries = 0; retries < 1; retries++) {
|
||||
|
@ -167,6 +176,8 @@ PX4IO_Uploader::upload(const char *filenames[])
|
|||
if (ret != OK) {
|
||||
/* this is immediately fatal */
|
||||
log("bootloader not responding");
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
|
@ -178,6 +189,8 @@ PX4IO_Uploader::upload(const char *filenames[])
|
|||
log("found bootloader revision: %d", bl_rev);
|
||||
} else {
|
||||
log("found unsupported bootloader revision %d, exiting", bl_rev);
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
|
@ -221,6 +234,8 @@ PX4IO_Uploader::upload(const char *filenames[])
|
|||
}
|
||||
|
||||
close(_fw_fd);
|
||||
close(_io_fd);
|
||||
_io_fd = -1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue