Tag for the LUFA-120730-BETA release.
[pub/USBasp.git] / Bootloaders / DFU / BootloaderAPITable.S
index 18ae390..9d1e2fc 100644 (file)
@@ -7,7 +7,7 @@
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
   this software.
 */
 
-; 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
+.section .apitable_trampolines, "ax"
+.global BootloaderAPI_Trampolines
+BootloaderAPI_Trampolines:
+
+       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)
+.section .apitable_jumptable, "ax"
 .global BootloaderAPI_JumpTable
 BootloaderAPI_JumpTable:
+
        rjmp BootloaderAPI_ErasePage_Trampoline
        rjmp BootloaderAPI_WritePage_Trampoline
        rjmp BootloaderAPI_FillWord_Trampoline
@@ -76,10 +79,13 @@ BootloaderAPI_JumpTable:
        rjmp BootloaderAPU_UNUSED4 ; UNUSED ENTRY 4
        rjmp BootloaderAPU_UNUSED5 ; UNUSED ENTRY 5
 
+
+
 ; Bootloader table signatures and information
-.org (96 - 8)
-BootloaderAPI_Signatures:
+.section .apitable_signatures, "ax"
 .global BootloaderAPI_Signatures
+BootloaderAPI_Signatures:
+
        .long BOOT_START_ADDR ; Start address of the bootloader
        .word 0xDFB1 ; Signature for the DFU class bootloader, V1
        .word 0xDCFB ; Signature for a LUFA class bootloader