@ -28,41 +28,44 @@
this s o f t w a r e .
* /
; 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 B o o t l o a d e r A P I _ E r a s e P a g e
BootloaderAPI_WritePage_Trampoline :
jmp B o o t l o a d e r A P I _ W r i t e P a g e
BootloaderAPI_FillWord_Trampoline :
jmp B o o t l o a d e r A P I _ F i l l W o r d
BootloaderAPI_ReadSignature_Trampoline :
jmp B o o t l o a d e r A P I _ R e a d S i g n a t u r e
BootloaderAPI_ReadFuse_Trampoline :
jmp B o o t l o a d e r A P I _ R e a d F u s e
BootloaderAPI_ReadLock_Trampoline :
jmp B o o t l o a d e r A P I _ R e a d L o c k
BootloaderAPI_WriteLock_Trampoline :
jmp B o o t l o a d e r A P I _ W r i t e L o c k
BootloaderAPU_UNUSED1 :
ret
BootloaderAPU_UNUSED2 :
ret
BootloaderAPU_UNUSED3 :
ret
BootloaderAPU_UNUSED4 :
ret
BootloaderAPU_UNUSED5 :
ret
.section .apitable_trampolines , " ax"
.global BootloaderAPI_Trampolines
BootloaderAPI_Trampolines :
BootloaderAPI_ErasePage_Trampoline :
jmp B o o t l o a d e r A P I _ E r a s e P a g e
BootloaderAPI_WritePage_Trampoline :
jmp B o o t l o a d e r A P I _ W r i t e P a g e
BootloaderAPI_FillWord_Trampoline :
jmp B o o t l o a d e r A P I _ F i l l W o r d
BootloaderAPI_ReadSignature_Trampoline :
jmp B o o t l o a d e r A P I _ R e a d S i g n a t u r e
BootloaderAPI_ReadFuse_Trampoline :
jmp B o o t l o a d e r A P I _ R e a d F u s e
BootloaderAPI_ReadLock_Trampoline :
jmp B o o t l o a d e r A P I _ R e a d L o c k
BootloaderAPI_WriteLock_Trampoline :
jmp B o o t l o a d e r A P I _ W r i t e L o c k
BootloaderAPU_UNUSED1 :
ret
BootloaderAPU_UNUSED2 :
ret
BootloaderAPU_UNUSED3 :
ret
BootloaderAPU_UNUSED4 :
ret
BootloaderAPU_UNUSED5 :
ret
; API function jump table
.org ( 9 6 - 3 2 )
. section .apitable_jumptable , " ax"
.global BootloaderAPI_JumpTable
BootloaderAPI_JumpTable :
rjmp B o o t l o a d e r A P I _ E r a s e P a g e _ T r a m p o l i n e
rjmp B o o t l o a d e r A P I _ W r i t e P a g e _ T r a m p o l i n e
rjmp B o o t l o a d e r A P I _ F i l l W o r d _ T r a m p o l i n e
@ -76,10 +79,13 @@ BootloaderAPI_JumpTable:
rjmp B o o t l o a d e r A P U _ U N U S E D 4 ; UNUSED ENTRY 4
rjmp B o o t l o a d e r A P U _ U N U S E D 5 ; UNUSED ENTRY 5
; Bootloader table signatures and information
.org ( 9 6 - 8 )
BootloaderAPI_Signatures :
.section .apitable_signatures , " ax"
.global BootloaderAPI_Signatures
BootloaderAPI_Signatures :
.long BOOT_START_ADDR ; Start address of the bootloader
.word 0xCDC1 ; Signature for the CDC class bootloader, V1
.word 0x DFB1 ; Signature for the DFU class bootloader, V1
.word 0xDCFB ; Signature for a LUFA class bootloader