@@ -250,18 +250,27 @@ public boolean uploadUsingProgrammer(String buildPath, String className)
250250 }
251251
252252 public boolean burnBootloader () throws RunnerException {
253- String programmer = Preferences .get ("programmer" );
254253 TargetPlatform targetPlatform = Base .getTargetPlatform ();
254+
255+ // Find preferences for the selected programmer
256+ PreferencesMap programmerPrefs ;
257+ String programmer = Preferences .get ("programmer" );
255258 if (programmer .contains (":" )) {
256259 String [] split = programmer .split (":" , 2 );
257- targetPlatform = Base .getCurrentTargetPlatformFromPackage (split [0 ]);
260+ TargetPlatform platform = Base
261+ .getCurrentTargetPlatformFromPackage (split [0 ]);
258262 programmer = split [1 ];
263+ programmerPrefs = platform .getProgrammer (programmer );
264+ } else {
265+ programmerPrefs = targetPlatform .getProgrammer (programmer );
259266 }
260267
268+ // Build configuration for the current programmer
261269 PreferencesMap prefs = Preferences .getMap ();
262270 prefs .putAll (Base .getBoardPreferences ());
263- prefs .putAll (targetPlatform . getProgrammer ( programmer ) );
271+ prefs .putAll (programmerPrefs );
264272
273+ // Add configuration for bootloader tool
265274 String toolName = prefs .get ("bootloader.tool" );
266275 PreferencesMap toolPrefs = targetPlatform .getTool (toolName );
267276 if (toolPrefs .size () == 0 )
@@ -277,12 +286,6 @@ public boolean burnBootloader() throws RunnerException {
277286 }
278287
279288 try {
280- // if (prefs.get("program.disable_flushing") == null
281- // || prefs.get("program.disable_flushing").toLowerCase().equals("false"))
282- // {
283- // flushSerialBuffer();
284- // }
285-
286289 String pattern = prefs .get ("erase.pattern" );
287290 String [] cmd = StringReplacer .formatAndSplit (pattern , prefs , true );
288291 if (!executeUploadCommand (cmd ))
0 commit comments