aboutsummaryrefslogtreecommitdiffstats
path: root/Bootloaders/CDC/BootloaderAPI.h
diff options
context:
space:
mode:
Diffstat (limited to 'Bootloaders/CDC/BootloaderAPI.h')
-rw-r--r--Bootloaders/CDC/BootloaderAPI.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/Bootloaders/CDC/BootloaderAPI.h b/Bootloaders/CDC/BootloaderAPI.h
index 2462cacdd..89ef46e91 100644
--- a/Bootloaders/CDC/BootloaderAPI.h
+++ b/Bootloaders/CDC/BootloaderAPI.h
@@ -45,6 +45,30 @@
#include "Config/AppConfig.h"
+ /* 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] */
+
/* Function Prototypes: */
void BootloaderAPI_ErasePage(const uint32_t Address);
void BootloaderAPI_WritePage(const uint32_t Address);