diff options
| -rw-r--r-- | LUFA.pnproj | 2 | ||||
| -rw-r--r-- | LUFA/Drivers/USB/HighLevel/USBInterrupt.c | 2 | ||||
| -rw-r--r-- | LUFA/ManPages/ChangeLog.txt | 1 | ||||
| -rw-r--r-- | LUFA/ManPages/LibraryResources.txt | 1 | ||||
| -rw-r--r-- | Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h | 2 | ||||
| -rw-r--r-- | Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c | 1 | ||||
| -rw-r--r-- | Projects/USBtoSerial/USBtoSerial.txt | 17 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/Descriptors.c | 275 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/Descriptors.h | 84 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/LUFA XPLAIN Bridge.inf | 106 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/Lib/RingBuff.c | 120 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/Lib/RingBuff.h | 116 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/Lib/SoftUART.S | 389 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/Lib/SoftUART.h | 59 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/XPLAINBridge.c | 133 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/XPLAINBridge.h | 74 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/XPLAINBridge.txt | 70 | ||||
| -rw-r--r-- | Projects/XPLAINBridge/makefile | 744 | ||||
| -rw-r--r-- | Projects/makefile | 4 | 
19 files changed, 2190 insertions, 10 deletions
| diff --git a/LUFA.pnproj b/LUFA.pnproj index d6c9936add..efb0702d02 100644 --- a/LUFA.pnproj +++ b/LUFA.pnproj @@ -1 +1 @@ -<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\ClassDriver\CDC\CDC.c"></File><File path="Demos\Device\ClassDriver\CDC\CDC.h"></File><File path="Demos\Device\ClassDriver\CDC\CDC.txt"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\CDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\CDC\LUFA CDC.inf"></File><File path="Demos\Device\ClassDriver\CDC\makefile"></File></Folder><Folder name="CDCMouse"><File path="Demos\Device\ClassDriver\CDCMouse\CDCMouse.c"></File><File path="Demos\Device\ClassDriver\CDCMouse\CDCMouse.h"></File><File path="Demos\Device\ClassDriver\CDCMouse\CDCMouse.txt"></File><File path="Demos\Device\ClassDriver\CDCMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\CDCMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\CDCMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\CDCMouse\LUFA CDCMouse.inf"></File><File path="Demos\Device\ClassDriver\CDCMouse\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualCDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.c"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.h"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.txt"></File><File path="Demos\Device\ClassDriver\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\ClassDriver\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\LowLevel\CDC\CDC.c"></File><File path="Demos\Device\LowLevel\CDC\CDC.h"></File><File path="Demos\Device\LowLevel\CDC\CDC.txt"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\CDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\CDC\LUFA CDC.inf"></File><File path="Demos\Device\LowLevel\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\LowLevel\DualCDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualCDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualCDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.c"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.h"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.txt"></File><File path="Demos\Device\LowLevel\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\LowLevel\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDISConstants.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="CDCHost"><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.c"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.h"></File><File path="Demos\Host\ClassDriver\CDCHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\CDCHost\makefile"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.txt"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="CDCHost"><File path="Demos\Host\LowLevel\CDCHost\CDCHost.c"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.h"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.txt"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\CDCHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\CDCHost\makefile"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\Lib\RNDISCommands.h"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\Lib\RNDISConstants.h"></File></Folder><File path="Demos\Host\Incomplete\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\makefile"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\RNDISEthernetHost.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDISConstants.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\XPLAIN\LEDs.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVRU4U6U7"><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\ADC.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\Licence.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Projects"><Folder name="AVRISP"><Folder name="Lib"><File path="Projects\AVRISP\Lib\V2Protocol.c"></File><File path="Projects\AVRISP\Lib\V2Protocol.h"></File><File path="Projects\AVRISP\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP\Lib\V2ProtocolParams.h"></File><File path="Projects\AVRISP\Lib\V2ProtocolTarget.c"></File><File path="Projects\AVRISP\Lib\V2ProtocolTarget.h"></File></Folder><File path="Projects\AVRISP\AVRISP.c"></File><File path="Projects\AVRISP\AVRISP.h"></File><File path="Projects\AVRISP\AVRISP.txt"></File><File path="Projects\AVRISP\Descriptors.c"></File><File path="Projects\AVRISP\Descriptors.h"></File><File path="Projects\AVRISP\Doxygen.conf"></File><File path="Projects\AVRISP\makefile"></File></Folder><Folder name="Benito"><Folder name="Board"><File path="Projects\Benito\Board\LEDs.h"></File></Folder><Folder name="Lib"><File path="Projects\Benito\Lib\RingBuff.c"></File><File path="Projects\Benito\Lib\RingBuff.h"></File></Folder><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Projects\USBtoSerial\Lib\RingBuff.c"></File><File path="Projects\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Projects\USBtoSerial\Descriptors.c"></File><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><Folder name="Bootloaders"><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File></Folder><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><Folder name="Incomplete"><Folder name="MIDI"><Folder name="JavaHost"><File path="Bootloaders\Incomplete\MIDI\JavaHost\BIN2BOOT.java"></File><File path="Bootloaders\Incomplete\MIDI\JavaHost\MIDIMessageReceiver.java"></File></Folder><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.c"></File><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.h"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.c"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.h"></File><File path="Bootloaders\Incomplete\MIDI\Doxygen.conf"></File><File path="Bootloaders\Incomplete\MIDI\makefile"></File><File path="Bootloaders\Incomplete\MIDI\MIDI.c"></File></Folder></Folder><File path="Bootloaders\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file +<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\ClassDriver\CDC\CDC.c"></File><File path="Demos\Device\ClassDriver\CDC\CDC.h"></File><File path="Demos\Device\ClassDriver\CDC\CDC.txt"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\CDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\CDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\CDC\LUFA CDC.inf"></File><File path="Demos\Device\ClassDriver\CDC\makefile"></File></Folder><Folder name="CDCMouse"><File path="Demos\Device\ClassDriver\CDCMouse\CDCMouse.c"></File><File path="Demos\Device\ClassDriver\CDCMouse\CDCMouse.h"></File><File path="Demos\Device\ClassDriver\CDCMouse\CDCMouse.txt"></File><File path="Demos\Device\ClassDriver\CDCMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\CDCMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\CDCMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\CDCMouse\LUFA CDCMouse.inf"></File><File path="Demos\Device\ClassDriver\CDCMouse\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualCDC\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualCDC\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.c"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.h"></File><File path="Demos\Device\ClassDriver\DualCDC\DualCDC.txt"></File><File path="Demos\Device\ClassDriver\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\ClassDriver\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\LowLevel\CDC\CDC.c"></File><File path="Demos\Device\LowLevel\CDC\CDC.h"></File><File path="Demos\Device\LowLevel\CDC\CDC.txt"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\CDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\CDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\CDC\LUFA CDC.inf"></File><File path="Demos\Device\LowLevel\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\LowLevel\DualCDC\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualCDC\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualCDC\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.c"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.h"></File><File path="Demos\Device\LowLevel\DualCDC\DualCDC.txt"></File><File path="Demos\Device\LowLevel\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\LowLevel\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDISConstants.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="CDCHost"><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.c"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.h"></File><File path="Demos\Host\ClassDriver\CDCHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\CDCHost\makefile"></File><File path="Demos\Host\ClassDriver\CDCHost\CDCHost.txt"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="CDCHost"><File path="Demos\Host\LowLevel\CDCHost\CDCHost.c"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.h"></File><File path="Demos\Host\LowLevel\CDCHost\CDCHost.txt"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\CDCHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\CDCHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\CDCHost\makefile"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\Lib\RNDISCommands.h"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\Lib\RNDISConstants.h"></File></Folder><File path="Demos\Host\Incomplete\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\makefile"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\Incomplete\RNDISEthernetHost\RNDISEthernetHost.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDISConstants.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\XPLAIN\LEDs.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVRU4U6U7"><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\ADC.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\Licence.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Projects"><Folder name="AVRISP"><Folder name="Lib"><File path="Projects\AVRISP\Lib\V2Protocol.c"></File><File path="Projects\AVRISP\Lib\V2Protocol.h"></File><File path="Projects\AVRISP\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP\Lib\V2ProtocolParams.h"></File><File path="Projects\AVRISP\Lib\V2ProtocolTarget.c"></File><File path="Projects\AVRISP\Lib\V2ProtocolTarget.h"></File></Folder><File path="Projects\AVRISP\AVRISP.c"></File><File path="Projects\AVRISP\AVRISP.h"></File><File path="Projects\AVRISP\AVRISP.txt"></File><File path="Projects\AVRISP\Descriptors.c"></File><File path="Projects\AVRISP\Descriptors.h"></File><File path="Projects\AVRISP\Doxygen.conf"></File><File path="Projects\AVRISP\makefile"></File></Folder><Folder name="Benito"><Folder name="Board"><File path="Projects\Benito\Board\LEDs.h"></File></Folder><Folder name="Lib"><File path="Projects\Benito\Lib\RingBuff.c"></File><File path="Projects\Benito\Lib\RingBuff.h"></File></Folder><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Projects\USBtoSerial\Lib\RingBuff.c"></File><File path="Projects\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Projects\USBtoSerial\Descriptors.c"></File><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\RingBuff.c"></File><File path="Projects\XPLAINBridge\Lib\RingBuff.h"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.S"></File></Folder><File path="Projects\XPLAINBridge\Descriptors.c"></File><File path="Projects\XPLAINBridge\Descriptors.h"></File><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File></Folder><File path="Projects\makefile"></File></Folder><Folder name="Bootloaders"><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File></Folder><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><Folder name="Incomplete"><Folder name="MIDI"><Folder name="JavaHost"><File path="Bootloaders\Incomplete\MIDI\JavaHost\BIN2BOOT.java"></File><File path="Bootloaders\Incomplete\MIDI\JavaHost\MIDIMessageReceiver.java"></File></Folder><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.c"></File><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.h"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.c"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.h"></File><File path="Bootloaders\Incomplete\MIDI\Doxygen.conf"></File><File path="Bootloaders\Incomplete\MIDI\makefile"></File><File path="Bootloaders\Incomplete\MIDI\MIDI.c"></File></Folder></Folder><File path="Bootloaders\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c index f58e67010c..3cf4bb3e1b 100644 --- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c +++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c @@ -229,7 +229,7 @@ ISR(USB_GEN_vect, ISR_BLOCK)  	#endif
  }
 -#if defined(INTERRUPT_CONTROL_ENDPOINT)
 +#if defined(INTERRUPT_CONTROL_ENDPOINT) && defined(USB_CAN_BE_DEVICE)
  ISR(USB_COM_vect, ISR_BLOCK)
  {
  	uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint();
 diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 5dc83cc65b..ccc3e216e1 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -11,6 +11,7 @@    *  <b>New:</b>
    *  - Added activity LED indicators to the AVRISP project to indicate when the device is busy processing a command
    *  - The USB target family and allowable USB mode tokens are now public and documented (USB_CAN_BE_*, USB_SERIES_*_AVR)
 +  *  - Added new XPLAIN serial Bridge project (thanks to John Steggall)
    *
    *  <b>Changed:</b>
    *  - Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of keycodes
 diff --git a/LUFA/ManPages/LibraryResources.txt b/LUFA/ManPages/LibraryResources.txt index 759a8c0efc..7ba267fa5b 100644 --- a/LUFA/ManPages/LibraryResources.txt +++ b/LUFA/ManPages/LibraryResources.txt @@ -12,6 +12,7 @@   *  Discussion Group: http://groups.google.com/group/myusb-support-list \n
   *  SVN Access, Bug Reports and Feature Requests: http://code.google.com/p/lufa-lib/ \n
   *  Git Access: http://github.com/abcminiuser/lufa-lib
 + *  Commit RSS: http://github.com/feeds/abcminiuser/commits/lufa-lib/master
   *  Author's Website: http://www.fourwalledcubicle.com \n
   *
   *  WinAVR Website: http://winavr.sourceforge.net \n
 diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h index b24339c0c3..e7a9c14e26 100644 --- a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h +++ b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h @@ -46,7 +46,7 @@  /* To enable pf_lseek function, set _USE_LSEEK to 1. */
 -#define _FS_FAT32	0
 +#define _FS_FAT32	1
  /* To enable FAT32 support, set _FS_FAT32 to 1. */
 diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c index 5d86523660..404f80432c 100644 --- a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c +++ b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c @@ -88,7 +88,6 @@ void Programmer_Task(void)  		#endif
  		puts("Reading Configuration File...\r\n");
 -		
  		if (!(ProgrammerConfig_ProcessConfiguration()))
  		  goto EndOfProgCycle;
 diff --git a/Projects/USBtoSerial/USBtoSerial.txt b/Projects/USBtoSerial/USBtoSerial.txt index 065b329673..f5378cced3 100644 --- a/Projects/USBtoSerial/USBtoSerial.txt +++ b/Projects/USBtoSerial/USBtoSerial.txt @@ -4,7 +4,7 @@   *  documentation pages. It is not a project source file.
   */
 -/** \mainpage USB to Serial Converter Demo (via CDC-ACM class)
 +/** \mainpage USB to Serial Converter Project (via CDC-ACM class)
   *
   *  \section SSec_Compat Demo Compatibility:
   *
 @@ -44,11 +44,16 @@   *
   *  \section SSec_Description Project Description: 
   *
 - *  Communications Device Class demonstration application.
 - *  This gives a simple reference application for implementing
 - *  a USB to Serial converter using the CDC class. Sent and
 - *  received data on the serial port is communicated to the USB
 - *  host.
 + *  USB to Serial bridge project. This project allows a USB AVR to serve
 + *  as a USB to USART bridge between a USB host and a device lacking a
 + *  USB port. When programmed into a USB AVR, the AVR will enumerate as a
 + *  virtual COM port.
 + *
 + *  The AVR's hardware USART's settings will change to mirror as closely as
 + *  possible the serial settings set on the host. However, due to hardware
 + *  limitations, some options may not be supported (baud rates with unacceptable
 + *  error rates at the AVR's clock speed, data lengths other than 6, 7 or 8 bits,
 + *  1.5 stop bits, parity other than none, even or odd).
   *  
   *  After running this demo for the first time on a new computer,
   *  you will need to supply the .INF file located in this demo
 diff --git a/Projects/XPLAINBridge/Descriptors.c b/Projects/XPLAINBridge/Descriptors.c new file mode 100644 index 0000000000..d8f7fa637a --- /dev/null +++ b/Projects/XPLAINBridge/Descriptors.c @@ -0,0 +1,275 @@ +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2009.
 +              
 +  dean [at] fourwalledcubicle [dot] com
 +      www.fourwalledcubicle.com
 +*/
 +
 +/*
 +  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/** \file
 + *
 + *  USB Device Descriptors, for library use when in USB device mode. Descriptors are special 
 + *  computer-readable structures which the host requests upon device enumeration, to determine
 + *  the device's capabilities and functions.  
 + */
 +
 +#include "Descriptors.h"
 +
 +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
 + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
 + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
 + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
 + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
 + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
 + * port location).
 + */
 +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
 +	#warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
 +#endif
 +
 +/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
 + *  device characteristics, including the supported USB version, control endpoint size and the
 + *  number of device configurations. The descriptor is read out by the USB host when the enumeration
 + *  process begins.
 + */
 +USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 +{
 +	.Header                 = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
 +		
 +	.USBSpecification       = VERSION_BCD(01.10),
 +	.Class                  = 0x02,
 +	.SubClass               = 0x00,
 +	.Protocol               = 0x00,
 +				
 +	.Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
 +		
 +	.VendorID               = 0x03EB,
 +	.ProductID              = 0x204B,
 +	.ReleaseNumber          = 0x0000,
 +		
 +	.ManufacturerStrIndex   = 0x01,
 +	.ProductStrIndex        = 0x02,
 +	.SerialNumStrIndex      = USE_INTERNAL_SERIAL,
 +		
 +	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
 +};
 +
 +/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
 + *  of the device in one of its supported configurations, including information about any device interfaces
 + *  and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting
 + *  a configuration so that the host may correctly communicate with the USB device.
 + */
 +USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 +{
 +	.Config = 
 +		{
 +			.Header                 = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
 +
 +			.TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
 +			.TotalInterfaces        = 2,
 +				
 +			.ConfigurationNumber    = 1,
 +			.ConfigurationStrIndex  = NO_DESCRIPTOR,
 +				
 +			.ConfigAttributes       = (USB_CONFIG_ATTR_BUSPOWERED | USB_CONFIG_ATTR_SELFPOWERED),
 +			
 +			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
 +		},
 +		
 +	.CCI_Interface = 
 +		{
 +			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 +
 +			.InterfaceNumber        = 0,
 +			.AlternateSetting       = 0,
 +			
 +			.TotalEndpoints         = 1,
 +				
 +			.Class                  = 0x02,
 +			.SubClass               = 0x02,
 +			.Protocol               = 0x01,
 +				
 +			.InterfaceStrIndex      = NO_DESCRIPTOR
 +		},
 +
 +	.CDC_Functional_IntHeader = 
 +		{
 +			.Header                 = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)), .Type = 0x24},
 +			.SubType                = 0x00,
 +			
 +			.Data                   = {0x01, 0x10}
 +		},
 +
 +	.CDC_Functional_CallManagement = 
 +		{
 +			.Header                 = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)), .Type = 0x24},
 +			.SubType                = 0x01,
 +			
 +			.Data                   = {0x03, 0x01}
 +		},
 +
 +	.CDC_Functional_AbstractControlManagement = 
 +		{
 +			.Header                 = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(1)), .Type = 0x24},
 +			.SubType                = 0x02,
 +			
 +			.Data                   = {0x06}
 +		},
 +		
 +	.CDC_Functional_Union= 
 +		{
 +			.Header                 = {.Size = sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)), .Type = 0x24},
 +			.SubType                = 0x06,
 +			
 +			.Data                   = {0x00, 0x01}
 +		},
 +
 +	.ManagementEndpoint = 
 +		{
 +			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 +			
 +			.EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_IN | CDC_NOTIFICATION_EPNUM),
 +			.Attributes             = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
 +			.EndpointSize           = CDC_NOTIFICATION_EPSIZE,
 +			.PollingIntervalMS      = 0xFF
 +		},
 +
 +	.DCI_Interface = 
 +		{
 +			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 +
 +			.InterfaceNumber        = 1,
 +			.AlternateSetting       = 0,
 +			
 +			.TotalEndpoints         = 2,
 +				
 +			.Class                  = 0x0A,
 +			.SubClass               = 0x00,
 +			.Protocol               = 0x00,
 +				
 +			.InterfaceStrIndex      = NO_DESCRIPTOR
 +		},
 +
 +	.DataOutEndpoint = 
 +		{
 +			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 +			
 +			.EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_OUT | CDC_RX_EPNUM),
 +			.Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
 +			.EndpointSize           = CDC_TXRX_EPSIZE,
 +			.PollingIntervalMS      = 0x00
 +		},
 +		
 +	.DataInEndpoint = 
 +		{
 +			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 +			
 +			.EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_IN | CDC_TX_EPNUM),
 +			.Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
 +			.EndpointSize           = CDC_TXRX_EPSIZE,
 +			.PollingIntervalMS      = 0x00
 +		}
 +};
 +
 +/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests
 + *  the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate
 + *  via the language ID table available at USB.org what languages the device supports for its string descriptors.
 + */
 +USB_Descriptor_String_t PROGMEM LanguageString =
 +{
 +	.Header                 = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String},
 +		
 +	.UnicodeString          = {LANGUAGE_ID_ENG}
 +};
 +
 +/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable
 + *  form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
 + *  Descriptor.
 + */
 +USB_Descriptor_String_t PROGMEM ManufacturerString =
 +{
 +	.Header                 = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
 +		
 +	.UnicodeString          = L"Dean Camera"
 +};
 +
 +/** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
 + *  and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
 + *  Descriptor.
 + */
 +USB_Descriptor_String_t PROGMEM ProductString =
 +{
 +	.Header                 = {.Size = USB_STRING_LEN(18), .Type = DTYPE_String},
 +		
 +	.UnicodeString          = L"LUFA XPLAIN Bridge"
 +};
 +
 +/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
 + *  documentation) by the application code so that the address and size of a requested descriptor can be given
 + *  to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
 + *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the
 + *  USB host.
 + */
 +uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
 +{
 +	const uint8_t  DescriptorType   = (wValue >> 8);
 +	const uint8_t  DescriptorNumber = (wValue & 0xFF);
 +
 +	void*    Address = NULL;
 +	uint16_t Size    = NO_DESCRIPTOR;
 +
 +	switch (DescriptorType)
 +	{
 +		case DTYPE_Device: 
 +			Address = (void*)&DeviceDescriptor;
 +			Size    = sizeof(USB_Descriptor_Device_t);
 +			break;
 +		case DTYPE_Configuration: 
 +			Address = (void*)&ConfigurationDescriptor;
 +			Size    = sizeof(USB_Descriptor_Configuration_t);
 +			break;
 +		case DTYPE_String: 
 +			switch (DescriptorNumber)
 +			{
 +				case 0x00: 
 +					Address = (void*)&LanguageString;
 +					Size    = pgm_read_byte(&LanguageString.Header.Size);
 +					break;
 +				case 0x01: 
 +					Address = (void*)&ManufacturerString;
 +					Size    = pgm_read_byte(&ManufacturerString.Header.Size);
 +					break;
 +				case 0x02: 
 +					Address = (void*)&ProductString;
 +					Size    = pgm_read_byte(&ProductString.Header.Size);
 +					break;
 +			}
 +			
 +			break;
 +	}
 +	
 +	*DescriptorAddress = Address;
 +	return Size;
 +}
 diff --git a/Projects/XPLAINBridge/Descriptors.h b/Projects/XPLAINBridge/Descriptors.h new file mode 100644 index 0000000000..730acc6014 --- /dev/null +++ b/Projects/XPLAINBridge/Descriptors.h @@ -0,0 +1,84 @@ +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2009.
 +              
 +  dean [at] fourwalledcubicle [dot] com
 +      www.fourwalledcubicle.com
 +*/
 +
 +/*
 +  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/** \file
 + *
 + *  Header file for Descriptors.c.
 + */
 + 
 +#ifndef _DESCRIPTORS_H_
 +#define _DESCRIPTORS_H_
 +
 +	/* Includes: */
 +		#include <avr/pgmspace.h>
 +
 +		#include <LUFA/Drivers/USB/USB.h>
 +		#include <LUFA/Drivers/USB/Class/CDC.h>
 +
 +	/* Macros: */
 +		/** Endpoint number of the CDC device-to-host notification IN endpoint. */
 +		#define CDC_NOTIFICATION_EPNUM         2
 +
 +		/** Endpoint number of the CDC device-to-host data IN endpoint. */
 +		#define CDC_TX_EPNUM                   3	
 +
 +		/** Endpoint number of the CDC host-to-device data OUT endpoint. */
 +		#define CDC_RX_EPNUM                   4	
 +
 +		/** Size in bytes of the CDC device-to-host notification IN endpoint. */
 +		#define CDC_NOTIFICATION_EPSIZE        8
 +
 +		/** Size in bytes of the CDC data IN and OUT endpoints. */
 +		#define CDC_TXRX_EPSIZE                16	
 +
 +	/* Type Defines: */
 +		/** Type define for the device configuration descriptor structure. This must be defined in the
 +		 *  application code, as the configuration descriptor contains several sub-descriptors which
 +		 *  vary between devices, and which describe the device's usage to the host.
 +		 */
 +		typedef struct
 +		{
 +			USB_Descriptor_Configuration_Header_t    Config;
 +			USB_Descriptor_Interface_t               CCI_Interface;
 +			CDC_FUNCTIONAL_DESCRIPTOR(2)             CDC_Functional_IntHeader;
 +			CDC_FUNCTIONAL_DESCRIPTOR(2)             CDC_Functional_CallManagement;
 +			CDC_FUNCTIONAL_DESCRIPTOR(1)             CDC_Functional_AbstractControlManagement;
 +			CDC_FUNCTIONAL_DESCRIPTOR(2)             CDC_Functional_Union;
 +			USB_Descriptor_Endpoint_t                ManagementEndpoint;
 +			USB_Descriptor_Interface_t               DCI_Interface;
 +			USB_Descriptor_Endpoint_t                DataOutEndpoint;
 +			USB_Descriptor_Endpoint_t                DataInEndpoint;
 +		} USB_Descriptor_Configuration_t;
 +
 +	/* Function Prototypes: */
 +		uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)
 +											ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
 +
 +#endif
 diff --git a/Projects/XPLAINBridge/LUFA XPLAIN Bridge.inf b/Projects/XPLAINBridge/LUFA XPLAIN Bridge.inf new file mode 100644 index 0000000000..10a6a8ce28 --- /dev/null +++ b/Projects/XPLAINBridge/LUFA XPLAIN Bridge.inf @@ -0,0 +1,106 @@ +;************************************************************
 +; Windows USB CDC ACM Setup File
 +; Copyright (c) 2000 Microsoft Corporation
 +
 +
 +[Version]
 +Signature="$Windows NT$"
 +Class=Ports
 +ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
 +Provider=%MFGNAME%
 +LayoutFile=layout.inf
 +CatalogFile=%MFGFILENAME%.cat
 +DriverVer=11/15/2007,5.1.2600.0
 +
 +[Manufacturer]
 +%MFGNAME%=DeviceList, NTamd64
 +
 +[DestinationDirs]
 +DefaultDestDir=12
 +
 +
 +;------------------------------------------------------------------------------
 +;  Windows 2000/XP/Vista-32bit Sections
 +;------------------------------------------------------------------------------
 +
 +[DriverInstall.nt]
 +include=mdmcpq.inf
 +CopyFiles=DriverCopyFiles.nt
 +AddReg=DriverInstall.nt.AddReg
 +
 +[DriverCopyFiles.nt]
 +usbser.sys,,,0x20
 +
 +[DriverInstall.nt.AddReg]
 +HKR,,DevLoader,,*ntkern
 +HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
 +HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 +
 +[DriverInstall.nt.Services]
 +AddService=usbser, 0x00000002, DriverService.nt
 +
 +[DriverService.nt]
 +DisplayName=%SERVICE%
 +ServiceType=1
 +StartType=3
 +ErrorControl=1
 +ServiceBinary=%12%\%DRIVERFILENAME%.sys
 +
 +;------------------------------------------------------------------------------
 +;  Vista-64bit Sections
 +;------------------------------------------------------------------------------
 +
 +[DriverInstall.NTamd64]
 +include=mdmcpq.inf
 +CopyFiles=DriverCopyFiles.NTamd64
 +AddReg=DriverInstall.NTamd64.AddReg
 +
 +[DriverCopyFiles.NTamd64]
 +%DRIVERFILENAME%.sys,,,0x20
 +
 +[DriverInstall.NTamd64.AddReg]
 +HKR,,DevLoader,,*ntkern
 +HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
 +HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 +
 +[DriverInstall.NTamd64.Services]
 +AddService=usbser, 0x00000002, DriverService.NTamd64
 +
 +[DriverService.NTamd64]
 +DisplayName=%SERVICE%
 +ServiceType=1
 +StartType=3
 +ErrorControl=1
 +ServiceBinary=%12%\%DRIVERFILENAME%.sys
 +
 +
 +;------------------------------------------------------------------------------
 +;  Vendor and Product ID Definitions
 +;------------------------------------------------------------------------------
 +; When developing your USB device, the VID and PID used in the PC side
 +; application program and the firmware on the microcontroller must match.
 +; Modify the below line to use your VID and PID.  Use the format as shown below.
 +; Note: One INF file can be used for multiple devices with different VID and PIDs.
 +; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
 +;------------------------------------------------------------------------------
 +[SourceDisksFiles]
 +[SourceDisksNames]
 +[DeviceList]
 +%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204B
 +
 +[DeviceList.NTamd64]
 +%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204B
 +
 +
 +;------------------------------------------------------------------------------
 +;  String Definitions
 +;------------------------------------------------------------------------------
 +;Modify these strings to customize your device
 +;------------------------------------------------------------------------------
 +[Strings]
 +MFGFILENAME="CDC_vista"
 +DRIVERFILENAME ="usbser"
 +MFGNAME="CCS, Inc."
 +INSTDISK="LUFA USB-RS232 CDC Driver Installer"
 +DESCRIPTION="Communications Port"
 +SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file diff --git a/Projects/XPLAINBridge/Lib/RingBuff.c b/Projects/XPLAINBridge/Lib/RingBuff.c new file mode 100644 index 0000000000..0dd4a06bbb --- /dev/null +++ b/Projects/XPLAINBridge/Lib/RingBuff.c @@ -0,0 +1,120 @@ +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2009.
 +              
 +  dean [at] fourwalledcubicle [dot] com
 +      www.fourwalledcubicle.com
 +*/
 +
 +/*
 +  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +#include "RingBuff.h"
 +
 +void Buffer_Initialize(RingBuff_t* Buffer)
 +{
 +	BUFF_ATOMIC_BLOCK
 +	{
 +		Buffer->InPtr    = (RingBuff_Data_t*)&Buffer->Buffer;
 +		Buffer->OutPtr   = (RingBuff_Data_t*)&Buffer->Buffer;
 +		Buffer->Elements = 0;
 +	}
 +}
 +
 +void Buffer_StoreElement(RingBuff_t* Buffer, RingBuff_Data_t Data)
 +{
 +	BUFF_ATOMIC_BLOCK
 +	{
 +	#if defined(BUFF_DROPOLD)
 +		if (Buffer->Elements == BUFF_LENGTH)
 +		{
 +			Buffer->OutPtr++;
 +	
 +			if (Buffer->OutPtr == &Buffer->Buffer[BUFF_LENGTH])
 +			  Buffer->OutPtr = (RingBuff_Data_t*)&Buffer->Buffer;
 +		}
 +		else
 +		{
 +			Buffer->Elements++;
 +		}
 +	#elif defined(BUFF_DROPNEW)
 +		if (Buffer->Elements == BUFF_LENGTH)
 +		  return;
 +	
 +		  Buffer->Elements++;
 +	#elif defined(BUFF_NODROPCHECK)
 +		  Buffer->Elements++;
 +	#endif
 +	
 +		*(Buffer->InPtr) = Data;
 +		Buffer->InPtr++;
 +	
 +		if (Buffer->InPtr == &Buffer->Buffer[BUFF_LENGTH])
 +		  Buffer->InPtr = (RingBuff_Data_t*)&Buffer->Buffer;
 +	}
 +}
 +
 +RingBuff_Data_t Buffer_GetElement(RingBuff_t* Buffer)
 +{
 +	RingBuff_Data_t BuffData;
 +	
 +	BUFF_ATOMIC_BLOCK
 +	{
 +#if defined(BUFF_EMPTYRETURNSZERO)
 +		if (!(Buffer->Elements))
 +		  return 0;
 +#elif !defined(BUFF_NOEMPTYCHECK)
 +	#error No empty buffer check behavior specified.
 +#endif
 +
 +		BuffData = *(Buffer->OutPtr);
 +	
 +		Buffer->OutPtr++;
 +		Buffer->Elements--;
 +	
 +		if (Buffer->OutPtr == &Buffer->Buffer[BUFF_LENGTH])
 +		  Buffer->OutPtr = (RingBuff_Data_t*)&Buffer->Buffer;
 +	}
 +	
 +	return BuffData;
 +}
 +
 +#if defined(BUFF_USEPEEK)
 +RingBuff_Data_t Buffer_PeekElement(const RingBuff_t* Buffer)
 +{
 +	RingBuff_Data_t BuffData;
 +
 +	BUFF_ATOMIC_BLOCK
 +	{
 +#if defined(BUFF_EMPTYRETURNSZERO)
 +		if (!(Buffer->Elements))
 +		  return 0;
 +#elif !defined(BUFF_NOEMPTYCHECK)
 +	#error No empty buffer check behavior specified.
 +#endif
 +
 +		BuffData = *(Buffer->OutPtr);
 +	}
 +
 +	return BuffData;
 +}
 +#endif
 diff --git a/Projects/XPLAINBridge/Lib/RingBuff.h b/Projects/XPLAINBridge/Lib/RingBuff.h new file mode 100644 index 0000000000..23288d87a5 --- /dev/null +++ b/Projects/XPLAINBridge/Lib/RingBuff.h @@ -0,0 +1,116 @@ +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2009.
 +              
 +  dean [at] fourwalledcubicle [dot] com
 +      www.fourwalledcubicle.com
 +*/
 +
 +/*
 +  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/* Buffer Configuration: */
 +   /* Buffer length - select static size of created ring buffers: */
 +	 #define BUFF_STATICSIZE 128      // Set to the static ring buffer size for all ring buffers (place size after define)
 +
 +   /* Volatile mode - uncomment to make buffers volatile, for use in ISRs, etc: */
 +	 #define BUFF_VOLATILE            // Uncomment to cause all ring buffers to become volatile (and atomic if multi-byte) in access
 +
 +   /* Drop mode - select behaviour when Buffer_StoreElement called on a full buffer: */
 +     #define BUFF_DROPOLD             // Uncomment to cause full ring buffers to drop the oldest character to make space when full
 +     // #define BUFF_DROPNEW          // Uncomment to cause full ring buffers to drop the new character when full
 +     // #define BUFF_NODROPCHECK      // Uncomment to ignore full ring buffer checks - checking left to user!
 +
 +   /* Underflow behaviour - select behaviour when Buffer_GetElement is called with an empty ring buffer: */
 +     //#define BUFF_EMPTYRETURNSZERO  // Uncomment to return 0 when an empty ring buffer is read
 +     #define BUFF_NOEMPTYCHECK        // Uncomment to disable checking of empty ring buffers - checking left to user!
 +	
 +   /* Buffer storage type - set the datatype for the stored data */
 +     #define BUFF_DATATYPE uint8_t    // Change to the data type that is going to be stored into the buffer
 +	
 +   /* Peek routine - uncomment to include the peek routine (fetches next byte without removing it from the buffer */
 +     //#define BUFF_USEPEEK
 +	 	
 +#ifndef _RINGBUFF_H_
 +#define _RINGBUFF_H_
 +
 +	/* Includes: */
 +	#include <avr/io.h>
 +	#include <avr/interrupt.h>
 +	#include <util/atomic.h>
 +	#include <limits.h>
 +
 +	#include <LUFA/Common/Common.h>
 +
 +	/* Defines and checks: */
 +	#if defined(BUFF_STATICSIZE)
 +		#define BUFF_LENGTH BUFF_STATICSIZE
 +	#else
 +		#error No buffer length specified!
 +	#endif
 +
 +	#if !(defined(BUFF_DROPOLD) || defined(BUFF_DROPNEW) || defined(BUFF_NODROPCHECK))
 +		#error No buffer drop mode specified.
 +	#endif
 +
 +	#if !defined(BUFF_DATATYPE)
 +		#error Ringbuffer storage data type not specified.
 +	#endif
 +
 +	#if defined(BUFF_VOLATILE)
 +		#define BUFF_MODE            volatile
 +		#define BUFF_ATOMIC_BLOCK    ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
 +	#else
 +		#define BUFF_MODE
 +		#define BUFF_ATOMIC_BLOCK
 +	#endif
 +
 +	#if (BUFF_STATICSIZE   > LONG_MAX)
 +		#define RingBuff_Elements_t uint64_t
 +	#elif (BUFF_STATICSIZE > INT_MAX)
 +		#define RingBuff_Elements_t uint32_t
 +	#elif (BUFF_STATICSIZE > CHAR_MAX)
 +		#define RingBuff_Elements_t uint16_t
 +	#else
 +		#define RingBuff_Elements_t uint8_t
 +	#endif
 +	
 +	/* Type Defines: */
 +	typedef BUFF_DATATYPE RingBuff_Data_t;
 +
 +	typedef BUFF_MODE struct
 +	{
 +		RingBuff_Data_t      Buffer[BUFF_LENGTH];
 +		RingBuff_Data_t*     InPtr;
 +		RingBuff_Data_t*     OutPtr;
 +		RingBuff_Elements_t  Elements;
 +	} RingBuff_t;
 +		
 +	/* Function Prototypes: */
 +	void            Buffer_Initialize(RingBuff_t* Buff);
 +	void            Buffer_StoreElement(RingBuff_t* Buffer, RingBuff_Data_t Data);
 +	RingBuff_Data_t Buffer_GetElement(RingBuff_t* Buffer);
 +	#if defined(BUFF_USEPEEK)
 +		RingBuff_Data_t Buffer_PeekElement(const RingBuff_t* Buffer);
 +	#endif
 +	
 +#endif
 diff --git a/Projects/XPLAINBridge/Lib/SoftUART.S b/Projects/XPLAINBridge/Lib/SoftUART.S new file mode 100644 index 0000000000..8951387e9f --- /dev/null +++ b/Projects/XPLAINBridge/Lib/SoftUART.S @@ -0,0 +1,389 @@ +/*
 +
 +	uart_soft
 +
 +	copyright John Steggall 2009
 +
 +*/
 +
 +
 +/*
 +  Copyright 2009  John Steggall ([email protected])
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +#include <avr/io.h>
 +
 +/* BITLENGTH is the time for a bit cycle worked out at F_CPU / BAUD. Gives a rough but usable figure. Wouldn't like to try
 + * anything faster than 9600! */
 +#define BITLENGTH 833
 +
 +#define SFT_TX_EN 7
 +
 +#define SF_UART_TX	1
 +#define SF_UART_RX	2
 +
 +	.section	.data
 +
 +rxdata:
 +	.byte	0
 +txShifter:
 +	.byte	0
 +txBitcount:
 +	.byte	0
 +rxShifter:
 +	.byte	0
 +rxBitcount:
 +	.byte	0
 +status:
 +	.byte	0
 +
 +	.section	.text
 +
 +/*********************************************
 + * External interrupt
 + * 
 + * RX pin has gone low.
 + */
 +	.global	INT0_vect
 +
 +INT0_vect:
 +	push		r16
 +	lds		r16,SREG
 +	push		r16
 +
 +	lds		r16,PIND
 +	sbrc		r16,0		// anti glitch
 +	rjmp		ignore
 +	nop
 +	nop
 +	nop
 +	nop
 +	lds		r16,PIND
 +	sbrc		r16,0		// just make sure
 +	rjmp		ignore
 +
 +	push		r17
 +
 +	// grab timer value
 +	lds		r16,TCNT3L		
 +	lds		r17,TCNT3H
 +	
 +	// set trigger for RX timer (will need to add a little more though)
 +	sts		OCR3CH,r17
 +	sts		OCR3CL,r16
 +	
 +	pop		r17
 +
 +	// set bitcount to 0
 +	ldi		r16,0
 +	sts		rxBitcount,r16
 +
 +
 +	// turn off interrupt, will get annoying.
 +	cbi		0x1D,0
 +
 +	// turn on interrupt on compare match
 +	sbi		0x18,OCF3C
 +	lds		r16,TIMSK3
 +	ori		r16,(1<<OCIE3C)
 +	sts		TIMSK3,r16
 +
 +ignore:
 +	pop		r16
 +	sts		SREG,r16
 +	pop		r16
 +	reti
 +
 +
 +/*********************************************
 + * interrupt routine, timer compare match.
 + * 
 + * TX bit rate timing
 + */
 +	.global	TIMER3_COMPB_vect
 +
 +TIMER3_COMPB_vect:
 +	push		r16
 +	lds		r16,SREG
 +	push		r16
 +	push		r17
 +	push		r18
 +
 +	// check if the last bit was sent
 +	lds		r17,txBitcount
 +	inc		r17
 +	cpi		r17,0x0A
 +	sts		txBitcount,r17
 +	breq		lastBitTX
 +
 +	lds		r16,txShifter
 +
 +	lds		r17, PORTD
 +
 +	sbrs		r16,0
 +	andi		r17,0xFD
 +	sbrc		r16,0
 +	ori		r17,0x02
 +
 +	sts		PORTD,r17
 +
 +	lsr		r16
 +	ori		r16,0x80
 +
 +txout:
 +	sts		txShifter,r16
 +lastBitOut:
 +	pop		r18
 +	pop		r17
 +	pop		r16
 +	sts		SREG,r16
 +	pop		r16
 +	reti
 +
 +// section handles the last bit (stop bit sent/received and sets the flag to say done //
 +lastBitTX:
 +	lds		r17,status		// get status
 +	ori		r17,SF_UART_TX		// set TXC/DRE flag
 +	sts		status,r17
 +
 +	lds		r16,TIMSK3
 +	andi		r16,~(1<<OCIE3B)
 +	sts		TIMSK3,r16
 +
 +	rjmp		lastBitOut		// over and out
 +
 +
 +
 +/*********************************************
 + * interrupt routine, timer compare match.
 + * 
 + * RX bit rate timing
 + */
 +	.global	TIMER3_COMPC_vect
 +
 +TIMER3_COMPC_vect:
 +	push		r16
 +	lds		r16,SREG
 +	push		r16
 +	push		r17
 +	push		r18
 +
 +	// check if the last bit has been recieved
 +	lds		r17,rxBitcount
 +	inc		r17
 +	cpi		r17,0x0A
 +	sts		rxBitcount,r17
 +	breq		lastBitRX
 +
 +	cpi		r17,0x01
 +	breq		rx1stbit
 +
 +	ldi		r18,3			// set counter to 3
 +	ldi		r17,0
 +
 +//	cbi		0x0B,1			// marker
 +
 +loopGetBit:
 +	lds		r16,PIND			
 +	sbrc		r16,0
 +	inc		r17
 +	dec		r18
 +	nop
 +	nop
 +	nop
 +	nop
 +	brne		loopGetBit
 +
 +//	sbi		0x0B,1			// marker
 +
 +	lds		r16,rxShifter
 +	lsr		r16
 +
 +	cpi		r17,2
 +	brlo		skipBitSet
 +	ori		r16,0x80
 +skipBitSet:
 +	sts		rxShifter,r16
 +	rjmp		lastBitOut
 +
 +lastBitRX:
 +	lds		r17,status		// store status
 +	lds		r16,PIND			// get status of stop bit
 +	sbrc		r16,0
 +	ori		r17,0x02			// set flag if stop bit was high
 +	sts		status,r17
 +
 +	lds		r16,rxShifter		// get contents of shifter
 +	sbrc		r17,1			// check if we just received a valid byte
 +	sts		rxdata,r16		// if valid rxdata = shifter
 +
 +	// switch interrupt back on to get another go
 +
 +	sbi		0x1C,0			// clear interrupt flag
 +	sbi		0x1D,0			// enable external interrupt 0 (RX)
 +
 +	// switch off rx bit timer
 +	lds		r16,TIMSK3
 +	andi		r16,~(1<<OCIE3C)
 +	sts		TIMSK3,r16
 +
 +	rjmp		lastBitOut		// loud and clear
 +
 +rx1stbit:
 +	lds		r16,TCNT3L
 +	lds		r17,TCNT3H
 +
 +	subi		r16,lo8(BITLENGTH / 2)
 +	sbci		r17,hi8(BITLENGTH / 2)
 +	brcc		skipOverflow
 +
 +	subi		r16,lo8(0xFFFF - BITLENGTH)
 +	sbci		r17,hi8(0xFFFF - BITLENGTH)
 +
 +skipOverflow:
 +	sts		OCR3CH,r17
 +	sts		OCR3CL,r17
 +	rjmp		lastBitOut
 +
 +			
 +/*********************************************
 + * void SoftUART_Init(void)
 + *
 + * initialises software uart and enables transmit
 + */
 +	.global	SoftUART_Init
 +
 +SoftUART_Init:
 +
 +	lds		r18,PORTD
 +	ori		r18,0x02
 +	sts		PORTD,r18
 +	lds		r18,DDRD
 +	ori		r18,0x02
 +	sts		DDRD,r18
 +
 +	ldi		r18,(1<<SFT_TX_EN)|SF_UART_TX
 +	sts		status,r18
 +	
 +	ldi		r18,lo8(BITLENGTH)
 +	ldi		r19,hi8(BITLENGTH)
 +	sts		OCR3AH,r19
 +	sts		OCR3AL,r18
 +
 +	// Start timer 3
 +	ldi		r18,0b00001001			// ctc count mode, clock div 1
 +	sts		TCCR3B,r18
 +
 +	// Interrupt on low level INT0
 +	sbi		0x1C,0
 +	sbi		0x1D,0
 +
 +	ret
 +
 +
 +/*********************************************
 + * char SoftUART_TxByte(char)
 + *
 + * starts a byte send and returns the byte to be sent
 + */
 +	.global	SoftUART_TxByte
 +
 +SoftUART_TxByte:
 +	lds		r18,status
 +	sbrs		r18,SFT_TX_EN
 +	rjmp		uart_putchar_end
 +
 +	andi		r18,0xFE						// clear tx empty flag
 +	sts		status,r18
 +
 +	sts		txShifter,r24
 +
 +	ldi		r18,0
 +	sts		txBitcount,r18
 +
 +	// grab timer value
 +
 +	lds		r18,TCNT3L
 +	lds		r19,TCNT3H
 +
 +	// drop down tx line for start bit
 +	lds		r20, PORTD
 +	andi		r20,0xFD
 +	sts		PORTD,r20
 +	
 +	// set trigger for tx timer
 +	cli
 +	sts		OCR3BH,r19
 +	sts		OCR3BL,r18
 +	sei
 +
 +	// clear interrupt flag and enable tx interrupt
 +	sbi		0x18,OCF3B
 +	lds		r18,TIMSK3
 +	ori		r18,(1<<OCIE3B)
 +	sts		TIMSK3,r18
 +
 +uart_putchar_end:
 +	ret
 +
 +
 +/*********************************************
 + * char SoftUART_RxByte(void)
 + *
 + * returns the received byte
 + */
 +	.global	SoftUART_RxByte
 +
 +SoftUART_RxByte:
 +	lds		r24,rxdata
 +	lds		r18,status
 +	andi		r18,0xFD
 +	sts		status,r18
 +	ret
 +
 +
 +/*********************************************
 + * char SoftUART_IsReceived(void)
 + *
 + * checks if there is a byte in the receive buffer
 + */
 +	.global	SoftUART_IsReceived
 +
 +SoftUART_IsReceived:
 +	lds		r24,status
 +	andi		r24,SF_UART_RX
 +	lsr		r24
 +	ret
 +
 +
 +/*********************************************
 + * char SoftUART_IsReady(void)
 + *
 + * Simulates polling UDRE to see if tx buffer is empty and ready
 + *
 + * returns 1 if empty 0 if not
 + */
 +	.global	SoftUART_IsReady
 +
 +SoftUART_IsReady:
 +	lds		r24,status
 +	andi		r24,SF_UART_TX
 +	ret
 diff --git a/Projects/XPLAINBridge/Lib/SoftUART.h b/Projects/XPLAINBridge/Lib/SoftUART.h new file mode 100644 index 0000000000..d992966c0d --- /dev/null +++ b/Projects/XPLAINBridge/Lib/SoftUART.h @@ -0,0 +1,59 @@ +/*
 +
 +	soft_uart
 +
 +	Copyright John Steggall 2009
 +
 +*/
 +
 +
 +/*
 +  Copyright 2009  John Steggall ([email protected])
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/* 
 +  Specifically designed for the xplain board, other uses could be made by furkling through the code
 +  and replacing the port and pin assignments. Also relies on and external interupt to detect the low
 +  level of the start bit, in this case INT0.
 +  Always configured to 9600baud. Can be changed by setting the BITLENGTH define to F_CPU/(desired baud)
 +  code may need optimising when getting any faster to sample the bit in the correct place. No 
 +  compensation has been made for the response time of the int routine.
 + */
 +
 +#ifndef UART_SOFT_H
 +#define UART_SOFT_H
 +
 +	/*  initialises software uart and enables transmit */
 +	extern void SoftUART_Init(void);
 +
 +	/* checks if there is a byte in the receive buffer*/
 +	extern unsigned char SoftUART_IsReceived(void);
 +
 +	/*  returns the received byte */
 +	extern unsigned char SoftUART_RxByte(void);
 +
 +	/* starts a byte send and returns the byte to be sent */
 +	extern unsigned char SoftUART_TxByte(unsigned char data);
 +
 +	/* Simulates polling UDRE to see if tx buffer is empty and ready */
 +	extern unsigned char SoftUART_IsReady(void);
 +
 +#endif
 diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c new file mode 100644 index 0000000000..68cca5446b --- /dev/null +++ b/Projects/XPLAINBridge/XPLAINBridge.c @@ -0,0 +1,133 @@ +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2009.
 +              
 +  dean [at] fourwalledcubicle [dot] com
 +      www.fourwalledcubicle.com
 +*/
 +
 +/*
 +  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +  Copyright 2009  John Steggall ([email protected])
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/** \file
 + *
 + *  Main source file for the XPLAINBridge project. This file contains the main tasks of
 + *  the demo and is responsible for the initial application hardware configuration.
 + */
 +
 +#include "XPLAINBridge.h"
 +
 +/** Circular buffer to hold data from the host before it is sent to the device via the serial port. */
 +RingBuff_t USBtoUART_Buffer;
 +
 +/** Circular buffer to hold data from the serial port before it is sent to the host. */
 +RingBuff_t UARTtoUSB_Buffer;
 +
 +/** LUFA CDC Class driver interface configuration and state information. This structure is
 + *  passed to all CDC Class driver functions, so that multiple instances of the same class
 + *  within a device can be differentiated from one another.
 + */
 +USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface =
 +	{
 +		.Config = 
 +			{
 +				.ControlInterfaceNumber         = 0,
 +
 +				.DataINEndpointNumber           = CDC_TX_EPNUM,
 +				.DataINEndpointSize             = CDC_TXRX_EPSIZE,
 +				.DataINEndpointDoubleBank       = false,
 +
 +				.DataOUTEndpointNumber          = CDC_RX_EPNUM,
 +				.DataOUTEndpointSize            = CDC_TXRX_EPSIZE,
 +				.DataOUTEndpointDoubleBank      = false,
 +
 +				.NotificationEndpointNumber     = CDC_NOTIFICATION_EPNUM,
 +				.NotificationEndpointSize       = CDC_NOTIFICATION_EPSIZE,
 +				.NotificationEndpointDoubleBank = false,
 +			},
 +	};
 +
 +/** Main program entry point. This routine contains the overall program flow, including initial
 + *  setup of all components and the main program loop.
 + */
 +int main(void)
 +{
 +	SetupHardware();
 +	
 +	Buffer_Initialize(&USBtoUART_Buffer);
 +	Buffer_Initialize(&UARTtoUSB_Buffer);
 +
 +	for (;;)
 +	{
 +		/* Read bytes from the USB OUT endpoint into the UART transmit buffer */
 +		for (uint8_t DataBytesRem = CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface); DataBytesRem != 0; DataBytesRem--)
 +		{
 +			if (!(BUFF_STATICSIZE - USBtoUART_Buffer.Elements))
 +			  break;
 +			  
 +			Buffer_StoreElement(&USBtoUART_Buffer, CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface));
 +		}
 +		
 +		/* Read bytes from the UART receive buffer into the USB IN endpoint */
 +		if (UARTtoUSB_Buffer.Elements)
 +		  CDC_Device_SendByte(&VirtualSerial_CDC_Interface, Buffer_GetElement(&UARTtoUSB_Buffer));
 +		
 +		/* Load bytes from the UART transmit buffer into the UART */
 +		if ((USBtoUART_Buffer.Elements) && SoftUART_IsReady())
 +		  SoftUART_TxByte(Buffer_GetElement(&USBtoUART_Buffer));
 +		
 +		/* Load bytes from the UART into the UART receive buffer */
 +		if(SoftUART_IsReceived())
 +			Buffer_StoreElement(&UARTtoUSB_Buffer, SoftUART_RxByte());
 +
 +		CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
 +		USB_USBTask();
 +	}
 +}
 +
 +/** Configures the board hardware and chip peripherals for the demo's functionality. */
 +void SetupHardware(void)
 +{
 +	/* Disable watchdog if enabled by bootloader/fuses */
 +	MCUSR &= ~(1 << WDRF);
 +	wdt_disable();
 +
 +	/* Disable clock division */
 +	clock_prescale_set(clock_div_1);
 +
 +	/* Hardware Initialization */
 +	SoftUART_Init();
 +	USB_Init();
 +}
 +
 +/** Event handler for the library USB Configuration Changed event. */
 +void EVENT_USB_Device_ConfigurationChanged(void)
 +{
 +	CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
 +}
 +
 +/** Event handler for the library USB Unhandled Control Request event. */
 +void EVENT_USB_Device_UnhandledControlRequest(void)
 +{
 +	CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface);
 +}
 diff --git a/Projects/XPLAINBridge/XPLAINBridge.h b/Projects/XPLAINBridge/XPLAINBridge.h new file mode 100644 index 0000000000..1d1e61db63 --- /dev/null +++ b/Projects/XPLAINBridge/XPLAINBridge.h @@ -0,0 +1,74 @@ +/*
 +             LUFA Library
 +     Copyright (C) Dean Camera, 2009.
 +              
 +  dean [at] fourwalledcubicle [dot] com
 +      www.fourwalledcubicle.com
 +*/
 +
 +/*
 +  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 +
 +  Permission to use, copy, modify, and distribute this software
 +  and its documentation for any purpose and without fee is hereby
 +  granted, provided that the above copyright notice appear in all
 +  copies and that both that the copyright notice and this
 +  permission notice and warranty disclaimer appear in supporting
 +  documentation, and that the name of the author not be used in
 +  advertising or publicity pertaining to distribution of the
 +  software without specific, written prior permission.
 +
 +  The author disclaim all warranties with regard to this
 +  software, including all implied warranties of merchantability
 +  and fitness.  In no event shall the author be liable for any
 +  special, indirect or consequential damages or any damages
 +  whatsoever resulting from loss of use, data or profits, whether
 +  in an action of contract, negligence or other tortious action,
 +  arising out of or in connection with the use or performance of
 +  this software.
 +*/
 +
 +/** \file
 + *
 + *  Header file for XPLAINBridge.c.
 + */
 +
 +#ifndef _XPLAIN_BRIDGE_H_
 +#define _XPLAIN_BRIDGE_H_
 +
 +	/* Includes: */
 +		#include <avr/io.h>
 +		#include <avr/wdt.h>
 +		#include <avr/power.h>
 +
 +		#include "Descriptors.h"
 +
 +		#include "Lib/RingBuff.h"
 +		#include "Lib/SoftUART.h"
 +
 +		#include <LUFA/Version.h>
 +		#include <LUFA/Drivers/USB/USB.h>
 +		#include <LUFA/Drivers/USB/Class/CDC.h>
 +
 +	/* Macros: */
 +		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
 +		#define LEDMASK_USB_NOTREADY      LEDS_LED1
 +
 +		/** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
 +		#define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)
 +
 +		/** LED mask for the library LED driver, to indicate that the USB interface is ready. */
 +		#define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)
 +
 +		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
 +		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
 +		
 +	/* Function Prototypes: */
 +		void SetupHardware(void);
 +
 +		void EVENT_USB_Device_ConfigurationChanged(void);
 +		void EVENT_USB_Device_UnhandledControlRequest(void);
 +		
 +		void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
 +
 +#endif
 diff --git a/Projects/XPLAINBridge/XPLAINBridge.txt b/Projects/XPLAINBridge/XPLAINBridge.txt new file mode 100644 index 0000000000..e90a2d6142 --- /dev/null +++ b/Projects/XPLAINBridge/XPLAINBridge.txt @@ -0,0 +1,70 @@ +/** \file
 + *
 + *  This file contains special DoxyGen information for the generation of the main page and other special
 + *  documentation pages. It is not a project source file.
 + */
 + 
 +/** \mainpage XPLAIN UART Bridge Project
 + *
 + *  \section SSec_Compat Demo Compatibility:
 + *
 + *  The following list indicates what microcontrollers are compatible with this demo.
 + *
 + *  - AT90USB1287
 + *
 + *  \section SSec_Info USB Information:
 + *
 + *  The following table gives a rundown of the USB utilization of this demo.
 + *
 + *  <table>
 + *   <tr>
 + *    <td><b>USB Mode:</b></td>
 + *    <td>Device</td>
 + *   </tr>
 + *   <tr>
 + *    <td><b>USB Class:</b></td>
 + *    <td>Communications Device Class (CDC)</td>
 + *   </tr>
 + *   <tr> 
 + *    <td><b>USB Subclass:</b></td>
 + *    <td>Abstract Control Model (ACM)</td>
 + *   </tr>
 + *   <tr>
 + *    <td><b>Relevant Standards:</b></td>
 + *    <td>USBIF CDC Class Standard</td>
 + *   </tr>
 + *   <tr>
 + *    <td><b>Usable Speeds:</b></td>
 + *    <td>Full Speed Mode</td>
 + *   </tr>
 + *  </table>
 + *
 + *  \section SSec_Description Project Description: 
 + *
 + *  This is a virtual serial port to soft-UART converter, for use on the Atmel XPLAIN boards. This project replaces the firmware
 + *  preloaded onto the XPLAIN's onboard AT90USB1287 microcontroller to act as a a UART-to-USB bridge between the device and the
 + *  host. When inserted, the device will enumerate as a regular COM port on the host, which can then be opened and data exchanged
 + *  between the XMEGA and Host as if the XMEGA was connected directly to the host's serial port.
 + *
 + *  After running this demo for the first time on a new computer, you will need to supply the .INF file located in this demo
 + *  project's directory as the device's driver when running under Windows. This will enable Windows to use its inbuilt CDC drivers,
 + *  negating the need for custom drivers for the device. Other Operating Systems should automatically use their own inbuilt CDC-ACM
 + *  drivers.
 + *
 + *  \section SSec_Options Project Options
 + *
 + *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
 + *
 + *  <table>
 + *   <tr>
 + *    <td><b>Define Name:</b></td>
 + *    <td><b>Location:</b></td>
 + *    <td><b>Description:</b></td>
 + *   </tr>
 + *   <tr>
 + *    <td>BUFF_STATICSIZE</td>
 + *    <td>RingBuff.h</td>
 + *    <td>Defines the maximum number of bytes which can be buffered in each Ring Buffer.</td>
 + *   </tr>
 + *  </table>
 + */
\ No newline at end of file diff --git a/Projects/XPLAINBridge/makefile b/Projects/XPLAINBridge/makefile new file mode 100644 index 0000000000..4a15ba1449 --- /dev/null +++ b/Projects/XPLAINBridge/makefile @@ -0,0 +1,744 @@ +# Hey Emacs, this is a -*- makefile -*-
 +#----------------------------------------------------------------------------
 +# WinAVR Makefile Template written by Eric B. Weddington, J�rg Wunsch, et al.
 +#  >> Modified for use with the LUFA project. <<
 +#
 +# Released to the Public Domain
 +#
 +# Additional material for this makefile was written by:
 +# Peter Fleury
 +# Tim Henigan
 +# Colin O'Flynn
 +# Reiner Patommel
 +# Markus Pfaff
 +# Sander Pool
 +# Frederik Rouleau
 +# Carlos Lamas
 +# Dean Camera
 +# Opendous Inc.
 +# Denver Gingerich
 +#
 +#----------------------------------------------------------------------------
 +# On command line:
 +#
 +# make all = Make software.
 +#
 +# make clean = Clean out built project files.
 +#
 +# make coff = Convert ELF to AVR COFF.
 +#
 +# make extcoff = Convert ELF to AVR Extended COFF.
 +#
 +# make program = Download the hex file to the device, using avrdude.
 +#                Please customize the avrdude settings below first!
 +#
 +# make dfu = Download the hex file to the device, using dfu-programmer (must
 +#            have dfu-programmer installed).
 +#
 +# make flip = Download the hex file to the device, using Atmel FLIP (must
 +#             have Atmel FLIP installed).
 +#
 +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
 +#               (must have dfu-programmer installed).
 +#
 +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
 +#                (must have Atmel FLIP installed).
 +#
 +# make doxygen = Generate DoxyGen documentation for the project (must have
 +#                DoxyGen installed)
 +#
 +# make debug = Start either simulavr or avarice as specified for debugging, 
 +#              with avr-gdb or avr-insight as the front end for debugging.
 +#
 +# make filename.s = Just compile filename.c into the assembler code only.
 +#
 +# make filename.i = Create a preprocessed source file for use in submitting
 +#                   bug reports to the GCC project.
 +#
 +# To rebuild project do "make clean" then "make all".
 +#----------------------------------------------------------------------------
 +
 +
 +# MCU name
 +MCU = at90usb1287
 +
 +
 +# Target board (see library "Board Types" documentation, USER or blank for projects not requiring
 +# LUFA board drivers). If USER is selected, put custom board drivers in a directory called 
 +# "Board" inside the application directory.
 +BOARD  = USER
 +
 +
 +# Processor frequency.
 +#     This will define a symbol, F_CPU, in all source code files equal to the 
 +#     processor frequency in Hz. You can then use this symbol in your source code to 
 +#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
 +#     automatically to create a 32-bit value in your source code.
 +#
 +#     This will be an integer division of F_CLOCK below, as it is sourced by
 +#     F_CLOCK after it has run through any CPU prescalers. Note that this value
 +#     does not *change* the processor frequency - it should merely be updated to
 +#     reflect the processor speed set externally so that the code can use accurate
 +#     software delays.
 +F_CPU = 8000000
 +
 +
 +# Input clock frequency.
 +#     This will define a symbol, F_CLOCK, in all source code files equal to the 
 +#     input clock frequency (before any prescaling is performed) in Hz. This value may
 +#     differ from F_CPU if prescaling is used on the latter, and is required as the
 +#     raw input clock is fed directly to the PLL sections of the AVR for high speed
 +#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
 +#     at the end, this will be done automatically to create a 32-bit value in your
 +#     source code.
 +#
 +#     If no clock division is performed on the input clock inside the AVR (via the
 +#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
 +F_CLOCK = $(F_CPU)
 +
 +
 +# Output format. (can be srec, ihex, binary)
 +FORMAT = ihex
 +
 +
 +# Target file name (without extension).
 +TARGET = XPLAINBridge
 +
 +
 +# Object files directory
 +#     To put object files in current directory, use a dot (.), do NOT make
 +#     this an empty or blank macro!
 +OBJDIR = .
 +
 +
 +# Path to the LUFA library
 +LUFA_PATH = ../../
 +
 +
 +# LUFA library compile-time options
 +LUFA_OPTS  = -D USB_DEVICE_ONLY
 +LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
 +LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
 +LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
 +LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
 +
 +
 +# List C source files here. (C dependencies are automatically generated.)
 +SRC = $(TARGET).c                                                 \
 +	  Descriptors.c                                               \
 +	  Lib/RingBuff.c                                              \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
 + 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Device/CDC.c            \
 +	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Host/CDC.c              \
 +
 +
 +# List C++ source files here. (C dependencies are automatically generated.)
 +CPPSRC = 
 +
 +
 +# List Assembler source files here.
 +#     Make them always end in a capital .S.  Files ending in a lowercase .s
 +#     will not be considered source files but generated files (assembler
 +#     output from the compiler), and will be deleted upon "make clean"!
 +#     Even though the DOS/Win* filesystem matches both .s and .S the same,
 +#     it will preserve the spelling of the filenames, and gcc itself does
 +#     care about how the name is spelled on its command-line.
 +ASRC = Lib/SoftUART.S
 +
 +
 +# Optimization level, can be [0, 1, 2, 3, s]. 
 +#     0 = turn off optimization. s = optimize for size.
 +#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
 +OPT = s
 +
 +
 +# Debugging format.
 +#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
 +#     AVR Studio 4.10 requires dwarf-2.
 +#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
 +DEBUG = dwarf-2
 +
 +
 +# List any extra directories to look for include files here.
 +#     Each directory must be seperated by a space.
 +#     Use forward slashes for directory separators.
 +#     For a directory that has spaces, enclose it in quotes.
 +EXTRAINCDIRS = $(LUFA_PATH)/
 +
 +
 +# Compiler flag to set the C Standard level.
 +#     c89   = "ANSI" C
 +#     gnu89 = c89 plus GCC extensions
 +#     c99   = ISO C99 standard (not yet fully implemented)
 +#     gnu99 = c99 plus GCC extensions
 +CSTANDARD = -std=gnu99
 +
 +
 +# Place -D or -U options here for C sources
 +CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(LUFA_OPTS)
 +CDEFS += -DAVR_RESET_LINE_PORT="PORTD"
 +CDEFS += -DAVR_RESET_LINE_DDR="DDRD"
 +CDEFS += -DAVR_RESET_LINE_MASK="(1 << 4)"
 +CDEFS += -DAVR_RESET_PULSE_MS=10
 +CDEFS += -DTX_RX_LED_PULSE_MS=30
 +CDEFS += -DPING_PONG_LED_PULSE_MS=100
 +
 +# Place -D or -U options here for ASM sources
 +ADEFS = -DF_CPU=$(F_CPU)
 +
 +
 +# Place -D or -U options here for C++ sources
 +CPPDEFS = -DF_CPU=$(F_CPU)UL
 +#CPPDEFS += -D__STDC_LIMIT_MACROS
 +#CPPDEFS += -D__STDC_CONSTANT_MACROS
 +
 +
 +
 +#---------------- Compiler Options C ----------------
 +#  -g*:          generate debugging information
 +#  -O*:          optimization level
 +#  -f...:        tuning, see GCC manual and avr-libc documentation
 +#  -Wall...:     warning level
 +#  -Wa,...:      tell GCC to pass this to the assembler.
 +#    -adhlns...: create assembler listing
 +CFLAGS = -g$(DEBUG)
 +CFLAGS += $(CDEFS)
 +CFLAGS += -O$(OPT)
 +CFLAGS += -funsigned-char
 +CFLAGS += -funsigned-bitfields
 +CFLAGS += -ffunction-sections
 +CFLAGS += -fno-inline-small-functions
 +CFLAGS += -fpack-struct
 +CFLAGS += -fshort-enums
 +CFLAGS += -Wall
 +CFLAGS += -Wstrict-prototypes
 +CFLAGS += -Wundef
 +#CFLAGS += -fno-unit-at-a-time
 +#CFLAGS += -Wunreachable-code
 +#CFLAGS += -Wsign-compare
 +CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
 +CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 +CFLAGS += $(CSTANDARD)
 +
 +
 +#---------------- Compiler Options C++ ----------------
 +#  -g*:          generate debugging information
 +#  -O*:          optimization level
 +#  -f...:        tuning, see GCC manual and avr-libc documentation
 +#  -Wall...:     warning level
 +#  -Wa,...:      tell GCC to pass this to the assembler.
 +#    -adhlns...: create assembler listing
 +CPPFLAGS = -g$(DEBUG)
 +CPPFLAGS += $(CPPDEFS)
 +CPPFLAGS += -O$(OPT)
 +CPPFLAGS += -funsigned-char
 +CPPFLAGS += -funsigned-bitfields
 +CPPFLAGS += -fpack-struct
 +CPPFLAGS += -fshort-enums
 +CPPFLAGS += -fno-exceptions
 +CPPFLAGS += -Wall
 +CFLAGS += -Wundef
 +#CPPFLAGS += -mshort-calls
 +#CPPFLAGS += -fno-unit-at-a-time
 +#CPPFLAGS += -Wstrict-prototypes
 +#CPPFLAGS += -Wunreachable-code
 +#CPPFLAGS += -Wsign-compare
 +CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
 +CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 +#CPPFLAGS += $(CSTANDARD)
 +
 +
 +#---------------- Assembler Options ----------------
 +#  -Wa,...:   tell GCC to pass this to the assembler.
 +#  -adhlns:   create listing
 +#  -gstabs:   have the assembler create line number information; note that
 +#             for use in COFF files, additional information about filenames
 +#             and function names needs to be present in the assembler source
 +#             files -- see avr-libc docs [FIXME: not yet described there]
 +#  -listing-cont-lines: Sets the maximum number of continuation lines of hex 
 +#       dump that will be displayed for a given single line of source input.
 +ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
 +
 +
 +#---------------- Library Options ----------------
 +# Minimalistic printf version
 +PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
 +
 +# Floating point printf version (requires MATH_LIB = -lm below)
 +PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
 +
 +# If this is left blank, then it will use the Standard printf version.
 +PRINTF_LIB = 
 +#PRINTF_LIB = $(PRINTF_LIB_MIN)
 +#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
 +
 +
 +# Minimalistic scanf version
 +SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
 +
 +# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
 +SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
 +
 +# If this is left blank, then it will use the Standard scanf version.
 +SCANF_LIB = 
 +#SCANF_LIB = $(SCANF_LIB_MIN)
 +#SCANF_LIB = $(SCANF_LIB_FLOAT)
 +
 +
 +MATH_LIB = -lm
 +
 +
 +# List any extra directories to look for libraries here.
 +#     Each directory must be seperated by a space.
 +#     Use forward slashes for directory separators.
 +#     For a directory that has spaces, enclose it in quotes.
 +EXTRALIBDIRS = 
 +
 +
 +
 +#---------------- External Memory Options ----------------
 +
 +# 64 KB of external RAM, starting after internal RAM (ATmega128!),
 +# used for variables (.data/.bss) and heap (malloc()).
 +#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
 +
 +# 64 KB of external RAM, starting after internal RAM (ATmega128!),
 +# only used for heap (malloc()).
 +#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
 +
 +EXTMEMOPTS =
 +
 +
 +
 +#---------------- Linker Options ----------------
 +#  -Wl,...:     tell GCC to pass this to linker.
 +#    -Map:      create map file
 +#    --cref:    add cross reference to  map file
 +LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
 +LDFLAGS += -Wl,--relax 
 +LDFLAGS += -Wl,--gc-sections
 +LDFLAGS += $(EXTMEMOPTS)
 +LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
 +LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
 +#LDFLAGS += -T linker_script.x
 +
 +
 +
 +#---------------- Programming Options (avrdude) ----------------
 +
 +# Programming hardware: alf avr910 avrisp bascom bsd 
 +# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
 +#
 +# Type: avrdude -c ?
 +# to get a full listing.
 +#
 +AVRDUDE_PROGRAMMER = jtagmkII
 +
 +# com1 = serial port. Use lpt1 to connect to parallel port.
 +AVRDUDE_PORT = usb
 +
 +AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
 +#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
 +
 +
 +# Uncomment the following if you want avrdude's erase cycle counter.
 +# Note that this counter needs to be initialized first using -Yn,
 +# see avrdude manual.
 +#AVRDUDE_ERASE_COUNTER = -y
 +
 +# Uncomment the following if you do /not/ wish a verification to be
 +# performed after programming the device.
 +#AVRDUDE_NO_VERIFY = -V
 +
 +# Increase verbosity level.  Please use this when submitting bug
 +# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> 
 +# to submit bug reports.
 +#AVRDUDE_VERBOSE = -v -v
 +
 +AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
 +AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
 +AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
 +AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
 +
 +
 +
 +#---------------- Debugging Options ----------------
 +
 +# For simulavr only - target MCU frequency.
 +DEBUG_MFREQ = $(F_CPU)
 +
 +# Set the DEBUG_UI to either gdb or insight.
 +# DEBUG_UI = gdb
 +DEBUG_UI = insight
 +
 +# Set the debugging back-end to either avarice, simulavr.
 +DEBUG_BACKEND = avarice
 +#DEBUG_BACKEND = simulavr
 +
 +# GDB Init Filename.
 +GDBINIT_FILE = __avr_gdbinit
 +
 +# When using avarice settings for the JTAG
 +JTAG_DEV = /dev/com1
 +
 +# Debugging port used to communicate between GDB / avarice / simulavr.
 +DEBUG_PORT = 4242
 +
 +# Debugging host used to communicate between GDB / avarice / simulavr, normally
 +#     just set to localhost unless doing some sort of crazy debugging when 
 +#     avarice is running on a different computer.
 +DEBUG_HOST = localhost
 +
 +
 +
 +#============================================================================
 +
 +
 +# Define programs and commands.
 +SHELL = sh
 +CC = avr-gcc
 +OBJCOPY = avr-objcopy
 +OBJDUMP = avr-objdump
 +SIZE = avr-size
 +AR = avr-ar rcs
 +NM = avr-nm
 +AVRDUDE = avrdude
 +REMOVE = rm -f
 +REMOVEDIR = rm -rf
 +COPY = cp
 +WINSHELL = cmd
 +
 +# Define Messages
 +# English
 +MSG_ERRORS_NONE = Errors: none
 +MSG_BEGIN = -------- begin --------
 +MSG_END = --------  end  --------
 +MSG_SIZE_BEFORE = Size before: 
 +MSG_SIZE_AFTER = Size after:
 +MSG_COFF = Converting to AVR COFF:
 +MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
 +MSG_FLASH = Creating load file for Flash:
 +MSG_EEPROM = Creating load file for EEPROM:
 +MSG_EXTENDED_LISTING = Creating Extended Listing:
 +MSG_SYMBOL_TABLE = Creating Symbol Table:
 +MSG_LINKING = Linking:
 +MSG_COMPILING = Compiling C:
 +MSG_COMPILING_CPP = Compiling C++:
 +MSG_ASSEMBLING = Assembling:
 +MSG_CLEANING = Cleaning project:
 +MSG_CREATING_LIBRARY = Creating library:
 +
 +
 +
 +
 +# Define all object files.
 +OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) 
 +
 +# Define all listing files.
 +LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) 
 +
 +
 +# Compiler flags to generate dependency files.
 +GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
 +
 +
 +# Combine all necessary flags and optional flags.
 +# Add target processor to flags.
 +ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
 +ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
 +ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
 +
 +
 +
 +
 +
 +# Default target.
 +all: begin gccversion sizebefore build checkinvalidevents showliboptions showtarget sizeafter end
 +
 +# Change the build target to build a HEX file or a library.
 +build: elf hex eep lss sym
 +#build: lib
 +
 +
 +elf: $(TARGET).elf
 +hex: $(TARGET).hex
 +eep: $(TARGET).eep
 +lss: $(TARGET).lss
 +sym: $(TARGET).sym
 +LIBNAME=lib$(TARGET).a
 +lib: $(LIBNAME)
 +
 +
 +
 +# Eye candy.
 +# AVR Studio 3.x does not check make's exit code but relies on
 +# the following magic strings to be generated by the compile job.
 +begin:
 +	@echo
 +	@echo $(MSG_BEGIN)
 +
 +end:
 +	@echo $(MSG_END)
 +	@echo
 +
 +
 +# Display size of file.
 +HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
 +ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf
 +MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
 +FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
 +
 +sizebefore:
 +	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
 +	2>/dev/null; echo; fi
 +
 +sizeafter:
 +	@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
 +	2>/dev/null; echo; fi
 +
 +$(LUFA_PATH)/LUFA/LUFA_Events.lst:
 +	@make -C $(LUFA_PATH)/LUFA/ LUFA_Events.lst
 +
 +checkinvalidevents: $(LUFA_PATH)/LUFA/LUFA_Events.lst
 +	@echo
 +	@echo Checking for invalid events...
 +	@$(shell) avr-nm $(OBJ) | sed -n -e 's/^.*EVENT_/EVENT_/p' | \
 +	                 grep -F -v --file=$(LUFA_PATH)/LUFA/LUFA_Events.lst > InvalidEvents.tmp || true
 +	@sed -n -e 's/^/  WARNING - INVALID EVENT NAME: /p' InvalidEvents.tmp
 +	@if test -s InvalidEvents.tmp; then exit 1; fi
 +	
 +showliboptions:
 +	@echo
 +	@echo ---- Compile Time Library Options ----
 +	@for i in $(LUFA_OPTS:-D%=%); do \
 +		echo $$i; \
 +	done
 +	@echo --------------------------------------
 +
 +showtarget:
 +	@echo
 +	@echo --------- Target Information ---------
 +	@echo AVR Model: $(MCU)
 +	@echo Board:     $(BOARD)
 +	@echo Clock:     $(F_CPU)Hz CPU, $(F_CLOCK)Hz Master
 +	@echo --------------------------------------
 +	
 +
 +# Display compiler version information.
 +gccversion : 
 +	@$(CC) --version
 +
 +
 +# Program the device.  
 +program: $(TARGET).hex $(TARGET).eep
 +	$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
 +
 +flip: $(TARGET).hex
 +	batchisp -hardware usb -device $(MCU) -operation erase f
 +	batchisp -hardware usb -device $(MCU) -operation loadbuffer $(TARGET).hex program
 +	batchisp -hardware usb -device $(MCU) -operation start reset 0
 +
 +dfu: $(TARGET).hex
 +	dfu-programmer $(MCU) erase
 +	dfu-programmer $(MCU) flash --debug 1 $(TARGET).hex
 +	dfu-programmer $(MCU) reset
 +
 +flip-ee: $(TARGET).hex $(TARGET).eep
 +	$(COPY) $(TARGET).eep $(TARGET)eep.hex
 +	batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
 +	batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(TARGET)eep.hex program
 +	batchisp -hardware usb -device $(MCU) -operation start reset 0
 +	$(REMOVE) $(TARGET)eep.hex
 +
 +dfu-ee: $(TARGET).hex $(TARGET).eep
 +	dfu-programmer $(MCU) flash-eeprom --debug 1 --suppress-bootloader-mem $(TARGET).eep
 +	dfu-programmer $(MCU) reset
 +
 +
 +# Generate avr-gdb config/init file which does the following:
 +#     define the reset signal, load the target file, connect to target, and set 
 +#     a breakpoint at main().
 +gdb-config: 
 +	@$(REMOVE) $(GDBINIT_FILE)
 +	@echo define reset >> $(GDBINIT_FILE)
 +	@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
 +	@echo end >> $(GDBINIT_FILE)
 +	@echo file $(TARGET).elf >> $(GDBINIT_FILE)
 +	@echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
 +ifeq ($(DEBUG_BACKEND),simulavr)
 +	@echo load  >> $(GDBINIT_FILE)
 +endif
 +	@echo break main >> $(GDBINIT_FILE)
 +
 +debug: gdb-config $(TARGET).elf
 +ifeq ($(DEBUG_BACKEND), avarice)
 +	@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
 +	@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
 +	$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
 +	@$(WINSHELL) /c pause
 +
 +else
 +	@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
 +	$(DEBUG_MFREQ) --port $(DEBUG_PORT)
 +endif
 +	@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
 +
 +
 +
 +
 +# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
 +COFFCONVERT = $(OBJCOPY) --debugging
 +COFFCONVERT += --change-section-address .data-0x800000
 +COFFCONVERT += --change-section-address .bss-0x800000
 +COFFCONVERT += --change-section-address .noinit-0x800000
 +COFFCONVERT += --change-section-address .eeprom-0x810000
 +
 +
 +
 +coff: $(TARGET).elf
 +	@echo
 +	@echo $(MSG_COFF) $(TARGET).cof
 +	$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
 +
 +
 +extcoff: $(TARGET).elf
 +	@echo
 +	@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
 +	$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
 +
 +
 +
 +# Create final output files (.hex, .eep) from ELF output file.
 +%.hex: %.elf
 +	@echo
 +	@echo $(MSG_FLASH) $@
 +	$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
 +
 +%.eep: %.elf
 +	@echo
 +	@echo $(MSG_EEPROM) $@
 +	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
 +	--change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
 +
 +# Create extended listing file from ELF output file.
 +%.lss: %.elf
 +	@echo
 +	@echo $(MSG_EXTENDED_LISTING) $@
 +	$(OBJDUMP) -h -z -S $< > $@
 +
 +# Create a symbol table from ELF output file.
 +%.sym: %.elf
 +	@echo
 +	@echo $(MSG_SYMBOL_TABLE) $@
 +	$(NM) -n $< > $@
 +
 +
 +
 +# Create library from object files.
 +.SECONDARY : $(TARGET).a
 +.PRECIOUS : $(OBJ)
 +%.a: $(OBJ)
 +	@echo
 +	@echo $(MSG_CREATING_LIBRARY) $@
 +	$(AR) $@ $(OBJ)
 +
 +
 +# Link: create ELF output file from object files.
 +.SECONDARY : $(TARGET).elf
 +.PRECIOUS : $(OBJ)
 +%.elf: $(OBJ)
 +	@echo
 +	@echo $(MSG_LINKING) $@
 +	$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
 +
 +
 +# Compile: create object files from C source files.
 +$(OBJDIR)/%.o : %.c
 +	@echo
 +	@echo $(MSG_COMPILING) $<
 +	$(CC) -c $(ALL_CFLAGS) $< -o $@ 
 +
 +
 +# Compile: create object files from C++ source files.
 +$(OBJDIR)/%.o : %.cpp
 +	@echo
 +	@echo $(MSG_COMPILING_CPP) $<
 +	$(CC) -c $(ALL_CPPFLAGS) $< -o $@ 
 +
 +
 +# Compile: create assembler files from C source files.
 +%.s : %.c
 +	$(CC) -S $(ALL_CFLAGS) $< -o $@
 +
 +
 +# Compile: create assembler files from C++ source files.
 +%.s : %.cpp
 +	$(CC) -S $(ALL_CPPFLAGS) $< -o $@
 +
 +
 +# Assemble: create object files from assembler source files.
 +$(OBJDIR)/%.o : %.S
 +	@echo
 +	@echo $(MSG_ASSEMBLING) $<
 +	$(CC) -c $(ALL_ASFLAGS) $< -o $@
 +
 +
 +# Create preprocessed source for use in sending a bug report.
 +%.i : %.c
 +	$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ 
 +	
 +
 +# Target: clean project.
 +clean: begin clean_list clean_binary end
 +
 +clean_binary:
 +	$(REMOVE) $(TARGET).hex
 +	
 +clean_list:
 +	@echo $(MSG_CLEANING)
 +	$(REMOVE) $(TARGET).eep
 +	$(REMOVE) $(TARGET)eep.hex
 +	$(REMOVE) $(TARGET).cof
 +	$(REMOVE) $(TARGET).elf
 +	$(REMOVE) $(TARGET).map
 +	$(REMOVE) $(TARGET).sym
 +	$(REMOVE) $(TARGET).lss
 +	$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o)
 +	$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst)
 +	$(REMOVE) $(SRC:.c=.s)
 +	$(REMOVE) $(SRC:.c=.d)
 +	$(REMOVE) $(SRC:.c=.i)
 +	$(REMOVE) InvalidEvents.tmp
 +	$(REMOVEDIR) .dep
 +
 +doxygen:
 +	@echo Generating Project Documentation...
 +	@doxygen Doxygen.conf
 +	@echo Documentation Generation Complete.
 +
 +clean_doxygen:
 +	rm -rf Documentation
 +
 +# Create object files directory
 +$(shell mkdir $(OBJDIR) 2>/dev/null)
 +
 +
 +# Include the dependency files.
 +-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
 +
 +
 +# Listing of phony targets.
 +.PHONY : all checkinvalidevents showliboptions    \
 +showtarget begin finish end sizebefore sizeafter  \
 +gccversion build elf hex eep lss sym coff extcoff \
 +program dfu flip flip-ee dfu-ee clean debug       \
 +clean_list clean_binary gdb-config doxygen
\ No newline at end of file diff --git a/Projects/makefile b/Projects/makefile index d6ce5eaf7f..2f71dd60fe 100644 --- a/Projects/makefile +++ b/Projects/makefile @@ -28,6 +28,9 @@ all:  	make -C USBtoSerial clean  	make -C USBtoSerial all +	 +	make -C XPLAINBridge clean +	make -C XPLAINBridge all  %:  	make -C AVRISP $@ @@ -35,3 +38,4 @@ all:  	make -C Magstripe $@  	make -C MissileLauncher $@  	make -C USBtoSerial $@ +	make -C XPLAINBridge $@ | 
