X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/7cac5e22d7fae140b3ae4167a706d0dc07b9cf3b..c7344c22ac700dacf55a8dc729111dd7781c5fed:/Bootloaders/DFU/BootloaderAPITable.S diff --git a/Bootloaders/DFU/BootloaderAPITable.S b/Bootloaders/DFU/BootloaderAPITable.S index a7d479a70..18ae390fc 100644 --- a/Bootloaders/DFU/BootloaderAPITable.S +++ b/Bootloaders/DFU/BootloaderAPITable.S @@ -30,23 +30,56 @@ ; Bootloader API Jump Table .section .apitable, "ax" + +; Trampolines to actual API implementations if the target address is outside the +; range of a rjmp instruction (can happen with large bootloader sections) .org 0 +BootloaderAPI_ErasePage_Trampoline: + jmp BootloaderAPI_ErasePage +BootloaderAPI_WritePage_Trampoline: + jmp BootloaderAPI_WritePage +BootloaderAPI_FillWord_Trampoline: + jmp BootloaderAPI_FillWord +BootloaderAPI_ReadSignature_Trampoline: + jmp BootloaderAPI_ReadSignature +BootloaderAPI_ReadFuse_Trampoline: + jmp BootloaderAPI_ReadFuse +BootloaderAPI_ReadLock_Trampoline: + jmp BootloaderAPI_ReadLock +BootloaderAPI_WriteLock_Trampoline: + jmp BootloaderAPI_WriteLock +BootloaderAPU_UNUSED1: + ret +BootloaderAPU_UNUSED2: + ret +BootloaderAPU_UNUSED3: + ret +BootloaderAPU_UNUSED4: + ret +BootloaderAPU_UNUSED5: + ret ; API function jump table +.org (96 - 32) .global BootloaderAPI_JumpTable BootloaderAPI_JumpTable: - rjmp BootloaderAPI_ErasePage - rjmp BootloaderAPI_WritePage - rjmp BootloaderAPI_FillWord - rjmp BootloaderAPI_ReadSignature - rjmp BootloaderAPI_ReadFuse - rjmp BootloaderAPI_ReadLock - rjmp BootloaderAPI_WriteLock + rjmp BootloaderAPI_ErasePage_Trampoline + rjmp BootloaderAPI_WritePage_Trampoline + rjmp BootloaderAPI_FillWord_Trampoline + rjmp BootloaderAPI_ReadSignature_Trampoline + rjmp BootloaderAPI_ReadFuse_Trampoline + rjmp BootloaderAPI_ReadLock_Trampoline + rjmp BootloaderAPI_WriteLock_Trampoline + rjmp BootloaderAPU_UNUSED1 ; UNUSED ENTRY 1 + rjmp BootloaderAPU_UNUSED2 ; UNUSED ENTRY 2 + rjmp BootloaderAPU_UNUSED3 ; UNUSED ENTRY 3 + rjmp BootloaderAPU_UNUSED4 ; UNUSED ENTRY 4 + rjmp BootloaderAPU_UNUSED5 ; UNUSED ENTRY 5 ; Bootloader table signatures and information -.org 24 +.org (96 - 8) +BootloaderAPI_Signatures: +.global BootloaderAPI_Signatures .long BOOT_START_ADDR ; Start address of the bootloader -.org 28 .word 0xDFB1 ; Signature for the DFU class bootloader, V1 -.org 30 .word 0xDCFB ; Signature for a LUFA class bootloader