@@ -250,18 +250,27 @@ public boolean uploadUsingProgrammer(String buildPath, String className)
250
250
}
251
251
252
252
public boolean burnBootloader () throws RunnerException {
253
- String programmer = Preferences .get ("programmer" );
254
253
TargetPlatform targetPlatform = Base .getTargetPlatform ();
254
+
255
+ // Find preferences for the selected programmer
256
+ PreferencesMap programmerPrefs ;
257
+ String programmer = Preferences .get ("programmer" );
255
258
if (programmer .contains (":" )) {
256
259
String [] split = programmer .split (":" , 2 );
257
- targetPlatform = Base .getCurrentTargetPlatformFromPackage (split [0 ]);
260
+ TargetPlatform platform = Base
261
+ .getCurrentTargetPlatformFromPackage (split [0 ]);
258
262
programmer = split [1 ];
263
+ programmerPrefs = platform .getProgrammer (programmer );
264
+ } else {
265
+ programmerPrefs = targetPlatform .getProgrammer (programmer );
259
266
}
260
267
268
+ // Build configuration for the current programmer
261
269
PreferencesMap prefs = Preferences .getMap ();
262
270
prefs .putAll (Base .getBoardPreferences ());
263
- prefs .putAll (targetPlatform . getProgrammer ( programmer ) );
271
+ prefs .putAll (programmerPrefs );
264
272
273
+ // Add configuration for bootloader tool
265
274
String toolName = prefs .get ("bootloader.tool" );
266
275
PreferencesMap toolPrefs = targetPlatform .getTool (toolName );
267
276
if (toolPrefs .size () == 0 )
@@ -277,12 +286,6 @@ public boolean burnBootloader() throws RunnerException {
277
286
}
278
287
279
288
try {
280
- // if (prefs.get("program.disable_flushing") == null
281
- // || prefs.get("program.disable_flushing").toLowerCase().equals("false"))
282
- // {
283
- // flushSerialBuffer();
284
- // }
285
-
286
289
String pattern = prefs .get ("erase.pattern" );
287
290
String [] cmd = StringReplacer .formatAndSplit (pattern , prefs , true );
288
291
if (!executeUploadCommand (cmd ))
0 commit comments