Add jump to slave bootloader command.

This commit is contained in:
László Monda
2017-10-12 19:57:41 +02:00
parent d2fd7bc613
commit ef34094004
4 changed files with 36 additions and 1 deletions

View File

@@ -174,6 +174,19 @@ status_t UhkModuleSlaveDriver_Update(uint8_t uhkModuleDriverId)
BoolBitsToBytes(rxMessage->data, CurrentKeyStates[slotId], uhkModuleState->features.keyCount);
}
status = kStatus_Uhk_NoTransfer;
*uhkModulePhase = UhkModulePhase_JumpToBootloader;
break;
// Jump to bootloader
case UhkModulePhase_JumpToBootloader:
if (uhkModuleState->jumpToBootloader) {
txMessage.data[0] = SlaveCommand_JumpToBootloader;
txMessage.length = 1;
status = tx(i2cAddress);
uhkModuleState->jumpToBootloader = false;
} else {
status = kStatus_Uhk_NoTransfer;
}
*uhkModulePhase = UhkModulePhase_SetTestLed;
break;

View File

@@ -47,8 +47,9 @@
UhkModulePhase_ProcessKeystates,
// Misc phases
UhkModulePhase_SetLedPwmBrightness,
UhkModulePhase_JumpToBootloader,
UhkModulePhase_SetTestLed,
UhkModulePhase_SetLedPwmBrightness,
} uhk_module_phase_t;
@@ -67,6 +68,7 @@
uint8_t firmwareI2cAddress;
uint8_t bootloaderI2cAddress;
uhk_module_features_t features;
bool jumpToBootloader;
} uhk_module_state_t;
typedef struct {