diff options
author | Andrew Tridgell <tridge@samba.org> | 2014-01-07 15:59:18 +0800 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-01-07 09:30:56 +0100 |
commit | 1a13e66aab3cd88b5447448b577fc44165ab01bc (patch) | |
tree | 77972a5cb24c42c4e016af76bcac318c2748a451 /src/modules/px4iofirmware/registers.c | |
parent | 76477b205775ddcbce6147d93985ddcdb10a3d52 (diff) | |
download | px4-firmware-1a13e66aab3cd88b5447448b577fc44165ab01bc.tar.gz px4-firmware-1a13e66aab3cd88b5447448b577fc44165ab01bc.tar.bz2 px4-firmware-1a13e66aab3cd88b5447448b577fc44165ab01bc.zip |
px4iofirmware: make forceupdate more reliable
this schedules a reboot rather than rebooting immediately, which means
the FMU gets an ACK for its reboot operation, preventing it from
timing out waiting for the ACK. That makes the timing of the reboot
more consistent, which makes it more reliable for forceupdate
Diffstat (limited to 'src/modules/px4iofirmware/registers.c')
-rw-r--r-- | src/modules/px4iofirmware/registers.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c index 0358725db..ad4473073 100644 --- a/src/modules/px4iofirmware/registers.c +++ b/src/modules/px4iofirmware/registers.c @@ -518,16 +518,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: |