X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/a09cb7e3d8d6256f5610459ee8dd80e0efd741f7..2304a730508331b3d71c5c37602201b5b065b4a4:/Bootloaders/Printer/BootloaderAPI.h diff --git a/Bootloaders/Printer/BootloaderAPI.h b/Bootloaders/Printer/BootloaderAPI.h index f44ab06c7..990ffb9f4 100644 --- a/Bootloaders/Printer/BootloaderAPI.h +++ b/Bootloaders/Printer/BootloaderAPI.h @@ -43,6 +43,30 @@ #include + /* 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 0xDF20 + + #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);