From d7f6c2ab8dfee0adf21409aa0fc8e5abae941e09 Mon Sep 17 00:00:00 2001 From: Aleksandr Zhytnyk Date: Mon, 31 Oct 2022 11:23:20 +0200 Subject: [PATCH] Update SPI Mem Manager to v0.1.0 * Add read chip check * Add about scene, hide internal structures * Add verifying --- .../Official/DEV_FW/Tools/spi_mem_manager.fap | Bin 22112 -> 29200 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Applications/Official/DEV_FW/Tools/spi_mem_manager.fap b/Applications/Official/DEV_FW/Tools/spi_mem_manager.fap index e7cfed04dc9b99e19faf2acaf25f80b6f747f5bd..3ad27c1b18d173e078eb718277546759bd6eb0f8 100644 GIT binary patch literal 29200 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 H%lH2PMpD)x