Commit 75c306a2 authored by Don Gagne's avatar Don Gagne

Merge pull request #2580 from DonLakeFlyer/RadioFlash

Fix RadioFlash
parents e8f7c3a1 09a3dc28
...@@ -273,7 +273,7 @@ bool Bootloader::_ihxProgram(QextSerialPort* port, const FirmwareImage* image) ...@@ -273,7 +273,7 @@ bool Bootloader::_ihxProgram(QextSerialPort* port, const FirmwareImage* image)
return false; return false;
} }
qCDebug(FirmwareUpgradeVerboseLog) << QString("Bootloader::_ihxProgram - address:%1 size:%2 block:%3").arg(flashAddress).arg(bytes.count()).arg(index); qCDebug(FirmwareUpgradeVerboseLog) << QString("Bootloader::_ihxProgram - address:0x%1 size:%2 block:%3").arg(flashAddress, 8, 16, QLatin1Char('0')).arg(bytes.count()).arg(index);
// Set flash address // Set flash address
...@@ -400,7 +400,7 @@ bool Bootloader::_binVerifyBytes(QextSerialPort* port, const FirmwareImage* imag ...@@ -400,7 +400,7 @@ bool Bootloader::_binVerifyBytes(QextSerialPort* port, const FirmwareImage* imag
_write(port, (uint8_t)bytesToRead) && _write(port, (uint8_t)bytesToRead) &&
_write(port, PROTO_EOC)) { _write(port, PROTO_EOC)) {
port->flush(); port->flush();
if (_read(port, readBuf, sizeof(readBuf))) { if (_read(port, readBuf, bytesToRead)) {
if (_getCommandResponse(port)) { if (_getCommandResponse(port)) {
failed = false; failed = false;
} }
...@@ -479,7 +479,7 @@ bool Bootloader::_ihxVerifyBytes(QextSerialPort* port, const FirmwareImage* imag ...@@ -479,7 +479,7 @@ bool Bootloader::_ihxVerifyBytes(QextSerialPort* port, const FirmwareImage* imag
} else { } else {
bytesToRead = bytesLeftToRead; bytesToRead = bytesLeftToRead;
} }
failed = true; failed = true;
if (_write(port, PROTO_READ_MULTI) && if (_write(port, PROTO_READ_MULTI) &&
_write(port, bytesToRead) && _write(port, bytesToRead) &&
......
...@@ -134,8 +134,8 @@ private: ...@@ -134,8 +134,8 @@ private:
INFO_BOARD_REV = 3, ///< board revision INFO_BOARD_REV = 3, ///< board revision
INFO_FLASH_SIZE = 4, ///< max firmware size in bytes INFO_FLASH_SIZE = 4, ///< max firmware size in bytes
PROG_MULTI_MAX = 64, ///< write size for PROTO_PROG_MULTI, must be multiple of 4 PROG_MULTI_MAX = 64, ///< write size for PROTO_PROG_MULTI, must be multiple of 4
READ_MULTI_MAX = 255 ///< read size for PROTO_READ_MULTI, must be multiple of 4 READ_MULTI_MAX = 0x28 ///< read size for PROTO_READ_MULTI, must be multiple of 4. Sik Radio max size is 0x28
}; };
uint32_t _boardID; ///< board id for currently connected board uint32_t _boardID; ///< board id for currently connected board
......
...@@ -165,7 +165,8 @@ bool FirmwareImage::_ihxLoad(const QString& ihxFilename) ...@@ -165,7 +165,8 @@ bool FirmwareImage::_ihxLoad(const QString& ihxFilename)
if (appendToLastBlock) { if (appendToLastBlock) {
_ihxBlocks[_ihxBlocks.count() - 1].bytes += bytes; _ihxBlocks[_ihxBlocks.count() - 1].bytes += bytes;
qCDebug(FirmwareUpgradeVerboseLog) << QString("_ihxLoad - append - address:%1 size:%2 block:%3").arg(address).arg(blockByteCount).arg(ihxBlockCount()); // Too noisy even for verbose
//qCDebug(FirmwareUpgradeVerboseLog) << QString("_ihxLoad - append - address:%1 size:%2 block:%3").arg(address).arg(blockByteCount).arg(ihxBlockCount());
} else { } else {
IntelHexBlock_t block; IntelHexBlock_t block;
......
...@@ -95,7 +95,7 @@ void PX4FirmwareUpgradeThreadWorker::_startFindBoardLoop(void) ...@@ -95,7 +95,7 @@ void PX4FirmwareUpgradeThreadWorker::_startFindBoardLoop(void)
void PX4FirmwareUpgradeThreadWorker::_findBoardOnce(void) void PX4FirmwareUpgradeThreadWorker::_findBoardOnce(void)
{ {
qCDebug(FirmwareUpgradeLog) << "_findBoardOnce"; qCDebug(FirmwareUpgradeVerboseLog) << "_findBoardOnce";
QGCSerialPortInfo portInfo; QGCSerialPortInfo portInfo;
QGCSerialPortInfo::BoardType_t boardType; QGCSerialPortInfo::BoardType_t boardType;
...@@ -200,9 +200,9 @@ void PX4FirmwareUpgradeThreadWorker::_3drRadioForceBootloader(const QGCSerialPor ...@@ -200,9 +200,9 @@ void PX4FirmwareUpgradeThreadWorker::_3drRadioForceBootloader(const QGCSerialPor
emit error("Unable to reboot radio (ready read)"); emit error("Unable to reboot radio (ready read)");
return; return;
} }
QGC::SLEEP::msleep(700);
port.close(); port.close();
QGC::SLEEP::msleep(2000);
// The bootloader should be waiting for us now // The bootloader should be waiting for us now
_findBootloader(portInfo, true /* radio mode */, true /* errorOnNotFound */); _findBootloader(portInfo, true /* radio mode */, true /* errorOnNotFound */);
...@@ -232,6 +232,10 @@ bool PX4FirmwareUpgradeThreadWorker::_findBootloader(const QGCSerialPortInfo& po ...@@ -232,6 +232,10 @@ bool PX4FirmwareUpgradeThreadWorker::_findBootloader(const QGCSerialPortInfo& po
} }
} }
if (radioMode) {
QGC::SLEEP::msleep(2000);
}
if (_bootloader->sync(_bootloaderPort)) { if (_bootloader->sync(_bootloaderPort)) {
bool success; bool success;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment