使用三星设备在Android上运行avrdude

时间:2013-05-30 14:20:01

标签: android avrdude

您好stackoverflow.com的成员!

我尝试在Android中构建一个可以上传avr-gcc生成的HEX文件的应用程序。我安装了AndAVR这个chaintool http://code.google.com/p/andavr/

运行avrdude(在使用USB-OTG线缆的根设备中)我在移动终端中使用此命令:

/data/data/jackpal.androidterm/local/bin/avrdude -F -V -c arduino -p m2560 -P /dev/bus/usb/002/001  -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:/sdcard/megademo/Blink1.cpp.hex

之后阅读这篇文章Android cannot talk to Arduino using AVRDUDE我尝试解决方案并通过/ dev / ttyACM0更改/ dev / bus / usb / 002/002。

/data/data/jackpal.androidterm/local/bin/avrdude -F -V -c arduino -p m2560 -P /dev/ttyACM0  -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:/sdcard/megademo/Blink1.cpp.hex

但avrdude回答我:

avrdude: ser_open(): can't open device "unkown". No such file or directory. 

我有一个Arduino Mega 2560和Mega ADK 2560 R3,两个主板都有一个ATmega2560微型控制器,我有一个:

  • Samsumg Galaxy S2使用root
  • 运行Android 4.1.2股票
  • Samsumg Galaxy S3使用root
  • 运行Android 4.1.2股票
  • Samsumg Galaxy Tab Note 10.1运行没有root的Android 4.1.2股票
  • Asus Transfomer Pad TF700T运行没有root的Android 4.2.1股票

问题是三星设备没有列举Arduino板和华硕标签是的。

在所有设备中,我在移动终端中运行命令:

cat /proc/tty/drivers

和华硕提出具体的驱动因素:

ACM /dev/ttyACM 166 0-31 serial

这个驱动程序没有显示在三星设备中,这个驱动程序对于将hex文件上传到Arduino板是必不可少的,那么如何在三星设备中安装此驱动程序?或者我如何上传hex文件?

所有设备中的Android都在/ dev / bus / USB / 002 / xxx中创建一个文件,其中xxx是Arduino板或其他USB设备。

祝你好运!

1 个答案:

答案 0 :(得分:1)

如果要使用此方法,则需要加载cdc_acm内核模块 - 可能未随设备提供,因此您必须构建它。然后创建相应的/ dev / ttyACM0设备节点,因为在桌面linux上执行此操作的守护程序可能不存在。您将需要root来执行这些操作,并适度关闭内核源代码以进行编译。

另一种方法可能是使用Android USB Host API在Android应用中以用户模式实现CDC_ACM类型通信(如果您的设备支持这些通信)。这将是一个更“安卓风格”的解决方案,但需要对avrdude进行一些更改,因为它必须通过打包在应用程序中的Android感知后端服务进行通信。

另请注意,最近的arduinos(Uno等)和少数克隆使用CDC_ACM;较旧的Arduino板和大多数克隆使用FTDI USB串行转换器,需要ftdi驱动程序模块或协议。