]> git.donarmstrong.com Git - qmk_firmware.git/blob - protocol/lufa/LUFA-120730/LUFA/Build/lufa_dfu.mk
Change TOP_DIR to TMK_DIR in makefiles
[qmk_firmware.git] / protocol / lufa / LUFA-120730 / LUFA / Build / lufa_dfu.mk
1 #\r
2 #             LUFA Library\r
3 #     Copyright (C) Dean Camera, 2012.\r
4 #\r
5 #  dean [at] fourwalledcubicle [dot] com\r
6 #           www.lufa-lib.org\r
7 #\r
8 \r
9 LUFA_BUILD_MODULES         += DFU\r
10 LUFA_BUILD_TARGETS         += flip flip-ee dfu dfu-ee\r
11 LUFA_BUILD_MANDATORY_VARS  += MCU TARGET\r
12 LUFA_BUILD_OPTIONAL_VARS   += \r
13 LUFA_BUILD_PROVIDED_VARS   += \r
14 LUFA_BUILD_PROVIDED_MACROS += \r
15 \r
16 # -----------------------------------------------------------------------------\r
17 #               LUFA DFU Bootloader Buildsystem Makefile Module.\r
18 # -----------------------------------------------------------------------------\r
19 # DESCRIPTION:\r
20 #   Provides a set of targets to re-program a device currently running a DFU\r
21 #   class bootloader with a project's FLASH and EEPROM files.\r
22 # -----------------------------------------------------------------------------\r
23 # TARGETS:\r
24 #\r
25 #    flip                      - Program FLASH into target via Atmel FLIP\r
26 #    flip-ee                   - Program EEPROM into target via Atmel FLIP\r
27 #    dfu                       - Program FLASH into target via dfu-programmer\r
28 #    dfu-ee                    - Program EEPROM into target via dfu-programmer\r
29 #\r
30 # MANDATORY PARAMETERS:\r
31 #\r
32 #    MCU                       - Microcontroller device model name\r
33 #    TARGET                    - Application name\r
34 #\r
35 # OPTIONAL PARAMETERS:\r
36 #\r
37 #    (None)\r
38 #\r
39 # PROVIDED VARIABLES:\r
40 #\r
41 #    (None)\r
42 #\r
43 # PROVIDED MACROS:\r
44 #\r
45 #    (None)\r
46 #\r
47 # -----------------------------------------------------------------------------\r
48 \r
49 SHELL = /bin/sh\r
50 \r
51 ERROR_IF_UNSET   ?= $(if $(filter undefined, $(origin $(strip $(1)))), $(error Makefile $(strip $(1)) value not set))\r
52 ERROR_IF_EMPTY   ?= $(if $(strip $($(strip $(1)))), , $(error Makefile $(strip $(1)) option cannot be blank))\r
53 ERROR_IF_NONBOOL ?= $(if $(filter Y N, $($(strip $(1)))), , $(error Makefile $(strip $(1)) option must be Y or N))\r
54 \r
55 # Sanity-check values of mandatory user-supplied variables\r
56 $(foreach MANDATORY_VAR, $(LUFA_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR)))\r
57 $(call ERROR_IF_EMPTY, MCU)\r
58 $(call ERROR_IF_EMPTY, TARGET)\r
59 \r
60 # Output Messages\r
61 MSG_COPY_CMD   := ' [CP]      :'\r
62 MSG_REMOVE_CMD := ' [RM]      :'\r
63 MSG_DFU_CMD    := ' [DFU]     :'\r
64 \r
65 flip: $(TARGET).hex $(MAKEFILE_LIST)\r
66         @echo $(MSG_DFU_CMD) Programming FLASH with batchisp using \"$<\"\r
67         batchisp -hardware usb -device $(MCU) -operation erase f\r
68         batchisp -hardware usb -device $(MCU) -operation loadbuffer $< program\r
69         batchisp -hardware usb -device $(MCU) -operation start reset 0\r
70 \r
71 flip-ee: $(TARGET).eep $(MAKEFILE_LIST)\r
72         @echo $(MSG_DFU_CMD) Copying EEP file to temporary file \"$<.hex\"\r
73         cp $< $<.hex\r
74         @echo $(MSG_DFU_CMD) Programming EEPROM with batchisp using \"$<.hex\"\r
75         batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase\r
76         batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $<.hex program\r
77         batchisp -hardware usb -device $(MCU) -operation start reset 0\r
78         @echo $(MSG_DFU_CMD) Removing temporary file \"$<.hex\"\r
79         rm $<.hex\r
80         \r
81 dfu: $(TARGET).hex $(MAKEFILE_LIST)\r
82         @echo $(MSG_DFU_CMD) Programming FLASH with dfu-programmer using \"$<\"\r
83         dfu-programmer $(MCU) erase\r
84         dfu-programmer $(MCU) flash $<\r
85         dfu-programmer $(MCU) reset\r
86 \r
87 dfu-ee: $(TARGET).eep $(MAKEFILE_LIST)\r
88         @echo $(MSG_DFU_CMD) Programming EEPROM with dfu-programmer using \"$<\"\r
89         dfu-programmer $(MCU) eeprom-flash $<\r
90         dfu-programmer $(MCU) reset\r
91         \r
92 # Phony build targets for this module\r
93 .PHONY: flip flip-ee dfu dfu-ee\r