From 2304a730508331b3d71c5c37602201b5b065b4a4 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 12 Oct 2014 16:58:42 +1100 Subject: Improve bootloader documentation. --- Bootloaders/DFU/BootloaderAPI.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'Bootloaders/DFU/BootloaderAPI.h') diff --git a/Bootloaders/DFU/BootloaderAPI.h b/Bootloaders/DFU/BootloaderAPI.h index 2462cacdd..9502bd901 100644 --- a/Bootloaders/DFU/BootloaderAPI.h +++ b/Bootloaders/DFU/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 0xDF10 + + #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); -- cgit v1.2.3