繁体   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