dfu_headers.h 775 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <stdint.h>
  3. #pragma pack(push, 1)
  4. typedef struct {
  5. char szSignature[5];
  6. uint8_t bVersion;
  7. uint32_t DFUImageSize;
  8. uint8_t bTargets;
  9. } DfuPrefix;
  10. typedef struct {
  11. uint16_t bcdDevice;
  12. uint16_t idProduct;
  13. uint16_t idVendor;
  14. uint16_t bcdDFU;
  15. uint8_t ucDfuSignature_U;
  16. uint8_t ucDfuSignature_F;
  17. uint8_t ucDfuSignature_D;
  18. uint8_t bLength;
  19. uint32_t dwCRC;
  20. } DfuSuffix;
  21. typedef struct {
  22. char szSignature[6];
  23. uint8_t bAlternateSetting;
  24. uint8_t bTargetNamed;
  25. uint8_t _pad[3];
  26. char szTargetName[255];
  27. uint32_t dwTargetSize;
  28. uint32_t dwNbElements;
  29. } TargetPrefix;
  30. typedef struct {
  31. uint32_t dwElementAddress;
  32. uint32_t dwElementSize;
  33. } ImageElementHeader;
  34. #pragma pack(pop)