Replace the LUFA build system with DMBS.
[pub/USBasp.git] / LUFA / Build / DMBS / DMBS / dfu.md
1 DMBS - Dean's Makefile Build System
2 ===================================
3
4
5 Module: DFU
6 -----------------
7
8 The DFU module provides build targets to program a USB connected target running
9 a DFU class bootloader, via the official Atmel FLIP utility running via the
10 command line, or the open source `DFU-Programmer` tool.
11
12 ## Importing This Module into a Makefile:
13
14 To use this module in your application makefile, add the following code to your
15 makefile:
16
17 include $(DMBS_PATH)/dfu.mk
18
19 ## Prerequisites:
20
21 This module requires the `batchisp` utility to be available in your system's
22 `PATH` variable. The `batchisp` utility is distributed as part of Atmel's FLIP
23 software which can be downloaded from the [official site](http://www.atmel.com).
24
25 This module requires the `dfu-programmer` utility to be available in your
26 system's `PATH` variable. The `dfu-programmer` utility is distributed from the
27 [official project site](https://dfu-programmer.github.io/).
28
29 ## Build Targets:
30
31 The following targets are supported by this module:
32
33 <table>
34 <tbody>
35 <tr>
36 <td>flip</td>
37 <td>Program the application into the device's flash memory, using Atmel FLIP.</td>
38 </tr>
39 <tr>
40 <td>flip-ee</td>
41 <td>Program the application's EEPROM data into the device's EEPROM memory, using Atmel FLIP.</td>
42 </tr>
43 <tr>
44 <td>dfu</td>
45 <td>Program the application into the device's flash memory, using `dfu-programmer`.</td>
46 </tr>
47 <tr>
48 <td>dfu-ee</td>
49 <td>Program the application's EEPROM data into the device's EEPROM memory, using `dfu-programmer`.</td>
50 </tr>
51 </tbody>
52 </table>
53
54 ## Mandatory Variables:
55
56 The following variables must be defined (with a `NAME = VALUE` syntax, one
57 variable per line) in the user makefile to be able to use this module:
58
59 <table>
60 <tbody>
61 <tr>
62 <td>MCU</td>
63 <td>Name of the Atmel processor model (e.g. `at90usb1287`).</td>
64 </tr>
65 <tr>
66 <td>TARGET</td>
67 <td>Name of the application output file prefix (e.g. `TestApplication`).</td>
68 </tr>
69 </tbody>
70 </table>
71
72 ## Optional Variables:
73
74 The following variables may be defined (with a `NAME = VALUE` syntax, one
75 variable per line) in the user makefile. If not specified, a default value will
76 be assumed.
77
78 <table>
79 <tbody>
80 <tr>
81 <td>N/A</td>
82 <td>This module has no optional variables.</td>
83 </tr>
84 </tbody>
85 </table>
86
87 ## Provided Variables:
88
89 The following variables may be referenced in a user makefile (via `$(NAME)`
90 syntax) if desired, as they are provided by this module.
91
92 <table>
93 <tbody>
94 <tr>
95 <td>N/A</td>
96 <td>This module provides no variables.</td>
97 </tr>
98 </tbody>
99 </table>
100
101 ## Provided Macros:
102
103 The following macros may be referenced in a user makefile (via
104 `$(call NAME, ARG1, ARG2, ...)` syntax) if desired, as they are provided by
105 this module.
106
107 <table>
108 <tbody>
109 <tr>
110 <td>N/A</td>
111 <td>This module provides no macros.</td>
112 </tr>
113 </tbody>
114 </table>
115
116 ## Module Changelog:
117
118 The changes to this module since its initial release are listed below, as of the
119 DMBS version where the change was made.
120
121 ### 20160403
122 Initial release.