From 15c0fe6b06c631d75063e64c0322cc41a1d5b2eb Mon Sep 17 00:00:00 2001 From: true Date: Wed, 1 Nov 2023 20:30:09 -0700 Subject: [PATCH] Add pre-built binaries --- .gitignore | 2 ++ README.md | 13 ++++++++++++- bin/py32f_bootloader_0.0.3.bin | Bin 0 -> 2048 bytes bin/testo_0.0.1_6a2e816_blfw_0.0.3.bin | Bin 0 -> 8460 bytes bin/testo_0.0.1_6a2e816_fw2k.bin | Bin 0 -> 6412 bytes 5 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 bin/py32f_bootloader_0.0.3.bin create mode 100644 bin/testo_0.0.1_6a2e816_blfw_0.0.3.bin create mode 100644 bin/testo_0.0.1_6a2e816_fw2k.bin diff --git a/.gitignore b/.gitignore index d6f7246..27920ac 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ .vscode/launch.json .vscode/ipch boards/pack/Puya.PY32F0xx_DFP.1.1.3a* +bin/flash.cmd +bin/out.bin \ No newline at end of file diff --git a/README.md b/README.md index d0d9fd3..8f3fdfb 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,18 @@ If you want to hack on this without a debug probe, an XMODEM bootloader is avail - Works as an addon, or standalone with a CR2032 -## Misc Notes: +## Binaries + +The `bin/` directory contains pre-built binaries. Names are formatted as follows: + +`testo_0.0.1_abcdef1_fw2k.bin` + +`fw2k` are intended to be sent via XMODEM to the built-in bootloader. + +`blfw_x.y.z` are binary files with the bootloader version `x.y.z` prepended. These are intended to be written with a debugger or programmer. + + +## Misc Notes - This device is using PUYA PY32F003 MCU, an MCU intended for the China domestic market. This MCU, as well as other diff --git a/bin/py32f_bootloader_0.0.3.bin b/bin/py32f_bootloader_0.0.3.bin new file mode 100644 index 0000000000000000000000000000000000000000..0ec887741cb1a2de78eef7c414a1644920d49cb2 GIT binary patch literal 2048 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 Q_dEXMXMyex;Jd{C0-uN=82|tP literal 0 HcmV?d00001 diff --git a/bin/testo_0.0.1_6a2e816_fw2k.bin b/bin/testo_0.0.1_6a2e816_fw2k.bin new file mode 100644 index 0000000000000000000000000000000000000000..16b353c5a1560764fb994f0065f5cd5832d260f2 GIT binary patch literal 6412 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 literal 0 HcmV?d00001