#include #include #include #include struct bl_cmd bl_cmd; uint32_t flash_pointer; char flash_buffer[ SPM_PAGESIZE ]; uint8_t bootloader(FILE *stream) { uint8_t n; int ch; for (n=0;n<10;n++) { fputc( '*', stream ); wait_ms(100); ch = fgetc( stream ); if (ch == '$') break; }; if (n == 10) bl_boot_application(); while (1) { ch = bl_recv( stream, &bl_cmd ); if (ch > 0) { switch (bl_cmd.cmd) { case BL_CMD_ERASE_FLASH: break; case BL_CMD_WRITE_FLASH: break; case BL_CMD_FLUSH: break; }; }; }; };