使用Arduino IDE的nodemcu/ESP8266-固件?

使用Arduino IDE的nodemcu/ESP8266-固件?,arduino,esp8266,firmware,nodemcu,Arduino,Esp8266,Firmware,Nodemcu,我想当nodemcu/ESP8266与ArduinoIDE和/或visual micro(用于MS visual Studio)一起使用时,我对它有一个基本的理解问题 每次我上传一个显然是用C写的程序/草图时,它都在编译和上传一个大约280kb的二进制文件,即使它只是一个简单的“闪烁”示例 是每次都会上传某种固件,还是只是ESP与Arduino IDE协同工作所需的怪异库 如果是固件,在使用Arduino IDE时,您是否通常将固件“更新”到较新版本?使用nodemcu LUA固件时,会定期更新

我想当nodemcu/ESP8266与ArduinoIDE和/或visual micro(用于MS visual Studio)一起使用时,我对它有一个基本的理解问题

每次我上传一个显然是用C写的程序/草图时,它都在编译和上传一个大约280kb的二进制文件,即使它只是一个简单的“闪烁”示例

是每次都会上传某种固件,还是只是ESP与Arduino IDE协同工作所需的怪异库

如果是固件,在使用Arduino IDE时,您是否通常将固件“更新”到较新版本?使用nodemcu LUA固件时,会定期更新


谢谢

这是完全正常的-当为ESP/NodeMCU编写Lua等解释语言的代码时,您只需上传一个相对较小的文本文件,因为运行该文件所需的代码已经在芯片上,并且不会更改

但是,当你开始使用C语言编译(例如,仅用ESPRESIF SDK)或C++与ARDUNO IDE一起工作时,每次代码更改时,都会替换整个固件。这包括TCP/IP协议栈、WiFi管理、控制PHY/MAC接口的逻辑、迷你操作系统,以及使ESP8266工作的大量其他位。即使您的代码看起来只是一个简单的“闪烁”序列,也会有大量代码在幕后运行以使其成为可能,从而导致较大的草图尺寸

通常,对草图代码的每次更改都会生成为ESP8266创建可引导、可运行二进制文件所需的所有内容的完整副本。这就是导致280KiB文件的原因。由于代码的每个副本都包含系统级代码的最新副本(或至少是当时IDE中的任何内容),因此没有单独的更新过程-每次上载草图时,系统代码也会更新


此外,Espressif SDK上的Arduino抽象会产生一些额外的开销,导致产生更大的二进制大小。

这是完全正常的-当为解释语言(如ESP/NodeMCU的Lua)编写代码时,您只需上传相对较小的文本文件,因为运行它所需的代码已经在芯片上,并且不会改变

但是,当你开始使用C语言编译(例如,仅用ESPRESIF SDK)或C++与ARDUNO IDE一起工作时,每次代码更改时,都会替换整个固件。这包括TCP/IP协议栈、WiFi管理、控制PHY/MAC接口的逻辑、迷你操作系统,以及使ESP8266工作的大量其他位。即使您的代码看起来只是一个简单的“闪烁”序列,也会有大量代码在幕后运行以使其成为可能,从而导致较大的草图尺寸

通常,对草图代码的每次更改都会生成为ESP8266创建可引导、可运行二进制文件所需的所有内容的完整副本。这就是导致280KiB文件的原因。由于代码的每个副本都包含系统级代码的最新副本(或至少是当时IDE中的任何内容),因此没有单独的更新过程-每次上载草图时,系统代码也会更新


此外,Espressif SDK上的Arduino抽象还有一些额外的开销,导致产生更大的二进制大小。

基本上,您构建固件,它是您自己的代码和许多其他代码/库的组合。 所有其他部分都是Arduino ESP8266核心的一部分,它确实得到了更新(它位于此处:)。它本身包含Espressif SDK,它还可以获得更新()。
与NodeMCU一样,您可以获得定期更新,但它们是核心,将它们放入固件的唯一方法是重新编译草图。

基本上,您可以构建固件,它是您自己的代码和许多其他代码/库的组合。 所有其他部分都是Arduino ESP8266核心的一部分,它确实得到了更新(它位于此处:)。它本身包含Espressif SDK,它还可以获得更新()。
像NodeMCU一样,您可以定期更新,但它们是核心,将它们放入固件的唯一方法是重新编译草图。

谢谢你们!这正是我所期待的。我唯一不确定的是,当Arduino IDE中的Arduino董事会经理说它是最新的时,如何更新Arduino ESP8266 core/Espressif SDK。我是否必须下载GIT存储库并将其导入Arduino IDE,如中所述?那我怎么知道我用的是哪个版本?还有其他的“夜间”分支吗?因为我实际上没有使用Arduino IDE,我不是100%确定,但看看core()的安装说明,我希望“Board Manager”在开发人员发布新版本后通知您,然后允许您安装它们。您只需更新核心,从事此项工作的优秀开发人员将更新SDK等,其中使用的SDK。谢谢大家!这正是我所期待的。我唯一不确定的是,当Arduino IDE中的Arduino董事会经理说它是最新的时,如何更新Arduino ESP8266 core/Espressif SDK。我是否必须下载GIT存储库并将其导入Arduino IDE,如中所述?那我怎么知道我用的是哪个版本?还有其他的“夜间”分支吗?因为我实际上没有使用Arduino IDE,我不是100%确定,但看看core()的安装说明,我希望“Board Manager”在开发人员发布新版本后通知您,然后允许您安装它们。你只需要更新核心,从事这项工作的优秀开发人员将更新SDK等等,它在其中使用。