From f6ee86a2f7989384044441808f32bb9b69abafe0 Mon Sep 17 00:00:00 2001 From: Florian Reitz Date: Thu, 1 Oct 2020 16:35:55 +0200 Subject: [PATCH] Verification separated --- Software/Flasher.bin | Bin 11786 -> 12133 bytes Software/Flasher.dsk | Bin 143360 -> 143360 bytes Software/src/Flasher.c | 42 ++++++++++++++++++++++++++++++++--------- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/Software/Flasher.bin b/Software/Flasher.bin index fc5a0a34f1322e542f1f2e706155e0b057d41fa0..e3cfd9050e2b16d3de267e0b83df07ccbc478092 100644 GIT binary patch literal 12133 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 literal 11786 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