+ /* User Application API: */
+ /** [User Application API] */
+ #define BOOTLOADER_API_TABLE_SIZE 32
+ #define BOOTLOADER_API_TABLE_START ((FLASHEND + 1UL) - BOOTLOADER_API_TABLE_SIZE)
+ #define BOOTLOADER_API_CALL(Index) (void*)((BOOTLOADER_API_TABLE_START + (Index * 2)) / 2)
+
+ void (*BootAPI_ErasePage)(uint32_t Address) = BOOTLOADER_API_CALL(0);
+ void (*BootAPI_WritePage)(uint32_t Address) = BOOTLOADER_API_CALL(1);
+ void (*BootAPI_FillWord)(uint32_t Address, uint16_t Word) = BOOTLOADER_API_CALL(2);
+ uint8_t (*BootAPI_ReadSignature)(uint16_t Address) = BOOTLOADER_API_CALL(3);
+ uint8_t (*BootAPI_ReadFuse)(uint16_t Address) = BOOTLOADER_API_CALL(4);
+ uint8_t (*BootAPI_ReadLock)(void) = BOOTLOADER_API_CALL(5);
+ void (*BootAPI_WriteLock)(uint8_t LockBits) = BOOTLOADER_API_CALL(6);
+
+ #define BOOTLOADER_MAGIC_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 2))
+ #define BOOTLOADER_MAGIC_SIGNATURE 0xDCFB
+
+ #define BOOTLOADER_CLASS_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4))
+ #define BOOTLOADER_CDC_SIGNATURE 0xDF00
+
+ #define BOOTLOADER_ADDRESS_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8))
+ #define BOOTLOADER_ADDRESS_LENGTH 4
+ /** [User Application API] */
+