From 43ce1d4bb60efe132729574a396dea09145ba4aa Mon Sep 17 00:00:00 2001 From: Benjamin Vernoux Date: Wed, 12 Jun 2024 02:30:21 +0200 Subject: [PATCH] Replace dfu-convert.c by hex2dfu.c --- src/Makefile | 11 +- src/build-scripts/Makefile | 4 +- src/build-scripts/dfu-convert.c | 263 -------- src/build-scripts/hex2dfu.c | 581 ++++++++++++++++++ .../{dfu-convert.exe => hex2dfu.exe} | Bin 439157 -> 460279 bytes 5 files changed, 585 insertions(+), 274 deletions(-) delete mode 100644 src/build-scripts/dfu-convert.c create mode 100644 src/build-scripts/hex2dfu.c rename src/build-scripts/{dfu-convert.exe => hex2dfu.exe} (54%) diff --git a/src/Makefile b/src/Makefile index 4e521c0..7c09c7e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -6,14 +6,6 @@ .SUFFIXES: # Delete the default suffixes MAKEFLAGS += --no-builtin-rules -ifeq ($(OS), Windows_NT) - PYTHON = python -else ifeq ($(shell which python3),) - PYTHON = python -else - PYTHON = python3 -endif - # Set CPU target (default STM32F4XX) export STM32F4XX ?= 1 @@ -345,7 +337,8 @@ FORCE: %.dfu: %.hex $(LDSCRIPT) $(OUT_LOG) echo Creating $@ - $(OUT_CMD) build-scripts/dfu-convert -r $(FW_REVISION) -i $< $@ + $(OUT_LOG) echo ./build-scripts/hex2dfu -l ST... -r $(FW_REVISION) -i $< -o $@ + $(OUT_CMD) ./build-scripts/hex2dfu -l ST... -r $(FW_REVISION) -i $< -o $@ # This rule hook is defined in the ChibiOS build system PRE_MAKE_ALL_RULE_HOOK: ./common/hydrafw_version.hdr diff --git a/src/build-scripts/Makefile b/src/build-scripts/Makefile index 3bcc94a..1629543 100644 --- a/src/build-scripts/Makefile +++ b/src/build-scripts/Makefile @@ -4,10 +4,10 @@ CC = gcc CFLAGS = -Wall -Wextra -std=c99 # Source files -SRCS = dfu-convert.c +SRCS = hex2dfu.c # Output executable -TARGET = dfu-convert +TARGET = hex2dfu # Default target all: $(TARGET) diff --git a/src/build-scripts/dfu-convert.c b/src/build-scripts/dfu-convert.c deleted file mode 100644 index ce2b49e..0000000 --- a/src/build-scripts/dfu-convert.c +++ /dev/null @@ -1,263 +0,0 @@ -/* gcc -Wall -O3 -o dfu-convert dfu-convert.c see also Makefile - * Python3 version Written by Antonio Galea - 2010/11/18 Distributed under Gnu LGPL 3.0 - * - * Copyright (C) 2024 Benjamin VERNOUX (C version) - * Distributed under Gnu LGPL 3.0 - */ -#include -#include -#include -#include -#include -#include - -#define DEFAULT_DEVICE "0x0483:0xdf11" -#define DEFAULT_REVISION "0.0" -#define MAX_DATA_SIZE 1048576 // 1 MB buffer for static allocation -#define MAX_LINE_LENGTH 256 -#define MAX_FILES 10 - -static uint8_t data[MAX_DATA_SIZE]; - -typedef struct { - char signature[5]; - uint8_t version; - uint32_t size; - uint8_t targets; -} Prefix; - -typedef struct { - uint32_t address; - uint32_t size; -} ElementPrefix; - -typedef struct { - uint16_t device; - uint16_t product; - uint16_t vendor; - uint16_t dfu; - char ufd[3]; - uint8_t len; - uint32_t crc; -} Suffix; - -static uint32_t crc_table[256] = { - 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL, 0x076DC419L, 0x706AF48FL, - 0xE963A535L, 0x9E6495A3L, 0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L, - 0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L, 0x1DB71064L, 0x6AB020F2L, - 0xF3B97148L, 0x84BE41DEL, 0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L, - 0x136C9856L, 0x646BA8C0L, 0xFD62F97AL, 0x8A65C9ECL, 0x14015C4FL, 0x63066CD9L, - 0xFA0F3D63L, 0x8D080DF5L, 0x3B6E20C8L, 0x4C69105EL, 0xD56041E4L, 0xA2677172L, - 0x3C03E4D1L, 0x4B04D447L, 0xD20D85FDL, 0xA50AB56BL, 0x35B5A8FAL, 0x42B2986CL, - 0xDBBBC9D6L, 0xACBCF940L, 0x32D86CE3L, 0x45DF5C75L, 0xDCD60DCFL, 0xABD13D59L, - 0x26D930ACL, 0x51DE003AL, 0xC8D75180L, 0xBFD06116L, 0x21B4F4B5L, 0x56B3C423L, - 0xCFBA9599L, 0xB8BDA50FL, 0x2802B89EL, 0x5F058808L, 0xC60CD9B2L, 0xB10BE924L, - 0x2F6F7C87L, 0x58684C11L, 0xC1611DABL, 0xB6662D3DL, 0x76DC4190L, 0x01DB7106L, - 0x98D220BCL, 0xEFD5102AL, 0x71B18589L, 0x06B6B51FL, 0x9FBFE4A5L, 0xE8B8D433L, - 0x7807C9A2L, 0x0F00F934L, 0x9609A88EL, 0xE10E9818L, 0x7F6A0DBBL, 0x086D3D2DL, - 0x91646C97L, 0xE6635C01L, 0x6B6B51F4L, 0x1C6C6162L, 0x856530D8L, 0xF262004EL, - 0x6C0695EDL, 0x1B01A57BL, 0x8208F4C1L, 0xF50FC457L, 0x65B0D9C6L, 0x12B7E950L, - 0x8BBEB8EAL, 0xFCB9887CL, 0x62DD1DDFL, 0x15DA2D49L, 0x8CD37CF3L, 0xFBD44C65L, - 0x4DB26158L, 0x3AB551CEL, 0xA3BC0074L, 0xD4BB30E2L, 0x4ADFA541L, 0x3DD895D7L, - 0xA4D1C46DL, 0xD3D6F4FBL, 0x4369E96AL, 0x346ED9FCL, 0xAD678846L, 0xDA60B8D0L, - 0x44042D73L, 0x33031DE5L, 0xAA0A4C5FL, 0xDD0D7CC9L, 0x5005713CL, 0x270241AAL, - 0xBE0B1010L, 0xC90C2086L, 0x5768B525L, 0x206F85B3L, 0xB966D409L, 0xCE61E49FL, - 0x5EDEF90EL, 0x29D9C998L, 0xB0D09822L, 0xC7D7A8B4L, 0x59B33D17L, 0x2EB40D81L, - 0xB7BD5C3BL, 0xC0BA6CADL, 0xEDB88320L, 0x9ABFB3B6L, 0x03B6E20CL, 0x74B1D29AL, - 0xEAD54739L, 0x9DD277AFL, 0x04DB2615L, 0x73DC1683L, 0xE3630B12L, 0x94643B84L, - 0x0D6D6A3EL, 0x7A6A5AA8L, 0xE40ECF0BL, 0x9309FF9DL, 0x0A00AE27L, 0x7D079EB1L, - 0xF00F9344L, 0x8708A3D2L, 0x1E01F268L, 0x6906C2FEL, 0xF762575DL, 0x806567CBL, - 0x196C3671L, 0x6E6B06E7L, 0xFED41B76L, 0x89D32BE0L, 0x10DA7A5AL, 0x67DD4ACCL, - 0xF9B9DF6FL, 0x8EBEEFF9L, 0x17B7BE43L, 0x60B08ED5L, 0xD6D6A3E8L, 0xA1D1937EL, - 0x38D8C2C4L, 0x4FDFF252L, 0xD1BB67F1L, 0xA6BC5767L, 0x3FB506DDL, 0x48B2364BL, - 0xD80D2BDAL, 0xAF0A1B4CL, 0x36034AF6L, 0x41047A60L, 0xDF60EFC3L, 0xA867DF55L, - 0x316E8EEFL, 0x4669BE79L, 0xCB61B38CL, 0xBC66831AL, 0x256FD2A0L, 0x5268E236L, - 0xCC0C7795L, 0xBB0B4703L, 0x220216B9L, 0x5505262FL, 0xC5BA3BBEL, 0xB2BD0B28L, - 0x2BB45A92L, 0x5CB36A04L, 0xC2D7FFA7L, 0xB5D0CF31L, 0x2CD99E8BL, 0x5BDEAE1DL, - 0x9B64C2B0L, 0xEC63F226L, 0x756AA39CL, 0x026D930AL, 0x9C0906A9L, 0xEB0E363FL, - 0x72076785L, 0x05005713L, 0x95BF4A82L, 0xE2B87A14L, 0x7BB12BAEL, 0x0CB61B38L, - 0x92D28E9BL, 0xE5D5BE0DL, 0x7CDCEFB7L, 0x0BDBDF21L, 0x86D3D2D4L, 0xF1D4E242L, - 0x68DDB3F8L, 0x1FDA836EL, 0x81BE16CDL, 0xF6B9265BL, 0x6FB077E1L, 0x18B74777L, - 0x88085AE6L, 0xFF0F6A70L, 0x66063BCAL, 0x11010B5CL, 0x8F659EFFL, 0xF862AE69L, - 0x616BFFD3L, 0x166CCF45L, 0xA00AE278L, 0xD70DD2EEL, 0x4E048354L, 0x3903B3C2L, - 0xA7672661L, 0xD06016F7L, 0x4969474DL, 0x3E6E77DBL, 0xAED16A4AL, 0xD9D65ADCL, - 0x40DF0B66L, 0x37D83BF0L, 0xA9BCAE53L, 0xDEBB9EC5L, 0x47B2CF7FL, 0x30B5FFE9L, - 0xBDBDF21CL, 0xCABAC28AL, 0x53B39330L, 0x24B4A3A6L, 0xBAD03605L, 0xCDD70693L, - 0x54DE5729L, 0x23D967BFL, 0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L, - 0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL -}; - -uint32_t compute_crc(const uint8_t *buf_data, size_t length) { - uint32_t crc = 0xFFFFFFFF; - - for (size_t i = 0; i < length; i++) { - uint8_t byte = buf_data[i]; - uint32_t lookup_index = (crc ^ byte) & 0xFF; - crc = (crc >> 8) ^ crc_table[lookup_index]; - } - - return ~crc; -} - -int parse_device(const char *device, uint16_t *vendor_id, uint16_t *product_id) { - if (sscanf(device, "0x%4hx:0x%4hx", vendor_id, product_id) != 2) { - return -1; - } - return 0; -} - -void print_help(const char *progname) { - printf("Usage: %s {-i|--ihex} file.hex [-i file.hex ...] [{-D|--device} vendor:device] outfile.dfu\n", progname); - printf("\n"); - printf("Options:\n"); - printf(" -i, --ihex Build a DFU file from given HEXFILES\n"); - printf(" -D, --device Build for DEVICE, defaults to %s\n", DEFAULT_DEVICE); - printf(" -r, --revision Revision number, defaults to %s\n", DEFAULT_REVISION); -} - -// Simple function to convert hex character to integer -uint8_t hex_char_to_int(char c) { - if (c >= '0' && c <= '9') return c - '0'; - if (c >= 'A' && c <= 'F') return c - 'A' + 10; - if (c >= 'a' && c <= 'f') return c - 'a' + 10; - return 0; -} - -// Function to parse a line from Intel HEX file -int parse_hex_line(const char *line, uint32_t *address, uint8_t *buf_data, size_t *data_len) { - if (line[0] != ':') return -1; - int len = (hex_char_to_int(line[1]) << 4) | hex_char_to_int(line[2]); - *address = (hex_char_to_int(line[3]) << 12) | (hex_char_to_int(line[4]) << 8) | (hex_char_to_int(line[5]) << 4) | hex_char_to_int(line[6]); - int type = (hex_char_to_int(line[7]) << 4) | hex_char_to_int(line[8]); - - if (type != 0) return -1; // Only support data records - - for (int i = 0; i < len; i++) { - buf_data[i] = (hex_char_to_int(line[9 + i * 2]) << 4) | hex_char_to_int(line[10 + i * 2]); - } - *data_len = len; - return 0; -} - -void build_from_hex(const char *file, char **hexfiles, int hexfile_count, const char *device, const char *revision) { - size_t data_size = 0; - - for (int i = 0; i < hexfile_count; ++i) { - const char *hexfile = hexfiles[i]; - FILE *f = fopen(hexfile, "r"); - if (!f) { - fprintf(stderr, "Error opening file: %s\n", strerror(errno)); - exit(EXIT_FAILURE); - } - - char line[MAX_LINE_LENGTH]; - while (fgets(line, sizeof(line), f)) { - uint32_t address; - uint8_t line_data[MAX_LINE_LENGTH]; - size_t line_data_len; - - if (parse_hex_line(line, &address, line_data, &line_data_len) == 0) { - if (data_size + sizeof(ElementPrefix) + line_data_len > MAX_DATA_SIZE) { - fprintf(stderr, "Data buffer overflow\n"); - fclose(f); - exit(EXIT_FAILURE); - } - ElementPrefix eprefix = {address, line_data_len}; - memcpy(data + data_size, &eprefix, sizeof(ElementPrefix)); - memcpy(data + data_size + sizeof(ElementPrefix), line_data, line_data_len); - data_size += sizeof(ElementPrefix) + line_data_len; - } - } - fclose(f); - } - - uint16_t device_id, product_id; - if (parse_device(device, &device_id, &product_id) != 0) { - fprintf(stderr, "Invalid device format: %s\n", device); - exit(EXIT_FAILURE); - } - - uint16_t revision_number; - if (sscanf(revision, "%hx.%hx", &revision_number, &revision_number) != 2) { - fprintf(stderr, "Invalid revision format: %s\n", revision); - exit(EXIT_FAILURE); - } - - Suffix suffix = {device_id, product_id, 0x0483, 0x011a, {'U', 'F', 'D'}, 16, 0}; - if (data_size + sizeof(Suffix) > MAX_DATA_SIZE) { - fprintf(stderr, "Data buffer overflow\n"); - exit(EXIT_FAILURE); - } - - memcpy(data + data_size, &suffix, sizeof(Suffix)); - data_size += sizeof(Suffix); - - suffix.crc = compute_crc(data, data_size); - memcpy(data + data_size - sizeof(uint32_t), &suffix.crc, sizeof(uint32_t)); - - FILE *outfile = fopen(file, "wb"); - if (!outfile) { - fprintf(stderr, "Error opening output file: %s\n", strerror(errno)); - exit(EXIT_FAILURE); - } - - fwrite(data, 1, data_size, outfile); - fclose(outfile); -} - -int main(int argc, char *argv[]) { - if (argc < 2) { - print_help(argv[0]); - return EXIT_FAILURE; - } - - const char *infile = NULL; - int ihex_mode = 0; - const char *device = DEFAULT_DEVICE; - const char *revision = DEFAULT_REVISION; - char *hexfiles[MAX_FILES]; - int hexfile_count = 0; - const char *outfile = NULL; - - for (int i = 1; i < argc; ++i) { - if (strcmp(argv[i], "-i") == 0 || strcmp(argv[i], "--ihex") == 0) { - ihex_mode = 1; - if (i + 1 < argc && hexfile_count < MAX_FILES) { - hexfiles[hexfile_count++] = argv[++i]; - } else { - fprintf(stderr, "Option -i requires an argument or exceeds maximum number of files\n"); - return EXIT_FAILURE; - } - } else if (strcmp(argv[i], "-D") == 0 || strcmp(argv[i], "--device") == 0) { - if (i + 1 < argc) { - device = argv[++i]; - } else { - fprintf(stderr, "Option -D requires an argument\n"); - return EXIT_FAILURE; - } - } else if (strcmp(argv[i], "-r") == 0 || strcmp(argv[i], "--revision") == 0) { - if (i + 1 < argc) { - revision = argv[++i]; - } else { - fprintf(stderr, "Option -r requires an argument\n"); - return EXIT_FAILURE; - } - } else { - infile = argv[i]; - } - } - - if (infile) { - if (ihex_mode) { - build_from_hex(outfile, hexfiles, hexfile_count, device, revision); - } else { - print_help(argv[0]); - return EXIT_FAILURE; - } - } else { - print_help(argv[0]); - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} diff --git a/src/build-scripts/hex2dfu.c b/src/build-scripts/hex2dfu.c new file mode 100644 index 0000000..ecc73dd --- /dev/null +++ b/src/build-scripts/hex2dfu.c @@ -0,0 +1,581 @@ +// Original source https://github.com/encedo/hex2dfu/blob/master/hex2dfu.c +// MIT License (MIT) +// Modified by B.VERNOUX 2024 +#include +#include +#include +#include +#include +#include + +#define ED25519_SUPPORT 0 + +#define TARGET_NAME_ENCEDO "EncedoKey" + +#ifndef ED25519_SUPPORT +#define ED25519_SUPPORT 1 +#endif + +#if ED25519_SUPPORT +#include "ED25519/src/sha512.h" +#include "ED25519/src/ed25519.h" +#endif + +void print_help(void); +int hex2bin(unsigned char *obuf, const char *ibuf, int len); +int check_checksum(unsigned char *inbuf, int len); +unsigned char *ihex2bin_buf(unsigned int *start_address, unsigned int *dst_len, FILE *inFile, unsigned int max_address); + +unsigned int crc32(unsigned int crc, const void *buf, size_t size); + +//efab5b0739a834bac702aeb5cd08ffe227908faaae501f910e7e07d8d41fbb06 +int main (int argc, char **argv) { + int targen_number = 0; + int c, vid =0x0483, pid = 0xdf11, ver = 0xffff; + char *tar0 = NULL, *tar0_lab = NULL, *out_fn = NULL; + FILE *inFile, *outFile; + unsigned char json_output = 0; + unsigned int max_address = 0x08200000; + +#if ED25519_SUPPORT + unsigned char hash_buf[64]; + sha512_context hash; + unsigned char *ed25519_secret = NULL; + unsigned char *ed25519_public = NULL, ed25519_public_add = 0; + unsigned char public_key[32], private_key[64], signature[64], public_key_publisher[32]; +#endif + + unsigned int tar0_start_address; + unsigned int tar0_len; + unsigned char *tar0_buf; + + unsigned char *dfu; + int dfu_len; + unsigned int crc = 0, tmp, add_crc32 = 0; + + opterr = 0; + while ((c = getopt (argc, argv, "hv:p:v:t:r:d:i:l:o:c:S:P:eJE:")) != -1) { + switch (c) { + case 'J': + json_output = 1; + break; + case 'i': //target0 input file name + tar0 = optarg; + break; + case 'l': //target0 label + tar0_lab = optarg; + break; + case 'p': //PID + pid = strtol (optarg, NULL, 16); + break; + case 'v': //VID + vid = strtol (optarg, NULL, 16); + break; + case 't': // Target Number + targen_number = strtol(optarg, NULL, 16); + break; + case 'r': // Target Revision format "xx.yy" + uint16_t revision_number_MSB, revision_number_LSB; + if (sscanf(optarg, "%hx.%hx", &revision_number_MSB, &revision_number_LSB) != 2) { + fprintf(stderr, "Invalid revision format: %s\n", optarg); + exit(EXIT_FAILURE); // or return an error code + } + ver = (int)(revision_number_MSB << 8 | revision_number_LSB);; + break; + case 'd': //device version + ver = strtol (optarg, NULL, 16); + break; + case 'c': //place crc32 at this address + add_crc32 = strtol (optarg, NULL, 16); + break; + case 'E': //max address + max_address = strtol (optarg, NULL, 16); + break; + case 'S': //ED25519 secret (signing key), hex +#if !ED25519_SUPPORT + fprintf (stderr, "Code signing not supported!\n"); + return 1; +#else + ed25519_secret = optarg; +#endif + break; + case 'P': //ED25519 publisher public, hex +#if !ED25519_SUPPORT + fprintf (stderr, "Code signing not supported!\n"); + return 1; +#else + ed25519_public = optarg; +#endif + break; + case 'e': +#if !ED25519_SUPPORT + fprintf (stderr, "Code signing not supported!\n"); + return 1; +#else + ed25519_public_add = 1; +#endif + break; + case 'o': //output file name + out_fn = optarg; + break; + case 'h': + print_help(); + break; + case '?': + fprintf (stderr, "Parameter(s) parsing failed!\n"); + return 1; + default: + break; + } + } + + if (!tar0) { + perror ("No input file specifed.\n"); + return 0; + } + + if (!out_fn) { + perror ("No output file specifed.\n"); + return 0; + } + +#if ED25519_SUPPORT + if (ed25519_secret) { + c = hex2bin(ed25519_secret, ed25519_secret, strlen(ed25519_secret)); + if (c != 32) { + perror ("ED25519 'secret' have to be 32bytes long.\n"); + return 0; + } + + ed25519_create_keypair(public_key, private_key, ed25519_secret); + + if (ed25519_public) { + c = hex2bin(public_key_publisher, ed25519_public, strlen(ed25519_public)); + if (c != 32) { + perror ("ED25519 'public' have to be 32bytes long.\n"); + return 0; + } + } else { + memmove(public_key_publisher, public_key, 32); + } + } +#endif + + inFile = fopen ( tar0, "r"); + tar0_buf = ihex2bin_buf(&tar0_start_address, &tar0_len, inFile, max_address); + tar0_len = tar0_len + ((tar0_len & 0x07) ? (8 - (tar0_len & 0x07)) : 0); + fclose (inFile); + + if (tar0_buf && (tar0_len > 0)) { + if ((add_crc32>0) && (add_crc32 < (tar0_start_address+tar0_len-256))) { //-c request CRC32 placement at given address + add_crc32 -= tar0_start_address; + tar0_buf[add_crc32 + 4] = tar0_len>>0 & 0xFF; //binary code length first(little endian) + tar0_buf[add_crc32 + 5] = tar0_len>>8 & 0xFF; + tar0_buf[add_crc32 + 6] = tar0_len>>16 & 0xFF; + tar0_buf[add_crc32 + 7] = tar0_len>>24 & 0xFF; +#if ED25519_SUPPORT + if (ed25519_secret) { + sha512_init(&hash); + sha512_update(&hash, tar0_buf, add_crc32); + sha512_update(&hash, tar0_buf+add_crc32+256, tar0_len-(add_crc32+256)); + sha512_final(&hash, hash_buf); + + ed25519_sign(signature, hash_buf, 64, public_key, private_key); + memmove(tar0_buf+add_crc32+0x10, signature, 64); + memmove(tar0_buf+add_crc32+0x10+64, public_key, 32); + + if (ed25519_public_add) { + memmove(tar0_buf+add_crc32+0x10+64+32, public_key_publisher, 32); + } + } +#endif + crc = crc32(0, tar0_buf, add_crc32); //calc CRC upto placement address + crc = crc32(crc, tar0_buf+add_crc32+4, tar0_len-(add_crc32+4)); //calc the rest of - starting from placement+4 up to end + tar0_buf[add_crc32] = crc>>0 & 0xFF; //CRC placement (little endian) + tar0_buf[add_crc32 + 1] = crc>>8 & 0xFF; + tar0_buf[add_crc32 + 2] = crc>>16 & 0xFF; + tar0_buf[add_crc32 + 3] = crc>>24 & 0xFF; + } + + dfu_len = 11 + 274 + 8+ tar0_len + 16; + dfu = calloc(1, dfu_len); + if (dfu) { + //DFU Suffix + memmove(dfu, "DfuSe", 5); //szSignature + dfu[5] = 0x01; //bVersion + tmp = dfu_len - 0x10; + dfu[6] = (unsigned char)(tmp & 0xFF); //DFUImageSize (except Prefix!) + dfu[7] = (unsigned char)(tmp>>8 & 0xFF); + dfu[8] = (unsigned char)(tmp>>16 & 0xFF); + dfu[9] = (unsigned char)(tmp>>24 & 0xFF); + dfu[10] = 1; //bTargets + + + //DFU Image + c = 11; + memmove(dfu+c, "Target", 6); //szSignature 'Target' + c += 6; + dfu[c++] = targen_number; //bAlternateSettings //to check + if (tar0_lab) { + dfu[c] = 0x01; //bTargetNamed + memmove(dfu+c+4, tar0_lab, strlen(tar0_lab)>254?254:strlen(tar0_lab)); //szTargetName + } else { + dfu[c] = 0x01; //place default target name + memmove(dfu+c+4, TARGET_NAME_ENCEDO, strlen(TARGET_NAME_ENCEDO)); + } + c += 259; + tmp = 8 + tar0_len; //ImageElement length (8+bin_data) + dfu[c++] = tmp & 0xFF; //dwTargetSize + dfu[c++] = tmp>>8 & 0xFF; + dfu[c++] = tmp>>16 & 0xFF; + dfu[c++] = tmp>>24 & 0xFF; + dfu[c] = 0x01; //dwNbElements + c += 4; + + //Image Element + dfu[c++] = tar0_start_address & 0xFF; //dwElementAddress + dfu[c++] = tar0_start_address>>8 & 0xFF; + dfu[c++] = tar0_start_address>>16 & 0xFF; + dfu[c++] = tar0_start_address>>24 & 0xFF; + dfu[c++] = tar0_len & 0xFF; //dwElementSize + dfu[c++] = tar0_len>>8 & 0xFF; + dfu[c++] = tar0_len>>16 & 0xFF; + dfu[c++] = tar0_len>>24 & 0xFF; + memmove(dfu+c, tar0_buf, tar0_len); + + //DFU Suffix + c = dfu_len - 16; + dfu[c++] = ver & 0xFF; //bcdDeviceLo + dfu[c++] = ver>>8 & 0xFF; + dfu[c++] = pid & 0xFF; //idProductLo + dfu[c++] = pid>>8 & 0xFF; + dfu[c++] = vid & 0xFF; //idVendorLo + dfu[c++] = vid>>8 & 0xFF; + dfu[c++] = 0x1A; //bcdDFULo + dfu[c++] = 0x01; + dfu[c++] = 'U'; //ucDfuSignature + dfu[c++] = 'F'; + dfu[c++] = 'D'; + dfu[c++] = 16; //bLength + crc = 0xFFFFFFFF & (-crc32(0, dfu, c) - 1); + dfu[c++] = crc>>0 & 0xFF; //dwCRC + dfu[c++] = crc>>8 & 0xFF; + dfu[c++] = crc>>16 & 0xFF; + dfu[c++] = crc>>24 & 0xFF; + + + //write DFU to file + outFile = fopen (out_fn, "wb"); + c = fwrite (dfu, dfu_len, 1, outFile); + fclose(outFile); + if (c != 1) { + printf ("error: write to output file\n"); + } + if (json_output) { + printf("{\"code_address\":\"0x%08x\"", tar0_start_address); + printf(",\"code_length\":\"0x%08x\"", tar0_len); + printf(",\"meta_address\":\"0x%08x\"", add_crc32+tar0_start_address); +#if ED25519_SUPPORT + if (ed25519_secret) { + printf(",\"sha512\":\""); + for(c=0; c<64; c++) { + printf("%02x", (unsigned char)hash_buf[c]); + } + printf("\""); + + printf(",\"signature_pubkey\":\""); + for(c=0; c<32; c++) { + printf("%02x", (unsigned char)public_key[c]); + } + printf("\""); + + printf(",\"signature\":\""); + for(c=0; c<64; c++) { + printf("%02x", (unsigned char)signature[c]); + } + printf("\""); + + if (ed25519_public_add) { + printf(",\"publisher_pubkey\":\""); + for(c=0; c<32; c++) { + printf("%02x", (unsigned char)public_key_publisher[c]); + } + printf("\""); + } + printf(",\"crc32\":\"0x%08x\"", crc); + } +#endif + + printf("}\r\n"); + } else { + printf("Data Start Address: 0x%08x\r\n", tar0_start_address); + printf("Data Length: %ub\r\n", tar0_len); +#if ED25519_SUPPORT + if (ed25519_secret) { + printf("SHA512: "); + for(c=0; c<64; c++) { + printf("%02x", (unsigned char)hash_buf[c]); + } + printf("\r\n"); + + printf("Signing PublicKey: "); + for(c=0; c<32; c++) { + printf("%02x", (unsigned char)public_key[c]); + } + printf("\r\n"); + + printf("Signature: "); + for(c=0; c<64; c++) { + printf("%02x", (unsigned char)signature[c]); + } + printf("\r\n"); + + if (ed25519_public_add) { + printf("Publisher PublicKey: "); + for(c=0; c<32; c++) { + printf("%02x", (unsigned char)public_key_publisher[c]); + } + printf("\r\n"); + } + printf("CRC32 data: 0x%08x @0x%08x\r\n", crc, add_crc32+tar0_start_address); + } +#endif + printf("Done.\r\n"); + } + } + } else { + printf ("error: processing input file\n"); + } + + return 0; +} + +void print_help(void) { + printf("STM32 hex2dfu version 1.4.1\r\n"); + printf("(c) Encedo Ltd 2013-2020\r\n"); + printf("(c) B.VERNOUX 2024\r\n"); + printf("Options:\r\n"); + printf("-J - output in JSON structure except errors (optional)\r\n"); + printf("-c - place CRC23 under this addres (optional)\r\n"); + printf("-d - file version number (optional, default: 0xFFFF)\r\n"); + printf("-h - help\r\n"); + printf("-i - Target0 HEX file name (mandatory)\r\n"); + printf("-l - Target0 name (optional, default: EncedoKey)\r\n"); + printf("-o - output DFU file name (mandatory)\r\n"); +#if ED25519_SUPPORT + printf("-S - ED25519 'secret' to sign the code (optional)\r\n"); + printf("-P - Publisher ED25519 'public' to verify firmware sign (optional)\r\n"); + printf("-e - add Publisher ED25519 based on 'secret' or the one form -P (if given)\r\n"); +#endif + printf("-p - USB Pid (optional, default: 0xDF11)\r\n"); + printf("-v - USB Vid (optional, default: 0x0483)\r\n"); + printf("-t - Target Number (optional, default: 0x0)\r\n"); + printf("-r - Target Revision format string xx.yy\r\n"); + printf("-E - Maximum possible address\r\n"); + printf("Example: hex2dfu -i infile.hex -o outfile.dfu\r\n"); +} + + +int hex2bin(unsigned char *obuf, const char *ibuf, int len) { + unsigned char c, c2; + + len = len / 2; + while (*ibuf != 0) { + c = *ibuf++; + if( c >= '0' && c <= '9' ) + c -= '0'; + else if( c >= 'a' && c <= 'f' ) + c -= 'a' - 10; + else if( c >= 'A' && c <= 'F' ) + c -= 'A' - 10; + else + return -1; + + c2 = *ibuf++; + if( c2 >= '0' && c2 <= '9' ) + c2 -= '0'; + else if( c2 >= 'a' && c2 <= 'f' ) + c2 -= 'a' - 10; + else if( c2 >= 'A' && c2 <= 'F' ) + c2 -= 'A' - 10; + else + return -1; + + *obuf++ = ( c << 4 ) | c2; + } + return len; +} + +int check_checksum(unsigned char *inbuf, int len) { + unsigned int check = 0; + while(len--) { + check += *inbuf++; + } + return check & 0xFF; +} + + +// more details: http://en.wikipedia.org/wiki/Intel_HEX +unsigned char *ihex2bin_buf(unsigned int *start_address, unsigned int *dst_len, FILE *inFile, unsigned int max_address) { + unsigned int lines = 0, total = 0, oneline_len, elar = 0, pos, cnt; + char oneline [512]; + unsigned char raw[256], start_set = 0, *dst = NULL; + + *dst_len = 1024*128; + dst = malloc(*dst_len); //allocate 128kB of memory for bin data buffer + if (dst == NULL) { + *dst_len = -2; + return NULL; + } + + *start_address = 0; + while ( fgets (oneline, sizeof(oneline), inFile) != NULL ) { + if (oneline[0] == ':') { //is valid record? + oneline_len = strlen(oneline)-2; //get line length + hex2bin(raw, oneline+1, oneline_len); //convert to bin + if (check_checksum(raw, oneline_len/2) == 0) { //check cheksum validity + if ((raw[0] == 2) && (raw[1] == 0) && (raw[2] == 0) && (raw[3] == 4)) { //> Extended Linear Address Record :020000040803EF + elar = (unsigned int)raw[4]<<24 | (unsigned int) raw[5]<<16; //gen new address offset + } else + if ((raw[0] == 0) && (raw[1] == 0) && (raw[2] == 0) && (raw[3] == 1)) { //>End Of File record :00000001FF + *dst_len = total; //return total size of bin data && start address + return dst; + } else + if (raw[3] == 0) { //>Data record - process + pos = elar + ( (unsigned int)raw[1]<<8 | (unsigned int)raw[2] ); //get start address of this chunk + if (start_set==0) { + *start_address = pos; //set it as new start addres - only possible for first data record + start_set = 1; //only once - this is start address of thye binary data + } + if (pos >= max_address) { + *dst_len = total; //max address limit has been reached + return dst; //stop processing and return what's done + } + pos -= *start_address; + cnt = raw[0]; //get chunk size/length + if (pos+cnt > *dst_len) { //enlarge buffer if required + unsigned char *dst_new = realloc(dst, *dst_len + 8192); //add 8kB of new space + if (dst_new == NULL) { + *dst_len = -2; //allocation error - exit + free(dst); + return NULL; + } else { + *dst_len += 8192; + dst = dst_new; //allocation succesed - copy new pointer + } + } + memmove(dst+pos, raw+4, cnt); + if (pos+cnt > total) { //set new total variable + total = pos+cnt; //tricky way - file can be none linear! + } + } + } else { + *dst_len = -1; //checksum error - exit + free(dst); + return NULL; + } + } + lines++; //not a IntelHex line - comment? + } + *dst_len = -3; //fatal error - no valid intel hex file processed + free(dst); + return NULL; +} + +/* +//maybe usefull - stay here for future + +int ihex2bin(FILE * outFile, FILE *inFile) { + unsigned int total = 0, oneline_len, elar = 0, start = 0xFFFFFFFF, pos, cnt; + unsigned char oneline [512], raw[256]; + + while ( fgets (oneline , sizeof(oneline) , inFile) != NULL ) { + //puts (oneline); + if (oneline[0] == ':') { + oneline_len = strlen(oneline)-2; + hex2bin(raw, oneline+1, oneline_len); + if (check_checksum(raw, oneline_len/2) == 0) { + if ((raw[0] == 2) && (raw[1] == 0) && (raw[2] == 0) && (raw[3] == 4)) { //:020000040803EF + elar = (unsigned int)raw[4]<<24 | (unsigned int) raw[5]<<16; + if (start == 0xFFFFFFFF) { + start = elar; + } + } else + if ((raw[0] == 0) && (raw[1] == 0) && (raw[2] == 0) && (raw[3] == 1)) { //:00000001FF + return start; + } else + if (raw[3] == 0) { //data + pos = elar + ( (unsigned int)raw[1]<<8 | (unsigned int)raw[2] ); + cnt = raw[0]; + fseek ( outFile, pos-start, SEEK_SET ); + fwrite (raw+4 , sizeof(unsigned char), cnt, outFile); + if (pos+cnt > total) + total = pos+cnt; + } + } else { + return -1; + } + } + } + return total; +} +*/ + +const unsigned int crc32_tab[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +}; + + +unsigned int crc32(unsigned int crc, const void *buf, size_t size) { + const unsigned char *p; + + p = buf; + crc = crc ^ ~0U; + + while (size--) + crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); + + return crc ^ ~0U; +} diff --git a/src/build-scripts/dfu-convert.exe b/src/build-scripts/hex2dfu.exe similarity index 54% rename from src/build-scripts/dfu-convert.exe rename to src/build-scripts/hex2dfu.exe index 37639b6b38064e0199b81be1959861919b3cfded..e89e3b1f571ccb3072ce204ffe0bb1bdb1264803 100644 GIT binary patch delta 104227 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�q!dtc?$jtBlzojom|BhLGeAheHGQ% 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 MfW|qy@RExE4@~edMF0Q* delta 85929 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 pj1;vaRi0TtZLV{{iiB^k)D7