在车间部署了十几个网络版的温湿度采集器(基于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模块。
线路连接:2号IO口串联一个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”。如图所示:
(3)TCP/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); // } } }
注: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是一个控制台程序,需要在命令行下进行操作。
(1)cd进附件中的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.
7、自动烧录
我用C#写了一个工具,将上面的手工操作给封装起来。功能包括启动VSPM虚拟串口服务器,复位远端的arduino uno,执行avrdude指令。详见的代码见附件。
8、附件下载