我正在使用AVRDUDE for Android ( http://code.google.com/p/andavr/ )。我可以编译C代码。我可以跑
$ avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o led.o led.c
$ avr-gcc -mmcu=atmega328p led.o -o led
$ avr-objcopy -O ihex -R .eeprom led led.hex
都没有问题。然后我尝试运行:
avrdude -F -V -c arduino -p ATMEGA328P -P /dev/bus/usb/002/002 -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:led.hex
结果是:
avrdude: ser_open(): can't open device "/dev/bus/usb/002/002"; Permission denied
loctl("TIOCMGET"): Invalid argument
avrdude done. Thank you.
我运行时的情况类似:
avrdude -F -V -c arduino -p ATMEGA328P -P /dev/bus/usb/002/001 -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:led.hex
我可以确认这是用OTG电缆/dev/bus/usb/002/002
连接的 Arduino 设备。在连接之前,我运行
ls -l /dev/bus/usb/002/
我得到:
total 0
通过 USB 将 Arduino 连接到平板电脑后,我运行以下命令:
ls -l /dev/bus/usb/002
我得到
crw-rw---- 1 0 1018 180,128 Mar 24 07:53 001
crw-rw---- 1 0 1018 180,129 Mar 24 07:53 002
这清楚地向我展示了 Arduino 已连接。我很想知道是否有人能看到我做错了什么。
PS:我正在尝试创建一个 Android 应用程序,允许直接从 Android 平板电脑进行 Arduino 编程。