arduino远程刷新(烧录)固件

     在车间部署了十几个网络版的温湿度采集器(基于arduino的),这些采集器分布在不同的地方,现在要更新一下上面的固件。最笨的方法是一个一个地取下来,插到电脑的USB接口上进行固件更新,这样做显然很麻烦。能不能直接通过网络(以太网)进行固件的更新呢?

    我查了一下资料,发现网上只有通过蓝牙更新的固件的,但是没有以太网的。低功耗的商用的蓝牙,其传输距离只有10米,且那个方法必须在板上进行手动复位。我研究了一下,发现了通过以太网刷新固件的方法,现跟大家分享一下。

 

1原理:

(1)通过串口转wifi模块发送一个指令,让arduino复位。

(2)然后开始传送编译好的二进制文件,arduino在重启的时候,会将这个文件写入到flash中。avr固件的烧录原理请见:http://news.eeworld.com.cn/mcu/2013/0608/article_13291.html

 

2、硬件:

Arduino uno + 串口转wifi模块。

线路连接:2IO口串联一个550k电阻接到reset上。

 

我所用的Wifi模块是在这家店买的:

http://item.taobao.com/item.htm?spm=a1z09.2.9.41.0CxtvI&id=36815717425&_u=blmt59h45fc

 

3所需要工具软件:

  (1)avrdude。版本013.9.18,在附件的bin文件夹下。这个程序可用来将编译好的二进制文件刷写(烧录)到arduino中,它需要用到串口。

  (2)VSPM虚拟串口服务器,下载地地址:http://www.kinghwawin.com/DownloadShow.asp?ID=40。

    这个软件的作用是将TCP服务器虚拟成本地的串口,用于跟avrdude配合使用,即提供一个串口给avrdude使用。下载完毕之后,请按默认路径安装。启动该程序,然后新建一个虚拟串口,将串口号设置为“COM256”。如图所示:

 

 

3TCP/UDP调试工具。此工具的作用是给远端的arduino控制器发送复位指令。

 

4、arduino代码

void setup()

{

    Serial.begin(115200);

    pinMode(2,OUTPUT);

    digitalWrite(2, HIGH);   // switch off

}

 

void loop()

{

   if (Serial.available() > 0)

   {

       char val;

       val = Serial.read();     // read serial data

       if(val == 'r')

       {

          digitalWrite(2, LOW);    // 将reset管脚的电平拉低50ms,起到复位的作用

           delay(50);

          digitalWrite(2, HIGH); // 

      } 

  }

}
View Code

 

注:arduino中必须有以上的这些代码才能被远程刷新。请将这些代码嵌入到你的arduion中,然后用usb线刷新到arduino中。

 

5、在arduino编辑器中找到编译好的固件(.hex文件)

    默认情况下,arduino会在后台将源码进行编译成二进制文件,然后下载到arduino控制器中,这个过程不会有提示。

    可以通过一些方法来显示编译烧录的过程,并且提取hex文件,详细方法见链接:http://see.sl088.com/wiki/Arduino_%E6%8F%90%E5%8F%96hex

    这个步骤完成之后,我们手头上就有了一个后缀名为hex的二进制文件。

    附件中的bin文件夹下,有一个名为的Blink.cpp.hex文件,它是官方提供的例子编译之后的二进制文件,可以拿这个来做测试。

 

6、手工烧录

     手工烧录是直接使用avrdude来进行烧录。avrdude是一个控制台程序,需要在命令行下进行操作。

    (1cd进附件中的bin文件夹下。

    (2)使用TCP/UDP调试工具连接到TCP服务器,发送指令r,将arduino复位。

    (3)马上执行以下命令:avrdude.exe avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM256 -b115200 -D -Uflash:w:Blink.cpp.hex:i

     至于为什么知道是这个命令,我是通过分析arduino编辑器的编译及下载输出得出的,以下是arduino的编译下载时的输出(过程),请注意第43行。

  1 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.o 
  2 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\WInterrupts.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WInterrupts.c.o 
  3 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring.c.o 
  4 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_analog.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_analog.c.o 
  5 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_digital.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_digital.c.o 
  6 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_pulse.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_pulse.c.o 
  7 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_shift.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_shift.c.o 
  8 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\CDC.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\CDC.cpp.o 
  9 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\HardwareSerial.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HardwareSerial.cpp.o 
 10 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\HID.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HID.cpp.o 
 11 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\IPAddress.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\IPAddress.cpp.o 
 12 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\main.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\main.cpp.o 
 13 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\new.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\new.cpp.o 
 14 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\Print.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Print.cpp.o 
 15 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\Stream.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Stream.cpp.o 
 16 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\Tone.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Tone.cpp.o 
 17 E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\Tone.cpp:108: warning: only initialized variables can be placed into program memory area
 18 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\USBCore.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\USBCore.cpp.o 

 19 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\WMath.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WMath.cpp.o 
 20 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\电子学\arduino\arduino-1.0\hardware\arduino\variants\standard E:\电子学\arduino\arduino-1.0\hardware\arduino\cores\arduino\WString.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WString.cpp.o 
 21 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WInterrupts.c.o 
 22 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring.c.o 
 23 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_analog.c.o 
 24 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_digital.c.o 
 25 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_pulse.c.o 
 26 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_shift.c.o 
 27 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\CDC.cpp.o 
 28 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HardwareSerial.cpp.o 
 29 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HID.cpp.o 
 30 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\IPAddress.cpp.o 
 31 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\main.cpp.o 
 32 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\new.cpp.o 
 33 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Print.cpp.o 
 34 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Stream.cpp.o 
 35 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Tone.cpp.o 
 36 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\USBCore.cpp.o 
 37 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WMath.cpp.o 
 38 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WString.cpp.o 
 39 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -Os -Wl,--gc-sections -mmcu=atmega328p -o C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.elf C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.o C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a -LC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp -lm 
 40 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.elf C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.eep 
 41 E:\电子学\arduino\arduino-1.0\hardware\tools\avr\bin\avr-objcopy -O ihex -R .eeprom C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.elf C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex 
 42 Binary sketch size: 1026 bytes (of a 32256 byte maximum)
 43 E:\电子学\arduino\arduino-1.0\hardware/tools/avr/bin/avrdude -CE:\电子学\arduino\arduino-1.0\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM18 -b115200 -D -Uflash:w:C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex:i 
 44 
 45 avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
 46          Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
 47          Copyright (c) 2007-2009 Joerg Wunsch
 48 
 49          System wide configuration file is "E:\电子学\arduino\arduino-1.0\hardware/tools/avr/etc/avrdude.conf"
 50 
 51          Using Port                    : \\.\COM18
 52          Using Programmer              : arduino
 53          Overriding Baud Rate          : 115200
 54 avrdude: Send: 0 [30]   [20] 
 55 avrdude: Send: 0 [30]   [20] 
 56 avrdude: Send: 0 [30]   [20] 
 57 avrdude: Recv: . [14] 
 58 avrdude: Recv: . [10] 
 59          AVR Part                      : ATMEGA328P
 60          Chip Erase delay              : 9000 us
 61          PAGEL                         : PD7
 62          BS2                           : PC2
 63          RESET disposition             : dedicated
 64          RETRY pulse                   : SCK
 65          serial program mode           : yes
 66          parallel program mode         : yes
 67          Timeout                       : 200
 68          StabDelay                     : 100
 69          CmdexeDelay                   : 25
 70          SyncLoops                     : 32
 71          ByteDelay                     : 0
 72          PollIndex                     : 3
 73          PollValue                     : 0x53
 74          Memory Detail                 :
 75 
 76                                   Block Poll               Page                       Polled
 77            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
 78            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 79            eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
 80                                   Block Poll               Page                       Polled
 81            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
 82            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 83            flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
 84                                   Block Poll               Page                       Polled
 85            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
 86            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 87            lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
 88                                   Block Poll               Page                       Polled
 89            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
 90            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 91            hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
 92                                   Block Poll               Page                       Polled
 93            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
 94            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 95            efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
 96                                   Block Poll               Page                       Polled
 97            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
 98            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
 99            lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
100                                   Block Poll               Page                       Polled
101            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
102            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
103            calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
104                                   Block Poll               Page                       Polled
105            Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
106            ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
107            signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
108 
109          Programmer Type : Arduino
110          Description     : Arduino
111 avrdude: Send: A [41] . [80]   [20] 
112 avrdude: Recv: . [14] 
113 avrdude: Recv: . [03] 
114 avrdude: Recv: . [10] 
115 avrdude: Send: A [41] . [81]   [20] 
116 avrdude: Recv: . [14] 
117 avrdude: Recv: . [04] 
118 avrdude: Recv: . [10] 
119 avrdude: Send: A [41] . [82]   [20] 
120 avrdude: Recv: . [14] 
121 avrdude: Recv: . [04] 
122 avrdude: Recv: . [10] 
123 avrdude: Send: A [41] . [98]   [20] 
124 avrdude: Recv: . [14] 
125 avrdude: Recv: . [03] 
126 avrdude: Recv: . [10] 
127          Hardware Version: 3
128          Firmware Version: 4.4
129 avrdude: Send: A [41] . [84]   [20] 
130 avrdude: Recv: . [14] 
131 avrdude: Recv: . [03] 
132 avrdude: Recv: . [10] 
133 avrdude: Send: A [41] . [85]   [20] 
134 avrdude: Recv: . [14] 
135 avrdude: Recv: . [03] 
136 avrdude: Recv: . [10] 
137 avrdude: Send: A [41] . [86]   [20] 
138 avrdude: Recv: . [14] 
139 avrdude: Recv: . [03] 
140 avrdude: Recv: . [10] 
141 avrdude: Send: A [41] . [87]   [20] 
142 avrdude: Recv: . [14] 
143 avrdude: Recv: . [03] 
144 avrdude: Recv: . [10] 
145 avrdude: Send: A [41] . [89]   [20] 
146 avrdude: Recv: . [14] 
147 avrdude: Recv: . [03] 
148 avrdude: Recv: . [10] 
149          Vtarget         : 0.3 V
150          Varef           : 0.3 V
151          Oscillator      : 28.800 kHz
152          SCK period      : 3.3 us
153 
154 avrdude: Send: A [41] . [81]   [20] 
155 avrdude: Recv: . [14] 
156 avrdude: Recv: . [04] 
157 avrdude: Recv: . [10] 
158 avrdude: Send: A [41] . [82]   [20] 
159 avrdude: Recv: . [14] 
160 avrdude: Recv: . [04] 
161 avrdude: Recv: . [10] 
162 avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00]   [20] 
163 avrdude: Recv: . [14] 
164 avrdude: Recv: . [10] 
165 avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00]   [20] 
166 avrdude: Recv: . [14] 
167 avrdude: Recv: . [10] 
168 avrdude: Send: P [50]   [20] 
169 avrdude: Recv: . [14] 
170 avrdude: Recv: . [10] 
171 avrdude: AVR device initialized and ready to accept instructions
172 
173 Reading | avrdude: Send: u [75]   [20] 
174 avrdude: Recv: . [14] . [1e] . [95] . [0f] . [10] 
175 ################################################## | 100% 0.00s
176 
177 avrdude: Device signature = 0x1e950f
178 avrdude: Send: V [56] . [a0] . [03] . [fc] . [00]   [20] 
179 avrdude: Recv: . [14] 
180 avrdude: Recv: . [00] 
181 avrdude: Recv: . [10] 
182 avrdude: Send: V [56] . [a0] . [03] . [fd] . [00]   [20] 
183 avrdude: Recv: . [14] 
184 avrdude: Recv: . [00] 
185 avrdude: Recv: . [10] 
186 avrdude: Send: V [56] . [a0] . [03] . [fe] . [00]   [20] 
187 avrdude: Recv: . [14] 
188 avrdude: Recv: . [00] 
189 avrdude: Recv: . [10] 
190 avrdude: Send: V [56] . [a0] . [03] . [ff] . [00]   [20] 
191 avrdude: Recv: . [14] 
192 avrdude: Recv: . [00] 
193 avrdude: Recv: . [10] 
194 avrdude: reading input file "C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex"
195 avrdude: writing flash (1026 bytes):
196 
197 Writing | avrdude: Send: U [55] . [00] . [00]   [20] 
198 avrdude: Recv: . [14] 
199 avrdude: Recv: . [10] 
200 avrdude: Send: d [64] . [00] . [80] F [46] . [0c] . [94] a [61] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] . [9a] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [00] . [00] . [00] . [00] $ [24] . [00] ' [27] . [00] * [2a] . [00] . [00] . [00] . [00] . [00] % [25] . [00] ( [28] . [00] + [2b] . [00] . [00] . [00] . [00] . [00]   [20] 
201 avrdude: Recv: . [14] 
202 avrdude: Recv: . [10] 
203 ######avrdude: Send: U [55] @ [40] . [00]   [20] 
204 avrdude: Recv: . [14] 
205 avrdude: Recv: . [10] 
206 avrdude: Send: d [64] . [00] . [80] F [46] # [23] . [00] & [26] . [00] ) [29] . [00] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [02] . [02] . [02] . [02] . [02] . [02] . [03] . [03] . [03] . [03] . [03] . [03] . [01] . [02] . [04] . [08] . [10]   [20] @ [40] . [80] . [01] . [02] . [04] . [08] . [10]   [20] . [01] . [02] . [04] . [08] . [10]   [20] . [00] . [00] . [00] . [07] . [00] . [02] . [01] . [00] . [00] . [03] . [04] . [06] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [11] $ [24] . [1f] . [be] . [cf] . [ef] . [d8] . [e0] . [de] . [bf] . [cd] . [bf] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [e2] . [e0] . [f4] . [e0] . [02] . [c0] . [05] . [90] . [0d] . [92] . [a0] 0 [30] . [b1] . [07] . [d9] . [f7] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [01] . [c0] . [1d] . [92] . [a9] 0 [30] . [b1] . [07] . [e1] . [f7] . [0e] . [94] . [f0] . [01] . [0c] . [94] . [ff] . [01] . [0c] . [94] . [00] . [00]   [20] 
207 avrdude: Recv: . [14] 
208 avrdude: Recv: . [10] 
209 ######avrdude: Send: U [55] . [80] . [00]   [20] 
210 avrdude: Recv: . [14] 
211 avrdude: Recv: . [10] 
212 avrdude: Send: d [64] . [00] . [80] F [46] . [8d] . [e0] a [61] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [8d] . [e0] ` [60] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [08] . [95] . [8d] . [e0] a [61] . [e0] . [0e] . [94] v [76] . [01] . [08] . [95] . [1f] . [92] . [0f] . [92] . [0f] . [b6] . [0f] . [92] . [11] $ [24] / [2f] . [93] ? [3f] . [93] . [8f] . [93] . [9f] . [93] . [af] . [93] . [bf] . [93] . [80] . [91] . [04] . [01] . [90] . [91] . [05] . [01] . [a0] . [91] . [06] . [01] . [b0] . [91] . [07] . [01] 0 [30] . [91] . [08] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] # [23] / [2f] - [2d] _ [5f] - [2d] 7 [37]   [20] . [f0] - [2d] W [57] . [01] . [96] . [a1] . [1d] . [b1] . [1d]   [20] . [93] . [08] . [01] . [80] . [93] . [04] . [01] . [90] . [93] . [05] . [01]   [20] 
213 avrdude: Recv: . [14] 
214 avrdude: Recv: . [10] 
215 ######avrdude: Send: U [55] . [c0] . [00]   [20] 
216 avrdude: Recv: . [14] 
217 avrdude: Recv: . [10] 
218 avrdude: Send: d [64] . [00] . [80] F [46] . [a0] . [93] . [06] . [01] . [b0] . [93] . [07] . [01] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [80] . [93] . [00] . [01] . [90] . [93] . [01] . [01] . [a0] . [93] . [02] . [01] . [b0] . [93] . [03] . [01] . [bf] . [91] . [af] . [91] . [9f] . [91] . [8f] . [91] ? [3f] . [91] / [2f] . [91] . [0f] . [90] . [0f] . [be] . [0f] . [90] . [1f] . [90] . [18] . [95] . [9b] . [01] . [ac] . [01] . [7f] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] f [66] . [b5] . [a8] . [9b] . [05] . [c0] o [6f] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [7f] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [86] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] b [62] . [e0]   [20] 
219 avrdude: Recv: . [14] 
220 avrdude: Recv: . [10] 
221 ######avrdude: Send: U [55] . [00] . [01]   [20] 
222 avrdude: Recv: . [14] 
223 avrdude: Recv: . [10] 
224 avrdude: Send: d [64] . [00] . [80] F [46] . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] j [6a] . [95] . [d1] . [f7] . [bc] . [01] - [2d] . [c0] . [ff] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [e6] . [b5] . [a8] . [9b] . [05] . [c0] . [ef] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [ff] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [8e] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] . [e2] . [e0] . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] . [ea] . [95] . [d1] . [f7] . [86] . [1b] . [97] . [0b] . [88] ^ [5e] . [93] @ [40] . [c8] . [f2] ! [21] P [50] 0 [30] @ [40] @ [40] @ [40] P [50] @ [40] h [68] Q [51] | [7c] O [4f] ! [21] . [15] 1 [31] . [05] A [41] . [05] Q [51] . [05] q [71] . [f6] . [08] . [95] x [78] . [94] . [84] . [b5] . [82] ` [60] . [84] . [bd] . [84] . [b5]   [20] 
225 avrdude: Recv: . [14] 
226 avrdude: Recv: . [10] 
227 #######avrdude: Send: U [55] @ [40] . [01]   [20] 
228 avrdude: Recv: . [14] 
229 avrdude: Recv: . [10] 
230 avrdude: Send: d [64] . [00] . [80] F [46] . [81] ` [60] . [84] . [bd] . [85] . [b5] . [82] ` [60] . [85] . [bd] . [85] . [b5] . [81] ` [60] . [85] . [bd] . [ee] . [e6] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [e8] . [f0] . [e0] . [10] . [82] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [e0] . [e8] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [eb] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [e0] . [eb] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [ea] . [e7] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [80] . [81] . [80] h [68] . [80] . [83] . [10] . [92] . [c1] . [00] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] $ [24] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01]   [20] 
231 avrdude: Recv: . [14] 
232 avrdude: Recv: . [10] 
233 ######avrdude: Send: U [55] . [80] . [01]   [20] 
234 avrdude: Recv: . [14] 
235 avrdude: Recv: . [10] 
236 avrdude: Send: d [64] . [00] . [80] F [46] . [84] . [91] . [88] # [23] . [c1] . [f0] . [e8] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [e8] Y [59] . [ff] O [4f] . [a5] . [91] . [b4] . [91] f [66] # [23] A [41] . [f4] . [9f] . [b7] . [f8] . [94] . [8c] . [91]   [20] . [95] . [82] # [23] . [8c] . [93] . [9f] . [bf] . [08] . [95] . [9f] . [b7] . [f8] . [94] . [8c] . [91] . [82] + [2b] . [8c] . [93] . [9f] . [bf] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [82] U [55] . [9f] O [4f] . [fc] . [01] $ [24] . [91] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] . [94] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] 4 [34] . [91] 3 [33] # [23] . [09] . [f4] @ [40] . [c0] " [22] # [23] Q [51] . [f1] # [23] 0 [30] q [71] . [f0] $ [24] 0 [30] ( [28] . [f4] ! [21] 0 [30] . [a1] . [f0] " [22] 0 [30] . [11] . [f5] . [14] . [c0] & [26] 0 [30] . [b1] . [f0] ' [27] 0 [30] . [c1] . [f0] $ [24] 0 [30] . [d9] . [f4]   [20] 
237 avrdude: Recv: . [14] 
238 avrdude: Recv: . [10] 
239 ######avrdude: Send: U [55] . [c0] . [01]   [20] 
240 avrdude: Recv: . [14] 
241 avrdude: Recv: . [10] 
242 avrdude: Send: d [64] . [00] . [80] F [46] . [04] . [c0] . [80] . [91] . [80] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [80] . [00] . [8f] } [7d] . [80] . [93] . [80] . [00] . [10] . [c0] . [84] . [b5] . [8f] w [77] . [02] . [c0] . [84] . [b5] . [8f] } [7d] . [84] . [bd] . [09] . [c0] . [80] . [91] . [b0] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [b0] . [00] . [8f] } [7d] . [80] . [93] . [b0] . [00] . [e3] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [ee] X [58] . [ff] O [4f] . [a5] . [91] . [b4] . [91] / [2f] . [b7] . [f8] . [94] f [66] # [23] ! [21] . [f4] . [8c] . [91] . [90] . [95] . [89] # [23] . [02] . [c0] . [8c] . [91] . [89] + [2b] . [8c] . [93] / [2f] . [bf] . [08] . [95] . [cf] . [93] . [df] . [93] . [0e] . [94] ; [3b] . [01] . [0e] . [94] . [95] . [00] . [c0] . [e0] . [d0] . [e0] . [0e] . [94] . [80] . [00]   [20] . [97] . [e1] . [f3] . [0e] . [94] . [00] . [00] . [f9] . [cf] . [f8] . [94]   [20] 
243 avrdude: Recv: . [14] 
244 avrdude: Recv: . [10] 
245 ######avrdude: Send: U [55] . [00] . [02]   [20] 
246 avrdude: Recv: . [14] 
247 avrdude: Recv: . [10] 
248 avrdude: Send: d [64] . [00] . [02] F [46] . [ff] . [cf]   [20] 
249 avrdude: Recv: . [14] 
250 avrdude: Recv: . [10] 
251 # | 100% 0.21s
252 
253 avrdude: 1026 bytes of flash written
254 avrdude: verifying flash memory against C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex:
255 avrdude: load data flash data from input file C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex:
256 avrdude: input file C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex contains 1026 bytes
257 avrdude: reading on-chip flash data:
258 
259 Reading | avrdude: Send: U [55] . [00] . [00]   [20] 
260 avrdude: Recv: . [14] 
261 avrdude: Recv: . [10] 
262 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
263 avrdude: Recv: . [14] 
264 avrdude: Recv: . [0c] . [94] a [61] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] . [9a] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [00] . [00] . [00] . [00] $ [24] . [00] ' [27] . [00] * [2a] . [00] . [00] . [00] . [00] . [00] % [25] . [00] ( [28] . [00] + [2b] . [00] . [00] . [00] . [00] . [00] 
265 avrdude: Recv: . [10] 
266 ######avrdude: Send: U [55] @ [40] . [00]   [20] 
267 avrdude: Recv: . [14] 
268 avrdude: Recv: . [10] 
269 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
270 avrdude: Recv: . [14] 
271 avrdude: Recv: # [23] . [00] & [26] . [00] ) [29] . [00] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [02] . [02] . [02] . [02] . [02] . [02] . [03] . [03] . [03] . [03] . [03] . [03] . [01] . [02] . [04] . [08] . [10]   [20] @ [40] . [80] . [01] . [02] . [04] . [08] . [10]   [20] . [01] . [02] . [04] . [08] . [10]   [20] . [00] . [00] . [00] . [07] . [00] . [02] . [01] . [00] . [00] . [03] . [04] . [06] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [11] $ [24] . [1f] . [be] . [cf] . [ef] . [d8] . [e0] . [de] . [bf] . [cd] . [bf] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [e2] . [e0] . [f4] . [e0] . [02] . [c0] . [05] . [90] . [0d] . [92] . [a0] 0 [30] . [b1] . [07] . [d9] . [f7] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [01] . [c0] . [1d] . [92] . [a9] 0 [30] . [b1] . [07] . [e1] . [f7] . [0e] . [94] . [f0] . [01] . [0c] . [94] . [ff] . [01] . [0c] . [94] . [00] . [00] 
272 avrdude: Recv: . [10] 
273 ######avrdude: Send: U [55] . [80] . [00]   [20] 
274 avrdude: Recv: . [14] 
275 avrdude: Recv: . [10] 
276 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
277 avrdude: Recv: . [14] 
278 avrdude: Recv: . [8d] . [e0] a [61] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [8d] . [e0] ` [60] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [08] . [95] . [8d] . [e0] a [61] . [e0] . [0e] . [94] v [76] . [01] . [08] . [95] . [1f] . [92] . [0f] . [92] . [0f] . [b6] . [0f] . [92] . [11] $ [24] / [2f] . [93] ? [3f] . [93] . [8f] . [93] . [9f] . [93] . [af] . [93] . [bf] . [93] . [80] . [91] . [04] . [01] . [90] . [91] . [05] . [01] . [a0] . [91] . [06] . [01] . [b0] . [91] . [07] . [01] 0 [30] . [91] . [08] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] # [23] / [2f] - [2d] _ [5f] - [2d] 7 [37]   [20] . [f0] - [2d] W [57] . [01] . [96] . [a1] . [1d] . [b1] . [1d]   [20] . [93] . [08] . [01] . [80] . [93] . [04] . [01] . [90] . [93] . [05] . [01] 
279 avrdude: Recv: . [10] 
280 ######avrdude: Send: U [55] . [c0] . [00]   [20] 
281 avrdude: Recv: . [14] 
282 avrdude: Recv: . [10] 
283 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
284 avrdude: Recv: . [14] 
285 avrdude: Recv: . [a0] . [93] . [06] . [01] . [b0] . [93] . [07] . [01] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [80] . [93] . [00] . [01] . [90] . [93] . [01] . [01] . [a0] . [93] . [02] . [01] . [b0] . [93] . [03] . [01] . [bf] . [91] . [af] . [91] . [9f] . [91] . [8f] . [91] ? [3f] . [91] / [2f] . [91] . [0f] . [90] . [0f] . [be] . [0f] . [90] . [1f] . [90] . [18] . [95] . [9b] . [01] . [ac] . [01] . [7f] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] f [66] . [b5] . [a8] . [9b] . [05] . [c0] o [6f] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [7f] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [86] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] b [62] . [e0] 
286 avrdude: Recv: . [10] 
287 ######avrdude: Send: U [55] . [00] . [01]   [20] 
288 avrdude: Recv: . [14] 
289 avrdude: Recv: . [10] 
290 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
291 avrdude: Recv: . [14] 
292 avrdude: Recv: . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] j [6a] . [95] . [d1] . [f7] . [bc] . [01] - [2d] . [c0] . [ff] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [e6] . [b5] . [a8] . [9b] . [05] . [c0] . [ef] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [ff] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [8e] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] . [e2] . [e0] . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] . [ea] . [95] . [d1] . [f7] . [86] . [1b] . [97] . [0b] . [88] ^ [5e] . [93] @ [40] . [c8] . [f2] ! [21] P [50] 0 [30] @ [40] @ [40] @ [40] P [50] @ [40] h [68] Q [51] | [7c] O [4f] ! [21] . [15] 1 [31] . [05] A [41] . [05] Q [51] . [05] q [71] . [f6] . [08] . [95] x [78] . [94] . [84] . [b5] . [82] ` [60] . [84] . [bd] . [84] . [b5] 
293 avrdude: Recv: . [10] 
294 #######avrdude: Send: U [55] @ [40] . [01]   [20] 
295 avrdude: Recv: . [14] 
296 avrdude: Recv: . [10] 
297 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
298 avrdude: Recv: . [14] 
299 avrdude: Recv: . [81] ` [60] . [84] . [bd] . [85] . [b5] . [82] ` [60] . [85] . [bd] . [85] . [b5] . [81] ` [60] . [85] . [bd] . [ee] . [e6] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [e8] . [f0] . [e0] . [10] . [82] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [e0] . [e8] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [eb] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [e0] . [eb] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [ea] . [e7] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [80] . [81] . [80] h [68] . [80] . [83] . [10] . [92] . [c1] . [00] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] $ [24] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] 
300 avrdude: Recv: . [10] 
301 ######avrdude: Send: U [55] . [80] . [01]   [20] 
302 avrdude: Recv: . [14] 
303 avrdude: Recv: . [10] 
304 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
305 avrdude: Recv: . [14] 
306 avrdude: Recv: . [84] . [91] . [88] # [23] . [c1] . [f0] . [e8] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [e8] Y [59] . [ff] O [4f] . [a5] . [91] . [b4] . [91] f [66] # [23] A [41] . [f4] . [9f] . [b7] . [f8] . [94] . [8c] . [91]   [20] . [95] . [82] # [23] . [8c] . [93] . [9f] . [bf] . [08] . [95] . [9f] . [b7] . [f8] . [94] . [8c] . [91] . [82] + [2b] . [8c] . [93] . [9f] . [bf] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [82] U [55] . [9f] O [4f] . [fc] . [01] $ [24] . [91] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] . [94] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] 4 [34] . [91] 3 [33] # [23] . [09] . [f4] @ [40] . [c0] " [22] # [23] Q [51] . [f1] # [23] 0 [30] q [71] . [f0] $ [24] 0 [30] ( [28] . [f4] ! [21] 0 [30] . [a1] . [f0] " [22] 0 [30] . [11] . [f5] . [14] . [c0] & [26] 0 [30] . [b1] . [f0] ' [27] 0 [30] . [c1] . [f0] $ [24] 0 [30] . [d9] . [f4] 
307 avrdude: Recv: . [10] 
308 ######avrdude: Send: U [55] . [c0] . [01]   [20] 
309 avrdude: Recv: . [14] 
310 avrdude: Recv: . [10] 
311 avrdude: Send: t [74] . [00] . [80] F [46]   [20] 
312 avrdude: Recv: . [14] 
313 avrdude: Recv: . [04] . [c0] . [80] . [91] . [80] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [80] . [00] . [8f] } [7d] . [80] . [93] . [80] . [00] . [10] . [c0] . [84] . [b5] . [8f] w [77] . [02] . [c0] . [84] . [b5] . [8f] } [7d] . [84] . [bd] . [09] . [c0] . [80] . [91] . [b0] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [b0] . [00] . [8f] } [7d] . [80] . [93] . [b0] . [00] . [e3] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [ee] X [58] . [ff] O [4f] . [a5] . [91] . [b4] . [91] / [2f] . [b7] . [f8] . [94] f [66] # [23] ! [21] . [f4] . [8c] . [91] . [90] . [95] . [89] # [23] . [02] . [c0] . [8c] . [91] . [89] + [2b] . [8c] . [93] / [2f] . [bf] . [08] . [95] . [cf] . [93] . [df] . [93] . [0e] . [94] ; [3b] . [01] . [0e] . [94] . [95] . [00] . [c0] . [e0] . [d0] . [e0] . [0e] . [94] . [80] . [00]   [20] . [97] . [e1] . [f3] . [0e] . [94] . [00] . [00] . [f9] . [cf] . [f8] . [94] 
314 avrdude: Recv: . [10] 
315 ######avrdude: Send: U [55] . [00] . [02]   [20] 
316 avrdude: Recv: . [14] 
317 avrdude: Recv: . [10] 
318 avrdude: Send: t [74] . [00] . [02] F [46]   [20] 
319 avrdude: Recv: . [14] 
320 avrdude: Recv: . [ff] . [cf] 
321 avrdude: Recv: . [10] 
322 # | 100% 0.18s
323 
324 avrdude: verifying ...
325 avrdude: 1026 bytes of flash verified
326 avrdude: Send: Q [51]   [20] 
327 avrdude: Recv: . [14] 
328 avrdude: Recv: . [10] 
329 
330 avrdude done.  Thank you.
View Code

 

7、自动烧录

我用C#写了一个工具,将上面的手工操作给封装起来。功能包括启动VSPM虚拟串口服务器,复位远端的arduino uno,执行avrdude指令。详见的代码见附件。

 

8、附件下载

 点击下载

 

posted @ 2015-02-11 18:15  何德海  阅读(10776)  评论(6编辑  收藏  举报