diff options
| -rw-r--r-- | Bootloaders/CDC/BootloaderAPITable.S | 48 | ||||
| -rw-r--r-- | Bootloaders/CDC/makefile | 2 | ||||
| -rw-r--r-- | Bootloaders/DFU/BootloaderAPITable.S | 48 | ||||
| -rw-r--r-- | Bootloaders/DFU/makefile | 2 | ||||
| -rw-r--r-- | LUFA/DoxygenPages/ChangeLog.txt | 1 | ||||
| -rw-r--r-- | LUFA/DoxygenPages/LUFAPoweredProjects.txt | 2 | ||||
| -rw-r--r-- | LUFA/DoxygenPages/MainPage.txt | 2 | 
7 files changed, 75 insertions, 30 deletions
| diff --git a/Bootloaders/CDC/BootloaderAPITable.S b/Bootloaders/CDC/BootloaderAPITable.S index 50b7a5d389..fc1e2e99fc 100644 --- a/Bootloaders/CDC/BootloaderAPITable.S +++ b/Bootloaders/CDC/BootloaderAPITable.S @@ -31,25 +31,45 @@  ; Bootloader API Jump Table  .section .apitable, "ax" -; API function jump table +; 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_UNUSED: +	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 -	nop ; UNUSED ENTRY -	nop ; UNUSED ENTRY -	nop ; UNUSED ENTRY -	nop ; UNUSED ENTRY -	ret +	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_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY  ; Bootloader table signatures and information -.org (32 - 8) +.org (96 - 8)  BootloaderAPI_Signatures:  .global BootloaderAPI_Signatures  	.long BOOT_START_ADDR ; Start address of the bootloader diff --git a/Bootloaders/CDC/makefile b/Bootloaders/CDC/makefile index ca04b6bcae..066fb8884d 100644 --- a/Bootloaders/CDC/makefile +++ b/Bootloaders/CDC/makefile @@ -102,7 +102,7 @@ BOOT_SECTION_SIZE_KB = 4  # API jump table (for more information on the latter, see the bootloader documentation). These formulas  # should not need to be altered - modify the FLASH_SIZE_KB and BOOT_SECTION_KB values above instead.  BOOT_START           = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc) -BOOT_API_TABLESTART  = 0x$(shell echo "obase=16; (($(FLASH_SIZE_KB) * 1024) - 32)" | bc) +BOOT_API_TABLESTART  = 0x$(shell echo "obase=16; (($(FLASH_SIZE_KB) * 1024) - 96)" | bc)  # Output format. (can be srec, ihex, binary) diff --git a/Bootloaders/DFU/BootloaderAPITable.S b/Bootloaders/DFU/BootloaderAPITable.S index 1ce125e218..0935aca775 100644 --- a/Bootloaders/DFU/BootloaderAPITable.S +++ b/Bootloaders/DFU/BootloaderAPITable.S @@ -31,25 +31,45 @@  ; Bootloader API Jump Table  .section .apitable, "ax" -; API function jump table +; 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_UNUSED: +	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 -	nop ; UNUSED ENTRY -	nop ; UNUSED ENTRY -	nop ; UNUSED ENTRY -	nop ; UNUSED ENTRY -	ret +	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_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY +	rjmp BootloaderAPU_UNUSED ; UNUSED ENTRY  ; Bootloader table signatures and information -.org (32 - 8) +.org (96 - 8)  BootloaderAPI_Signatures:  .global BootloaderAPI_Signatures  	.long BOOT_START_ADDR ; Start address of the bootloader diff --git a/Bootloaders/DFU/makefile b/Bootloaders/DFU/makefile index d23c53ab00..608564ebe7 100644 --- a/Bootloaders/DFU/makefile +++ b/Bootloaders/DFU/makefile @@ -102,7 +102,7 @@ BOOT_SECTION_SIZE_KB = 4  # API jump table (for more information on the latter, see the bootloader documentation). These formulas  # should not need to be altered - modify the FLASH_SIZE_KB and BOOT_SECTION_KB values above instead.  BOOT_START           = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc) -BOOT_API_TABLESTART  = 0x$(shell echo "obase=16; (($(FLASH_SIZE_KB) * 1024) - 32)" | bc) +BOOT_API_TABLESTART  = 0x$(shell echo "obase=16; (($(FLASH_SIZE_KB) * 1024) - 96)" | bc)  # Output format. (can be srec, ihex, binary) diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt index 386316251f..b35a39cb83 100644 --- a/LUFA/DoxygenPages/ChangeLog.txt +++ b/LUFA/DoxygenPages/ChangeLog.txt @@ -37,6 +37,7 @@    *   - Fixed error in the AVRISP-MKII programmer when ISP mode is used at 64KHz (thanks to Ben R. Porter)    *   - Fixed AVRISP-MKII programmer project failing to compile for the U4 chips when VTARGET_ADC_CHANNEL is defined to an invalid channel and NO_VTARGET_DETECT is    *     defined (thanks to Steven Morehouse) +  *   - Fixed CDC and DFU bootloaders failing to compile when the bootloader section size is 8KB or more (thanks to Georg Glock)    *    *  \section Sec_ChangeLog120219 Version 120219    *  <b>New:</b> diff --git a/LUFA/DoxygenPages/LUFAPoweredProjects.txt b/LUFA/DoxygenPages/LUFAPoweredProjects.txt index 342db29ac3..ea08705159 100644 --- a/LUFA/DoxygenPages/LUFAPoweredProjects.txt +++ b/LUFA/DoxygenPages/LUFAPoweredProjects.txt @@ -85,6 +85,7 @@   *  \li Opendous-JTAG, an open source ARM JTAG debugger: http://code.google.com/p/opendous-jtag/   *  \li Openkubus, an open source hardware-based authentication dongle: http://code.google.com/p/openkubus/   *  \li Orbee, a USB connected RGB Orb for notifications: http://www.franksworkshop.com.au/Electronics/Orbee/Orbee.htm + *  \li PPM signal generator over USB: https://github.com/G33KatWork/USBPPM   *  \li Programmable keyboard controller: http://41j.com/blog/2011/10/a-programmable-keyboard-controller/   *  \li Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/   *  \li PSGroove, a Playstation 3 Homebrew dongle: http://github.com/psgroove @@ -104,6 +105,7 @@   *  \li Stylophone, with USB MIDI connectivity: http://www.waitingforfriday.com/index.php/Stylophone_Studio_5   *  \li Teensy SD Card .WAV file player: http://elasticsheep.com/2010/04/teensy2-usb-wav-player-part-1/   *  \li Touchscreen Input Device: http://capnstech.blogspot.com/2010/07/touchscreen-update.html + *  \li UDFS, a BBC Micro USB disk filing system: https://github.com/makestuff/udfs   *  \li Universal USB AVR Module: http://usbavr.bplaced.net/   *  \li USB2AX, a USB to Dynamixel network adapter: http://paranoidstudio.assembla.com/wiki/show/paranoidstudio/USB2AX   *  \li USB Infrared Receiver/Transmitter: http://vaton4.web2001.cz/ diff --git a/LUFA/DoxygenPages/MainPage.txt b/LUFA/DoxygenPages/MainPage.txt index 2ab420a5bc..ed96d1a66c 100644 --- a/LUFA/DoxygenPages/MainPage.txt +++ b/LUFA/DoxygenPages/MainPage.txt @@ -43,6 +43,8 @@   *  \li \subpage Page_DeviceSupport - Current Device and Hardware Support   *  \li \subpage Page_ChangeLog - Project Changelog   *  \li \subpage Page_FutureChanges - Planned Changes to the Library + *  \li \subpage Page_GettingStarted - Getting started with LUFA + *  \li \subpage Page_DevelopingWithLUFA - Developing with LUFA   *  \li \subpage Page_LUFAPoweredProjects - Other Projects Using LUFA   *  \li \subpage Page_Resources - LUFA and USB Related Resources   */ | 
