• 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:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.o 
      2 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoWInterrupts.c -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpWInterrupts.c.o 
      3 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinowiring.c -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring.c.o 
      4 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinowiring_analog.c -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_analog.c.o 
      5 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinowiring_digital.c -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_digital.c.o 
      6 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinowiring_pulse.c -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_pulse.c.o 
      7 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinowiring_shift.c -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_shift.c.o 
      8 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoCDC.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpCDC.cpp.o 
      9 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoHardwareSerial.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpHardwareSerial.cpp.o 
     10 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoHID.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpHID.cpp.o 
     11 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoIPAddress.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpIPAddress.cpp.o 
     12 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinomain.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpmain.cpp.o 
     13 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinonew.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpnew.cpp.o 
     14 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoPrint.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpPrint.cpp.o 
     15 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoStream.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpStream.cpp.o 
     16 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoTone.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpTone.cpp.o 
     17 E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoTone.cpp:108: warning: only initialized variables can be placed into program memory area
     18 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoUSBCore.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpUSBCore.cpp.o 
    
     19 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoWMath.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpWMath.cpp.o 
     20 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:电子学arduinoarduino-1.0hardwarearduinocoresarduino -IE:电子学arduinoarduino-1.0hardwarearduinovariantsstandard E:电子学arduinoarduino-1.0hardwarearduinocoresarduinoWString.cpp -oC:UsersleoAppDataLocalTempuild1450515865813525473.tmpWString.cpp.o 
     21 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpWInterrupts.c.o 
     22 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring.c.o 
     23 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_analog.c.o 
     24 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_digital.c.o 
     25 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_pulse.c.o 
     26 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpwiring_shift.c.o 
     27 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpCDC.cpp.o 
     28 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpHardwareSerial.cpp.o 
     29 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpHID.cpp.o 
     30 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpIPAddress.cpp.o 
     31 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpmain.cpp.o 
     32 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpnew.cpp.o 
     33 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpPrint.cpp.o 
     34 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpStream.cpp.o 
     35 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpTone.cpp.o 
     36 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpUSBCore.cpp.o 
     37 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpWMath.cpp.o 
     38 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-ar rcs C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a C:UsersleoAppDataLocalTempuild1450515865813525473.tmpWString.cpp.o 
     39 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-gcc -Os -Wl,--gc-sections -mmcu=atmega328p -o C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.elf C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.o C:UsersleoAppDataLocalTempuild1450515865813525473.tmpcore.a -LC:UsersleoAppDataLocalTempuild1450515865813525473.tmp -lm 
     40 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.elf C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.eep 
     41 E:电子学arduinoarduino-1.0hardware	oolsavrinavr-objcopy -O ihex -R .eeprom C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.elf C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.hex 
     42 Binary sketch size: 1026 bytes (of a 32256 byte maximum)
     43 E:电子学arduinoarduino-1.0hardware/tools/avr/bin/avrdude -CE:电子学arduinoarduino-1.0hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\.COM18 -b115200 -D -Uflash:w:C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.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:电子学arduinoarduino-1.0hardware/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:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.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:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.hex:
    255 avrdude: load data flash data from input file C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.cpp.hex:
    256 avrdude: input file C:UsersleoAppDataLocalTempuild1450515865813525473.tmpBlink.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、附件下载

     点击下载

  • 相关阅读:
    [转]使用Composer管理PHP依赖关系
    Php环境下载(PHPNow)安装
    精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框图设计工具
    八款强大的jQuery图片滑块动画插件
    JavaScript prototype.js提升JavaScript开发效率
    JS Message 网页消息提醒
    Vis.js图表插件
    动态算法学习
    GPS功能:百度路书自定义【轨迹回放】
    CSS美化页面滚动条
  • 原文地址:https://www.cnblogs.com/dehai/p/4286768.html
Copyright © 2020-2023  润新知