1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 14:25:20 +03:00

allow configurable bootloader reboot character to workaround retarded BT adapters that spam 'R'

This commit is contained in:
dongie 2014-04-06 13:42:10 +09:00
parent c0882fd863
commit f336fc8d20
6 changed files with 3492 additions and 3437 deletions

View file

@ -139,6 +139,8 @@
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreTracepoints>1</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>1</TargetSelection>
@ -353,6 +355,8 @@
<wLevel>2</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
<VariousControls>
<MiscControls>--c99 --gnu</MiscControls>
<Define>STM32F10X_MD,USE_STDPERIPH_DRIVER</Define>
@ -369,6 +373,7 @@
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -385,6 +390,7 @@
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
@ -579,6 +585,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -625,6 +633,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -726,6 +736,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -742,6 +754,7 @@
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -843,6 +856,7 @@
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -1000,6 +1014,8 @@
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreTracepoints>1</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>1</TargetSelection>
@ -1214,6 +1230,8 @@
<wLevel>2</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
<VariousControls>
<MiscControls>--c99 --gnu</MiscControls>
<Define>STM32F10X_MD,USE_STDPERIPH_DRIVER</Define>
@ -1230,6 +1248,7 @@
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -1246,6 +1265,7 @@
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
@ -1440,6 +1460,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -1486,6 +1508,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -1647,6 +1671,7 @@
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -1804,6 +1829,8 @@
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreTracepoints>1</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>1</TargetSelection>
@ -2018,6 +2045,8 @@
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define>STM32F10X_MD,USE_STDPERIPH_DRIVER,FY90Q</Define>
@ -2034,6 +2063,7 @@
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2050,6 +2080,7 @@
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
@ -2189,6 +2220,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2235,6 +2268,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2281,6 +2316,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2327,6 +2364,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2378,6 +2417,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2424,6 +2465,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2480,6 +2523,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2526,6 +2571,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2637,6 +2684,8 @@
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2653,6 +2702,7 @@
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@ -2749,6 +2799,7 @@
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>

File diff suppressed because it is too large Load diff

View file

@ -125,6 +125,7 @@ const clivalue_t valueTable[] = {
{ "retarded_arm", VAR_UINT8, &mcfg.retarded_arm, 0, 1 },
{ "flaps_speed", VAR_UINT8, &mcfg.flaps_speed, 0, 100 },
{ "fixedwing_althold_dir", VAR_INT8, &mcfg.fixedwing_althold_dir, -1, 1 },
{ "reboot_character", VAR_UINT8, &mcfg.reboot_character, 48, 126 },
{ "serial_baudrate", VAR_UINT32, &mcfg.serial_baudrate, 1200, 115200 },
{ "softserial_baudrate", VAR_UINT32, &mcfg.softserial_baudrate, 1200, 19200 },
{ "softserial_1_inverted", VAR_UINT8, &mcfg.softserial_1_inverted, 0, 1 },

View file

@ -13,7 +13,7 @@ master_t mcfg; // master config struct with data independent from profiles
config_t cfg; // profile config struct
const char rcChannelLetters[] = "AERT1234";
static const uint8_t EEPROM_CONF_VERSION = 59;
static const uint8_t EEPROM_CONF_VERSION = 60;
static uint32_t enabledSensors = 0;
static void resetConf(void);
@ -308,6 +308,9 @@ static void resetConf(void)
cfg.nav_speed_max = 300;
cfg.ap_mode = 40;
// control stuff
mcfg.reboot_character = 'R';
// custom mixer. clear by defaults.
for (i = 0; i < MAX_MOTORS; i++)
mcfg.customMixer[i].throttle = 0.0f;

View file

@ -284,6 +284,7 @@ typedef struct master_t {
uint8_t telemetry_switch; // Use aux channel to change serial output & baudrate( MSP / Telemetry ). It disables automatic switching to Telemetry when armed.
config_t profile[3]; // 3 separate profiles
uint8_t current_profile; // currently loaded profile
uint8_t reboot_character; // which byte is used to reboot. Default 'R', could be changed carefully to something else.
uint8_t magic_ef; // magic number, should be 0xEF
uint8_t chk; // XOR checksum

View file

@ -632,14 +632,10 @@ static void evaluateCommand(void)
// evaluate all other incoming serial data
static void evaluateOtherData(uint8_t sr)
{
switch (sr) {
case '#':
if (sr == '#')
cliProcess();
break;
case 'R':
else if (sr == mcfg.reboot_character)
systemReset(true); // reboot to bootloader
break;
}
}
void serialCom(void)