1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-03 11:24:10 +01:00
LibrePilot/flight/CopterControl/System
Stacey Sheldon f886af186d bootfault: add support for recovery from init failures
After 3 failed warm start attempts, the init sequence
will force the RAM version of the HWSettings object
to its defaults.  This should allow a user to regain
connectivity to a board that is continually faulting
during init.

This is accomplished by:
 - Incrementing a boot counter that is stored in the
   STM32 BKP registers.  These registers survive a
   warm start but are cleared on a cold start (ie. powerup).
 - On multiple failures, force hwsettings to defaults
   and raise the (new) BootFault alarm to prevent arming.
 - Resetting the boot counter whenever the system manages
   to successfully run the System Module task.

NOTE: This does not actually change the hwsettings object in
      flash.  That's up to the user.

This is intended to catch ONLY faults during early initialization.
It should not be used to recover from faults after the application
is up and running.
2011-12-30 23:05:38 -05:00
..
inc diag-tasks: make taskinfo diagnostics a separate enable 2011-12-30 23:05:37 -05:00
alarms.c Register some missing objects with their modules 2011-07-30 11:28:21 +09:00
coptercontrol.c Bring back the ERASE_FLASH option support for SettingsEraseFirmware 2011-11-26 22:57:33 +02:00
pios_board_posix.c Disable auto registration of all objects. Later the uavobj_init linker scripts 2011-07-30 10:24:46 +09:00
pios_board.c bootfault: add support for recovery from init failures 2011-12-30 23:05:38 -05:00
pios_usb_hid_desc.c usb cdc: fix device descriptor to work on Mac 2011-12-30 23:05:34 -05:00
taskmonitor.c diag-tasks: make taskinfo diagnostics a separate enable 2011-12-30 23:05:37 -05:00