Extend comment for: USING THE BOOTLOADER.
Bitte geben Sie eine Commit-Beschreibung für Ihre Änderungen ein. Zeilen,
This commit is contained in:
parent
b6971c1db5
commit
5158878ce2
58
update.cpp
58
update.cpp
@ -386,17 +386,61 @@ bool Update::downloadBinaryToDC(QString const &bFile) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Using the DC bootloader:
|
|
||||||
1 : bl_reboot() // send to application, want DC2 to reset (in order to start
|
|
||||||
// the bootloader)
|
|
||||||
2 : bl_startBL(): // send within 4s after DC poewer-on, otherwise bl is left
|
|
||||||
3 : bl_check(): // send command to verify if bl is up
|
|
||||||
4 : bl_isUp(): // returns true if bl is up and running
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// USING THE DC BOOTLOADER
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
1 : bl_reboot() // send to application, want DC2 to reset (in order to
|
||||||
|
// start the bootloader)
|
||||||
|
//
|
||||||
|
// NOTE: this function is NOT reliable !!! Sometimes it
|
||||||
|
// simply does not work, in which case bl_startBL,
|
||||||
|
// bl_checkBL and bl_isUp do not work as well.
|
||||||
|
// Alas, there is no feedback if bl_reboot worked!
|
||||||
|
//
|
||||||
|
// NOTE: this function can be called only once per
|
||||||
|
// minute, because once called again, the controller
|
||||||
|
// performs some self-checks consuming some time.
|
||||||
|
//
|
||||||
|
// NOTE: after a successful bl_reboot(), the device is
|
||||||
|
// waiting about 4 seconds in the bootloader. To stay in
|
||||||
|
// the bootloader, we have to send the command
|
||||||
|
// bl_startBL(), which is kind of a misnomer, as it
|
||||||
|
// should be bl_doNotLeaveBL().
|
||||||
|
//
|
||||||
|
2 : bl_startBL(): // send within 4s after DC power-on, otherwise
|
||||||
|
// bootloader is left.
|
||||||
|
//
|
||||||
|
// NOTE: a running bootloader is a MUST for the download
|
||||||
|
// process of a device controller firmware as it does
|
||||||
|
// the actual writing of the memory (the bl_reboot()
|
||||||
|
// from above erases the available memory).
|
||||||
|
//
|
||||||
|
3 : bl_check(): // send command to verify if bl is up
|
||||||
|
//
|
||||||
|
// NOTE: this command is kind of a request that we want
|
||||||
|
// to check if the bootloader is up. The device
|
||||||
|
// (actually the bootloader) responds with its version.
|
||||||
|
//
|
||||||
|
4 : bl_isUp(): // returns true if bl is up and running
|
||||||
|
//
|
||||||
|
// NOTE: we know what the bootloader version actually is
|
||||||
|
// as the bootloader does not change. By comparing the
|
||||||
|
// string received in the previous step with this known
|
||||||
|
// version string we know if the bootloader is up.
|
||||||
|
//
|
||||||
|
// NOTE FOR ALL PREVIOUS STEPS: execute them in their
|
||||||
|
// own slots each to be sure to receive any possible
|
||||||
|
// responds from the device.
|
||||||
|
//
|
||||||
5 : bl_sendAddress(blockNumber)
|
5 : bl_sendAddress(blockNumber)
|
||||||
// send start address, nr of 64-byte block, start with 0
|
// send start address, nr of 64-byte block, start with 0
|
||||||
// will be sent only for following block-numbers:
|
// will be sent only for following block-numbers:
|
||||||
// 0, 1024, 2048, 3072 and 4096, so basically every 64kByte
|
// 0, 1024, 2048, 3072 and 4096, so basically every
|
||||||
|
// 64kByte.
|
||||||
// for other addresses nothing happens
|
// for other addresses nothing happens
|
||||||
|
|
||||||
6 : bl_wasSendingAddOK()
|
6 : bl_wasSendingAddOK()
|
||||||
|
Loading…
Reference in New Issue
Block a user