【问题标题】:How to cross compile Arduino code for esp8266?如何交叉编译 esp8266 的 Arduino 代码?
【发布时间】:2021-04-27 14:22:27
【问题描述】:

我在一个偏远的地方有一个 Raspberry Pi。我试图在该系统上运行 Arduino IDE,但它没有足够的内存。我想在我的 Ubuntu 桌面上编译一些代码,将可执行文件复制到 Pi 并使用一些实用程序将其加载到运行 OTA 软件的 ESP8266。我需要知道在 IDE 编译步骤之后可执行文件在哪里,以及可以使用什么实用程序通过局域网将文件从 Pi 传输到 ESP8266。

有什么想法吗? 谢谢, 吉姆。

【问题讨论】:

  • 如果我错了,请纠正我,但您只想使用 arduino ide 编译您的代码对吗?
  • 如果我是对的,你可能想看看arduino-cli
  • 草图菜单,导出二进制命令将二进制放在 ino 旁边。使用 esptool.py 上传二进制文件

标签: arduino esp8266


【解决方案1】:

在 arduino ide 中, 转到,文件-> 首选项。勾选编译框“Show verbose output during:☑ 编译”

现在您将获得 arduino 控制台中生成的所有文件的位置。

【讨论】:

    【解决方案2】:

    请参阅 Kinaly Jain 的回答。如果您将代码上传到本地 esp,详细模式还将向您显示用于上传的命令。您可以将这些命令收集到脚本或生成文件中以在远程 Pi 上运行。

    【讨论】:

      【解决方案3】:

      感谢两位响应者。我想尝试描述一个可能的场景来满足我的需求。我从另一篇文章中发现,“草图/导出编译的二进制文件”菜单选择将生成一个 bin 文件,可以使用类似于本页 https://github.com/esp8266/Arduino/issues/3553 中的脚本上传该文件 该脚本在网络中查找可用的 OTA 端口,然后使用 espota.py 将 .bin 文件上传到您选择的端口。我建议对该脚本稍作更新。在我的系统上,espota 位于 ~/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/espota.py 中,现在它是一个 python3 脚本。它是可执行的,所以你不需要显式地执行 python。

      /home/$USER/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/espota.py -i $ip -p 8266 --auth="$password" -f "$path" 2> /dev/null && echo -e "Success:\t$ip" || echo -e "Fail:   \t$ip" &
      

      我尚未对其进行测试,但我认为它可能会进行一些小的调整。 avahi-browse 实用程序位于 Raspberry Pi OS 的 avahi-utils 包中。它没有默认安装在 RPi OS 上,但它似乎已经安装在 Linux Mint 上。

      总结一下,我将使用“Export ...”菜单在我的桌面上运行 Arduino IDE,然后我会在草图目录中找到 .bin 文件并将其复制到 Pi。然后我将使用前面提到的脚本,希望通过 OTA 将 bin 文件写入 esp8266。我希望这能帮助其他有类似问题的人。

      再次感谢, 吉姆。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-16
        • 2010-10-01
        • 2022-07-29
        • 1970-01-01
        • 1970-01-01
        • 2016-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多