Don't ad-block us - support your favorite websites. We have safe, unobstrusive, robotics related ads that you actually want to see - see here for more.
0 Members and 1 Guest are viewing this topic.
: RxChar(); TxChar('>'); if (RxChar() == '<') { TxChar(PageSize); TxChar(DeviceID); TxChar(FlashSize); TxChar(BootSize); TxChar(EEpromSize); RxChar(); TxChar('!'); while (1) { WDR(); GetPageNumber(); if (RealPageAddress == 0xffff) break; if (WriteFlashPage()) TxChar('!'); else TxChar('@'); }:
i assume that this is the "handshake" while the others are used for error detection and correction
Question . . . I want in my code to restart the bootloader upon receiving a command by UART . . . so upon receiving this command I *think* I need to disable UART then jump to the bootloader start address, right?
asm("jmp 0x0000"); // Run application code
void (*app_start)(void) = 0x0000;int main(int argc, char *argv[]) {:: app_start();return;}
EasyRadio has a buffer of only 180 byte, but the bootloader sent packets of 7680 byte.So the synchronization was lost (timeout) after the first packet (7680 = 0x1E00).The buffer size can be reduced, but not below the page size (256 byte on the ATmega2560).
I just spoke with the guy who wrote that bootloader on this problem:QuoteEasyRadio has a buffer of only 180 byte, but the bootloader sent packets of 7680 byte.So the synchronization was lost (timeout) after the first packet (7680 = 0x1E00).The buffer size can be reduced, but not below the page size (256 byte on the ATmega2560). Ideas?
Started by BANE Electronics
Started by robota Electronics
Started by Aligator Misc
Started by Sylvestre Software