mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-16 12:33:34 +08:00
Merge branch 'master' into navigator_new_vector
This commit is contained in:
@@ -203,6 +203,12 @@ dsm_guess_format(bool reset)
|
||||
int
|
||||
dsm_init(const char *device)
|
||||
{
|
||||
|
||||
#ifdef CONFIG_ARCH_BOARD_PX4IO_V2
|
||||
// enable power on DSM connector
|
||||
POWER_SPEKTRUM(true);
|
||||
#endif
|
||||
|
||||
if (dsm_fd < 0)
|
||||
dsm_fd = open(device, O_RDONLY | O_NONBLOCK);
|
||||
|
||||
|
||||
@@ -125,6 +125,25 @@ heartbeat_blink(void)
|
||||
LED_BLUE(heartbeat = !heartbeat);
|
||||
}
|
||||
|
||||
static uint64_t reboot_time;
|
||||
|
||||
/**
|
||||
schedule a reboot in time_delta_usec microseconds
|
||||
*/
|
||||
void schedule_reboot(uint32_t time_delta_usec)
|
||||
{
|
||||
reboot_time = hrt_absolute_time() + time_delta_usec;
|
||||
}
|
||||
|
||||
/**
|
||||
check for a scheduled reboot
|
||||
*/
|
||||
static void check_reboot(void)
|
||||
{
|
||||
if (reboot_time != 0 && hrt_absolute_time() > reboot_time) {
|
||||
up_systemreset();
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
calculate_fw_crc(void)
|
||||
@@ -249,6 +268,8 @@ user_start(int argc, char *argv[])
|
||||
heartbeat_blink();
|
||||
}
|
||||
|
||||
check_reboot();
|
||||
|
||||
#if 0
|
||||
/* check for debug activity */
|
||||
show_debug_messages();
|
||||
|
||||
@@ -220,3 +220,7 @@ extern volatile uint8_t debug_level;
|
||||
|
||||
/** send a debug message to the console */
|
||||
extern void isr_debug(uint8_t level, const char *fmt, ...);
|
||||
|
||||
/** schedule a reboot */
|
||||
extern void schedule_reboot(uint32_t time_delta_usec);
|
||||
|
||||
|
||||
@@ -516,16 +516,11 @@ registers_set_one(uint8_t page, uint8_t offset, uint16_t value)
|
||||
// check the magic value
|
||||
if (value != PX4IO_REBOOT_BL_MAGIC)
|
||||
break;
|
||||
|
||||
// note that we don't set BL_WAIT_MAGIC in
|
||||
// BKP_DR1 as that is not necessary given the
|
||||
// timing of the forceupdate command. The
|
||||
// bootloader on px4io waits for enough time
|
||||
// anyway, and this method works with older
|
||||
// bootloader versions (tested with both
|
||||
// revision 3 and revision 4).
|
||||
|
||||
up_systemreset();
|
||||
// we schedule a reboot rather than rebooting
|
||||
// immediately to allow the IO board to ACK
|
||||
// the reboot command
|
||||
schedule_reboot(100000);
|
||||
break;
|
||||
|
||||
case PX4IO_P_SETUP_DSM:
|
||||
|
||||
Reference in New Issue
Block a user