mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-26 12:20:34 +08:00
Merge branch 'ext_mag_param' into logging
This commit is contained in:
@@ -240,6 +240,7 @@ private:
|
||||
* @param context Pointer to the interrupted context.
|
||||
*/
|
||||
static void dev_interrupt(int irq, void *context);
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -469,6 +470,10 @@ private:
|
||||
* @return OK, or -errno on error.
|
||||
*/
|
||||
int remove_poll_waiter(struct pollfd *fds);
|
||||
|
||||
/* do not allow copying this class */
|
||||
CDev(const CDev&);
|
||||
CDev operator=(const CDev&);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1358,8 +1358,8 @@ namespace hmc5883
|
||||
#endif
|
||||
const int ERROR = -1;
|
||||
|
||||
HMC5883 *g_dev_int;
|
||||
HMC5883 *g_dev_ext;
|
||||
HMC5883 *g_dev_int = nullptr;
|
||||
HMC5883 *g_dev_ext = nullptr;
|
||||
|
||||
void start(int bus, enum Rotation rotation);
|
||||
void test(int bus);
|
||||
@@ -1395,6 +1395,11 @@ start(int bus, enum Rotation rotation)
|
||||
errx(0, "already started internal");
|
||||
g_dev_int = new HMC5883(PX4_I2C_BUS_ONBOARD, HMC5883L_DEVICE_PATH_INT, rotation);
|
||||
if (g_dev_int != nullptr && OK != g_dev_int->init()) {
|
||||
|
||||
/* tear down the failing onboard instance */
|
||||
delete g_dev_int;
|
||||
g_dev_int = nullptr;
|
||||
|
||||
if (bus == PX4_I2C_BUS_ONBOARD) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -204,12 +204,8 @@ PX4IO_Uploader::upload(const char *filenames[])
|
||||
|
||||
if (bl_rev <= 2) {
|
||||
ret = verify_rev2(fw_size);
|
||||
} else if(bl_rev == 3) {
|
||||
ret = verify_rev3(fw_size);
|
||||
} else {
|
||||
/* verify rev 4 and higher still uses the same approach and
|
||||
* every version *needs* to be verified.
|
||||
*/
|
||||
/* verify rev 3 and higher. Every version *needs* to be verified. */
|
||||
ret = verify_rev3(fw_size);
|
||||
}
|
||||
|
||||
@@ -276,14 +272,14 @@ PX4IO_Uploader::recv(uint8_t &c, unsigned timeout)
|
||||
int
|
||||
PX4IO_Uploader::recv(uint8_t *p, unsigned count)
|
||||
{
|
||||
int ret;
|
||||
while (count--) {
|
||||
int ret = recv(*p++, 5000);
|
||||
ret = recv(*p++, 5000);
|
||||
|
||||
if (ret != OK)
|
||||
return ret;
|
||||
break;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -314,21 +310,19 @@ PX4IO_Uploader::send(uint8_t c)
|
||||
#endif
|
||||
if (write(_io_fd, &c, 1) != 1)
|
||||
return -errno;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
int
|
||||
PX4IO_Uploader::send(uint8_t *p, unsigned count)
|
||||
{
|
||||
int ret;
|
||||
while (count--) {
|
||||
int ret = send(*p++);
|
||||
|
||||
ret = send(*p++);
|
||||
if (ret != OK)
|
||||
return ret;
|
||||
break;
|
||||
}
|
||||
|
||||
return OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -419,12 +413,15 @@ PX4IO_Uploader::program(size_t fw_size)
|
||||
int ret;
|
||||
size_t sent = 0;
|
||||
|
||||
file_buf = (uint8_t *)malloc(PROG_MULTI_MAX);
|
||||
file_buf = new uint8_t[PROG_MULTI_MAX];
|
||||
if (!file_buf) {
|
||||
log("Can't allocate program buffer");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ASSERT((fw_size & 3) == 0);
|
||||
ASSERT((PROG_MULTI_MAX & 3) == 0);
|
||||
|
||||
log("programming %u bytes...", (unsigned)fw_size);
|
||||
|
||||
ret = lseek(_fw_fd, 0, SEEK_SET);
|
||||
@@ -443,34 +440,26 @@ PX4IO_Uploader::program(size_t fw_size)
|
||||
(unsigned)sent,
|
||||
(int)count,
|
||||
(int)errno);
|
||||
}
|
||||
|
||||
if (count == 0) {
|
||||
free(file_buf);
|
||||
return OK;
|
||||
ret = -errno;
|
||||
break;
|
||||
}
|
||||
|
||||
sent += count;
|
||||
|
||||
if (count < 0)
|
||||
return -errno;
|
||||
|
||||
ASSERT((count % 4) == 0);
|
||||
|
||||
send(PROTO_PROG_MULTI);
|
||||
send(count);
|
||||
send(&file_buf[0], count);
|
||||
send(file_buf, count);
|
||||
send(PROTO_EOC);
|
||||
|
||||
ret = get_sync(1000);
|
||||
|
||||
if (ret != OK) {
|
||||
free(file_buf);
|
||||
return ret;
|
||||
break;
|
||||
}
|
||||
}
|
||||
free(file_buf);
|
||||
return OK;
|
||||
|
||||
delete [] file_buf;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
|
||||
@@ -75,7 +75,6 @@ private:
|
||||
INFO_FLASH_SIZE = 4, /**< max firmware size in bytes */
|
||||
|
||||
PROG_MULTI_MAX = 60, /**< protocol max is 255, must be multiple of 4 */
|
||||
READ_MULTI_MAX = 60, /**< protocol max is 255, something overflows with >= 64 */
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user