Answers:
arduino IDE在运行avrdude之前会重置连接的arduino。它通过告诉FTDI设备对连接到arduino的复位引脚的DTR线施加脉冲来实现此目的。Pekkaa找到了执行此操作的示例perl代码,并在Arduino论坛上更新了该线程。
为了完整起见,以下是他们用于上传.hex文件的命令:
perl -MDevice::SerialPort -e 'Device::SerialPort->new("/dev/ttyUSB0")->pulse_dtr_on(1000)'; \
./hardware/tools/avrdude -Chardware/tools/avrdude.conf -q -q -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex;
还有一个用于重置arduinos的python脚本,如果您无法在系统上正常运行,可以使用它代替perl。