-
Notifications
You must be signed in to change notification settings - Fork 8
/
BossacArduinoDue.bat
207 lines (183 loc) · 8.56 KB
/
BossacArduinoDue.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
@ECHO off
REM ***********************************************************************************************************************
REM ***********************************************************************************************************************
REM * Description:
REM *
REM * Programming Arduino Due with Bossac in Atmel Studio 6 and Atmel Studio 7
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM *
REM * Primary usage Atmel Studio 6:
REM *
REM * 1. Copy this batch file into Atmel Studio 6 Program Folder (C:\Program Files (x86)\Atmel\Atmel Studio 6.0)
REM *
REM * 2. Configure an 'External Tool' in Atmel Studio 6 (Tools -> External Tools...).
REM *
REM * 2.1 Configure a debug build command
REM * Titel: BossacArduinoDue(Debug)
REM * Command: C:\Program Files (x86)\Atmel\Atmel Studio 6.0\BossacArduinoDue.bat
REM * Arguments: "C:\Program Files (x86)\arduino-1.5.2\hardware\tools\bossac.exe" "$(ProjectDir)\Debug\$(ProjectFileName).bin"
REM * Checkbox "Use Output Window".
REM *
REM * 2.2. Configure a release build command
REM * Titel: BossacArduinoDue(Release)
REM * Command: C:\Program Files (x86)\Atmel\Atmel Studio 6.0\BossacArduinoDue.bat
REM * Arguments: "C:\Program Files (x86)\arduino-1.5.2\hardware\tools\bossac.exe" "$(ProjectDir)\Release\$(ProjectFileName).bin"
REM * Checkbox "Use Output Window".
REM *
REM * 3. Call 'External Tool' in Atmel Studio 6.
REM * Tools -> BossacArduinoDue(Debug) for Debug Build or BossacArduinoDue(Release) for Release Build
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM *
REM * Alternative usage Atmel Studio 6:
REM *
REM * 1. Copy this batch file into Atmel Studio 6 Program Folder (C:\Program Files (x86)\Atmel\Atmel Studio 6.0)
REM *
REM * 2. Configure a post build event in the project properties.
REM * "$(DevEnvDir)\BossacArduinoDue.bat" "C:\Program Files (x86)\arduino-1.5.2\hardware\tools\bossac.exe" "$(OutputDirectory)\$(OutputFileName).bin"
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM *
REM * Primary usage Atmel Studio 7:
REM *
REM * 1. Copy this batch file into Atmel Studio 7 Program Folder (C:\Program Files (x86)\Atmel\Studio\7.0)
REM *
REM * 2. Configure an 'External Tool' in Atmel Studio 7 (Tools -> External Tools...).
REM *
REM * 2.1 Configure a debug build command
REM * Titel: BossacArduinoDue(Debug)
REM * Command: C:\Program Files (x86)\Atmel\Studio\7.0\BossacArduinoDue.bat
REM * Arguments: "C:\Program Files (x86)\BOSSA\bossac.exe" "$(ProjectDir)\Debug\$(ProjectFileName).bin"
REM * Checkbox "Use Output Window".
REM *
REM * 2.2. Configure a release build command
REM * Titel: BossacArduinoDue(Release)
REM * Command: C:\Program Files (x86)\Atmel\Studio\7.0\BossacArduinoDue.bat
REM * Arguments: "C:\Program Files (x86)\BOSSA\bossac.exe" "$(ProjectDir)\Release\$(ProjectFileName).bin"
REM * Checkbox "Use Output Window".
REM *
REM * 3. Call 'External Tool' in Atmel Studio 7.
REM * Tools -> BossacArduinoDue(Debug) for Debug Build or BossacArduinoDue(Release) for Release Build
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM *
REM * Alternative usage Atmel Studio 7:
REM *
REM * 1. Copy this batch file into Atmel Studio 7 Program Folder (C:\Program Files (x86)\Atmel\Studio\7.0)
REM *
REM * 2. Configure a post build event in the project properties.
REM * "$(DevEnvDir)\BossacArduinoDue.bat" "C:\Program Files (x86)\BOSSA\bossac.exe" "$(OutputDirectory)\$(OutputFileName).bin"
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM * Version : 0.01
REM * Date : 01.03.2013
REM * Name : Ewald Weinhandl
REM *
REM * Tested with: Windows 7 64 Bit, Atmel Studio 6.0.1996 Service Pack 2, Arduino-1.5.2
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM * Version : 0.02
REM * Date : 06.03.2013
REM * Name : Ewald Weinhandl
REM *
REM * Changes for post build events.
REM *
REM * Command line argument 2 is now the bin-file path.
REM * Command line argument 3 and 4 removed.
REM *
REM * Tested with: Windows 7 64 Bit, Atmel Studio 6.0.1996 Service Pack 2, Arduino-1.5.2
REM *
REM *----------------------------------------------------------------------------------------------------------------------
REM * Version : 0.03
REM * Date : 02.01.2018
REM * Name : Ewald Weinhandl
REM *
REM * Changes for Atmel Studio 7 and fetch DeviceID of Arduino Due Programming Port from WMI Service.
REM *
REM * Tested with: Windows 10 64 Bit, Atmel Studio 7.0.1645, Arduino-1.8.5
REM *
REM ***********************************************************************************************************************
REM ***********************************************************************************************************************
REM * Copyright (C) 2013 by arduinodue.weinhandl.org
REM *
REM * This program is free software: you can redistribute it and/or modify
REM * it under the terms of the GNU General Public License as published by
REM * the Free Software Foundation, either version 3 of the License, or
REM * (at your option) any later version.
REM *
REM * This program is distributed in the hope that it will be useful,
REM * but WITHOUT ANY WARRANTY; without even the implied warranty of
REM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
REM * GNU General Public License for more details.
REM *
REM * You should have received a copy of the GNU General Public License
REM * along with this program. If not, see <http://www.gnu.org/licenses/>.
REM *
REM ***********************************************************************************************************************
REM ***********************************************************************************************************************
REM Wait X second for memory on Arduino Due is erased.
SET WAIT_ERASED=4
ECHO ------ External tool BossacArduinoDue started ------
REM number of command line arguments ok?
IF [%1]==[] GOTO error_args
IF [%2]==[] GOTO error_args
REM set command line arguments
SET BOSSACPATH=%1
SET BINFILE=%2
REM parse command line arguments
SET BOSSACPATH=%BOSSACPATH:"=%
SET BINFILE=%BINFILE:"=%
REM workeround for bug in Atmel Studio 6.0.1996 Service Pack 2
SET BINFILE=%BINFILE:\\=\%
SET BINFILE=%BINFILE:.cproj=%
REM bossac path exist?
IF NOT EXIST "%BOSSACPATH%" GOTO error_arg1
REM bin file exist?
IF NOT EXIST "%BINFILE%" GOTO error_binfile
REM fetch DeviceID of Arduino Due Programming Port from WMI Service
FOR /f "tokens=* skip=1" %%a IN ('wmic PATH Win32_SerialPort Where "Caption LIKE '%%Arduino Due Programming Port%%'" get DeviceID') DO (
SET COMX=%%a
GOTO exit1
)
REM Arduino Due Programming Port not exist
GOTO error_comport
:exit1
REM remove blank
SET COMPORT=%COMX: =%
REM report in Atmel Studio 6.0 IDE output window
ECHO BossacPath=%BOSSACPATH%
ECHO BinFile=%BINFILE%
ECHO Arduino Due Programming Port is detected as %COMPORT%.
REM The bossac bootloader only runs if the memory on Arduino Due is erased.
REM The Arduino IDE does this by opening and closing the COM port at 1200 baud.
REM This causes the Due to execute a soft erase command.
ECHO Forcing reset using 1200bps open/close on port
ECHO MODE %COMPORT%:1200,N,8,1
MODE %COMPORT%:1200,N,8,1
REM Wait X second for memory on Arduino Due is erased.
ECHO Wait for memory on Arduino Due is erased...
PING -n %WAIT_ERASED% 127.0.0.1>NUL
REM Execute bossac.exe
ECHO Execute bossac with command line:
ECHO "%BOSSACPATH%" -i -d --port=%COMPORT% -U false -e -w -v -b "%BINFILE%" -R
START /WAIT "" "%BOSSACPATH%" -i -d --port=%COMPORT% -U false -e -w -v -b "%BINFILE%" -R
GOTO end
:error_args
ECHO Error: wrong number of command line arguments passed!
GOTO end
:error_arg1
ECHO Error: command line argument 1 - path to bossac.exe not exist! - "C:\Program Files (x86)\arduino-1.5.2\hardware\tools\bossac.exe"
ECHO Error: command line argument 1 - argument passed = %1
GOTO end
:error_arg2
ECHO Error: command line argument 2 - path to bin file not exist! - use $(OutputDirectory)\$(OutputFileName).bin
ECHO Error: command line argument 2 - argument passed = %1
GOTO end
:error_binfile
ECHO Error: bin file "%BINFILE%" not exist!
GOTO end
:error_comport
ECHO Error: Arduino Due Programming Port not found!
:end
ECHO ======================== Done ========================