簡體   English   中英

Arduino Uno 代碼可以使用交叉編譯器在 BeagleBone Black 上運行嗎?

[英]Can Arduino Uno code run on a BeagleBone Black using a cross compiler?

我目前是一個研究團隊的一員,該團隊正在為當地救援潛水員開發無人潛艇。 目標是改進和修復去年團隊的原型。

現在車輛使用 Arduino Uno 和 BeagleBone Black。 Arduino 控制六個轉子和幾個板載傳感器,而 BeagleBone 控制一個板載攝像頭(不要問為什么,選擇了這個設置。以前的團隊早已不在,所以我們別無選擇,只能繼續前進)。

根據最后一個團隊的說法,由於“屏蔽”問題,Arduino 無法控制所有設備。 將 BeagleBone 用於所有事情本來是最佳選擇,但團隊無法在 2 天內重寫代碼(沒有人知道 Java)。 由於我只懂Java,所以我在項目過程中的最初計划是學習C++,並用Java重寫代碼。

最近,我遇到了“交叉編譯器”這個術語,據我所知,它允許用一種語言編寫的程序在使用不同語言的平台上運行。 交叉編譯器能否從 Arduino 中獲取代碼並將其“轉換”為 BeagleBone? 代碼似乎太復雜了,無法從語言轉換到語言。 對不起,如果我聽起來“笨手笨腳”,我是一名機械工程師學生,他參加了一個 Java 課程。

可以在 BeagleBone 上從 Arduino 編譯 C/C++ 代碼,但它不會以相同的方式工作。 I/O 端口不會以相同的方式解決,可能還有許多其他問題。 在 Arduino 上,您的程序幾乎是唯一運行的東西。 在 BeagleBone 上,您有一個完整的 Unix O/S 運行,並且您的代碼是許多進程之一。

如果您了解 Java,那么 C/C++ 代碼應該不會太難閱讀。 在 BeagleBone 上讀取端口並控制我猜測的伺服系統當然是可能的。 如果您有一些 Auduino 防護罩,那可能是一個問題。 他們可能會說 SPI 或 I2C,但他們可能會使用較低級別的東西——也許只是一個 PWM 信號。

這不會是一個微不足道的項目,但我認為您正朝着正確的方向前進。 我會一次采用一個子系統,然后為 BeagleBone 重新編寫該代碼。 像這樣的斗篷可以驅動步進器或伺服器。 然而,這帶來了另一個問題——提供的是用 Python 編寫的——還有更多的移植工作要做。

所以交叉編譯無濟於事 - 代碼理論上是可移植的,但實際上並非如此。 這將需要重寫。

暫無
暫無

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

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