serial_recovery: Replace CBOR decoding code with generated code
- Add the cddl_gen repository as a submodule.
- Add a CDDL description file for the serial recovery packets to be
decoded.
- Add generated code files and cddl_gen's CBOR library to CMakeList.txt
for Zephyr.
- Convert boot_serial.c to use the new code.
- Add a bash script to (re)generate code files using cddl_gen.py.
Serial recovery should work exactly as before, but the binary should be
about 1k smaller.
Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
diff --git a/boot/boot_serial/src/serial_recovery.cddl b/boot/boot_serial/src/serial_recovery.cddl
new file mode 100644
index 0000000..9aae63c
--- /dev/null
+++ b/boot/boot_serial/src/serial_recovery.cddl
@@ -0,0 +1,15 @@
+;
+; Copyright (c) 2020 Nordic Semiconductor ASA
+;
+; SPDX-License-Identifier: Apache-2.0
+;
+
+Member = ("image" => int) /
+ ("data" => bstr) /
+ ("len" => int) /
+ ("off" => int) /
+ ("sha" => bstr)
+
+Upload = {
+ 3**5members: Member
+}