首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodemcu/ESP8266使用Arduino IDE - Firmware?

nodemcu/ESP8266使用Arduino IDE - Firmware?
EN

Stack Overflow用户
提问于 2016-07-11 18:06:36
回答 2查看 3K关注 0票数 1

我想我对nodemcu/ESP8266在使用Arduino IDE和/或visual micro (用于MS Visual Studio)时有一个基本的理解问题。

每次我上传一个显然是用C语言编写的程序/草图时,它都会编译并上传一个大约280kb的二进制文件,即使它只是一个简单的“眨眼”示例。

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

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

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-07-12 16:38:58

基本上,构建固件,它是您自己的代码和许多其他代码/库的组合。所有其他部分都是Arduino ESP8266核心的一部分,它确实得到了更新(位于这里:https://github.com/esp8266/Arduino)。它本身包含Espressif SDK,也可以获得更新(https://github.com/esp8266/Arduino/tree/master/tools/sdk)。像NodeMCU一样,你可以定期更新,但它们是核心的,把它们放到你的固件中的唯一方法是重新编译你的草图。

票数 3
EN

Stack Overflow用户

发布于 2016-07-12 06:17:33

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

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38304224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档