簡體   English   中英

使用三星設備在Android上運行avrdude

[英]Run avrdude on Android with Samsung devices

您好stackoverflow.com的成員!

我嘗試在Android中構建一個可以上傳由avr-gcc生成的HEX文件的應用程序。 我安裝了這個鏈工具AndAVR 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無法使用AVRDUDE與Arduino對話,我嘗試了解決方案,並通過/ 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股票
  • 華碩Transfomer Pad TF700T無根運行Android 4.2.1股票

問題是三星設備無法枚舉Arduino開發板,而華碩標簽是。

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

cat /proc/tty/drivers

華碩提供了具體的驅動程序:

ACM /dev/ttyACM 166 0-31 serial

該驅動程序未在Samsung設備中顯示,那么該驅動程序對於將hex文件上傳到Arduino板是必不可少的,那么如何在三星設備中安裝該驅動程序? 或如何上傳十六進制文件?

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

最好的祝福!

如果要使用此方法,則需要加載cdc_acm內核模塊-可能不是設備隨附的,因此必須對其進行構建。 然后創建相應的/ dev / ttyACM0設備節點,因為在台式機Linux上可能不存在的守護進程不存在。 您將需要root來執行這些操作,並適度關閉內核源以進行編譯。

如果您的設備支持Android USB Host API,則另一種方法可能是使用Android USB Host API在Android應用程序中以用戶模式實現CDC_ACM類型的通信。 這將是一個更具“ android風格”的解決方案,但將需要對avrdude進行一些更改,因為它必須通過打包在應用中的可識別Android的后端服務進行通信。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM