X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/bf041e8bbf67222e1c899b8df96f8220d5a0d9d2..b2330934b9ccd51a59183eb2a11fdd95183df27b:/Demos/Device/Incomplete/Sideshow/makefile diff --git a/Demos/Device/Incomplete/Sideshow/makefile b/Demos/Device/Incomplete/Sideshow/makefile index 672d0c00b..9ffe13f77 100644 --- a/Demos/Device/Incomplete/Sideshow/makefile +++ b/Demos/Device/Incomplete/Sideshow/makefile @@ -1,6 +1,7 @@ # 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 # @@ -13,6 +14,9 @@ # Sander Pool # Frederik Rouleau # Carlos Lamas +# Dean Camera +# Opendous Inc. +# Denver Gingerich # #---------------------------------------------------------------------------- # On command line: @@ -28,6 +32,21 @@ # 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. # @@ -44,7 +63,7 @@ MCU = at90usb1287 -# Target board (see library BoardTypes.h documentation, USER or blank for projects not requiring +# 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 = USBKEY @@ -71,12 +90,26 @@ BOARD = USBKEY 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). 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 = 8000000 + + # Output format. (can be srec, ihex, binary) FORMAT = ihex # Target file name (without extension). -TARGET = Sideshow +TARGET = SideShow # Object files directory @@ -85,25 +118,31 @@ TARGET = Sideshow OBJDIR = . +# Path to the LUFA library +LUFA_PATH = ../../../.. + + # List C source files here. (C dependencies are automatically generated.) -SRC = $(TARGET).c \ - Descriptors.c \ - SideshowCommon.c \ - SideshowCommands.c \ - SideshowApplications.c \ - SideshowContent.c \ - ../../LUFA/Scheduler/Scheduler.c \ - ../../LUFA/Drivers/USB/LowLevel/LowLevel.c \ - ../../LUFA/Drivers/USB/LowLevel/Endpoint.c \ - ../../LUFA/Drivers/USB/LowLevel/DevChapter9.c \ - ../../LUFA/Drivers/USB/HighLevel/USBTask.c \ - ../../LUFA/Drivers/USB/HighLevel/USBInterrupt.c \ - ../../LUFA/Drivers/USB/HighLevel/Events.c \ - ../../LUFA/Drivers/USB/HighLevel/StdDescriptors.c \ - ../../LUFA/Drivers/AT90USBXXX/Serial_Stream.c \ - ../../LUFA/Drivers/AT90USBXXX/Serial.c \ - - +SRC = $(TARGET).c \ + Descriptors.c \ + SideshowCommon.c \ + SideshowCommands.c \ + SideshowApplications.c \ + SideshowContent.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/Peripheral/SerialStream.c \ + $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c \ + + # List C++ source files here. (C dependencies are automatically generated.) CPPSRC = @@ -135,7 +174,7 @@ DEBUG = dwarf-2 # 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 = ../../ +EXTRAINCDIRS = $(LUFA_PATH)/ # Compiler flag to set the C Standard level. @@ -147,9 +186,10 @@ CSTANDARD = -std=gnu99 # Place -D or -U options here for C sources -CDEFS = -DF_CPU=$(F_CPU)UL -DBOARD=BOARD_$(BOARD) -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -CDEFS += -DUSB_DEVICE_ONLY -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -CDEFS += -DNO_STREAM_CALLBACKS +CDEFS = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) +CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY +CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION +CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" # Place -D or -U options here for ASM sources @@ -284,7 +324,7 @@ EXTMEMOPTS = # -Map: create map file # --cref: add cross reference to map file LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--relax +LDFLAGS += -Wl,--relax LDFLAGS += -Wl,--gc-sections LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) @@ -422,7 +462,7 @@ ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) # Default target. -all: begin gccversion sizebefore build checkhooks checklibmode sizeafter end +all: begin gccversion sizebefore build checkhooks checklibmode checkboard sizeafter end # Change the build target to build a HEX file or a library. build: elf hex eep lss sym @@ -468,11 +508,11 @@ sizeafter: checkhooks: build @echo @echo ------- Unhooked LUFA Events ------- - @$(shell) (grep -s '^Event.*LUFA/.*\\.o' $(TARGET).map | \ + @$(shell) (grep -s '^EVENT_.*LUFA/.*\\.o' $(TARGET).map | \ cut -d' ' -f1 | cut -d'_' -f2- | grep ".*") || \ echo "(None)" - @echo ----- End Unhooked LUFA Events ----- - + @echo ------------------------------------ + checklibmode: @echo @echo ----------- Library Mode ----------- @@ -481,6 +521,12 @@ checklibmode: || echo "No specific mode (both device and host mode allowable)." @echo ------------------------------------ +checkboard: + @echo + @echo ---------- Selected Board ---------- + @echo Selected board model is $(BOARD). + @echo ------------------------------------ + # Display compiler version information. gccversion : @$(CC) --version @@ -491,6 +537,26 @@ gccversion : 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 + +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 @@ -630,10 +696,11 @@ 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 @@ -652,6 +719,9 @@ doxygen: @doxygen Doxygen.conf @echo Documentation Generation Complete. +clean_doxygen: + rm -rf Documentation + # Create object files directory $(shell mkdir $(OBJDIR) 2>/dev/null) @@ -661,8 +731,8 @@ $(shell mkdir $(OBJDIR) 2>/dev/null) # Listing of phony targets. -.PHONY : all checkhooks checklibmode begin \ -finish end sizebefore sizeafter gccversion \ -build elf hex eep lss sym coff extcoff \ -clean clean_list clean_binary program debug \ -gdb-config doxygen +.PHONY : all checkhooks checklibmode checkboard \ +begin finish end sizebefore sizeafter gccversion \ +build elf hex eep lss sym coff extcoff clean \ +clean_list clean_binary program debug gdb-config \ +doxygen dfu flip flip-ee dfu-ee \ No newline at end of file