2013-05-30 24 views
2

嗨,stackoverflow.com成員!使用Samsung設備在Android上運行avrdude

我嘗試在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的兆2560和Mega ADK 2560 R3,雙方董事會有ATmega2560 microcontollers,我有一個:

  • SAMSUMG Galaxy S2以root用戶運行Android 4.1.2股票
  • Samsumg Galaxy S3用root用戶運行Android 4.1.2股票
  • SAMSUMG的Galaxy Tab 10.1注運行Android 4.1.2股票無根
  • 華碩主變差動墊TF700T運行安卓4.2.1股票無根

的問題是,三星設備不枚舉的Arduino板和華碩標籤是的。

在我運行在移動終端中的命令的所有設備:

cat /proc/tty/drivers 

和華碩呈現特定的驅動程序:

ACM /dev/ttyACM 166 0-31 serial 

此驅動程序不三星裝置上顯示,以及該驅動程序是將十六進制文件上傳到Arduino板是必不可少的,那麼如何在三星設備中安裝此驅動程序?或者我如何上傳十六進制文件?

Android在所有設備上在/ dev/bus/USB/002/xxx中創建一個文件,其中xxx是Arduino板或其他USB設備。

此致敬禮!

回答

1

如果你想使用這種方法,你需要加載cdc_acm內核模塊 - 這可能不是你的設備提供的,所以你將不得不構建它。然後創建對應的/ dev/ttyACM0設備節點,因爲守護進程可能會在桌面Linux上執行該操作,可能不存在。你需要root來做這些事情,並適度地關閉內核源文件來編譯。

另一種方法是使用Android USB主機API在用戶模式下從Android應用程序實現CDC_ACM類型通信(如果設備支持這些通信)。這將是一個更「Android風格」的解決方案,但需要對avrdude進行一些更改,因爲它必須通過打包在應用中的Android感知後端服務進行通信。

另請注意,CDC_ACM由最近的arduinos(Uno等)和少數克隆使用;舊的Arduino板和大多數克隆使用FTDI USB串行轉換器,並且需要ftdi驅動模塊或協議。

+0

我在本頁面發現一個名爲cdc_acm.ko驅動程序S3:http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=6&t=1113&sid=8a884c8da0544520e912d4e3aa94351b 我安裝了這個工作,我如何在其他設備上使用此驅動程序?可能嗎? 我用超級用戶命令安裝: #insmod /sdcard/cdc-acm.ko –

+0

內核模塊往往只能在相同/非常接近的內核版本上工作。即使它工作,使用它,你將需要創建一個設備節點。您可以使用平板電腦上的ls -l/dev/ttyACM0獲取主要/次要編號(根據您的需要,可能爲166和0)。首先閱讀'mknod'的linux手冊頁,然後認識到Android的'mknod'可能很奇怪,但是您可能會看到在您的設備的啓動腳本中使用它的可比較示例。 –

+0

我將在java中使用STK500V2協議將hex文件上傳到Arduino Mega 2560,使用Android的USB串行API將我的應用程序設置爲「常規」,並且無需訪問根目錄感謝您的幫助! 此致敬禮! –

相關問題