-1

我们在Platfromio IDE上使用 ESP8266 开发了一个物联网门禁系统。您可以在esp-rfid GitHub 存储库中查看我们所有的作品。我们想在我们的系统上使用 ota 更新,但代码几乎覆盖了一半的内存,有时甚至超过一半。如果代码覆盖的内存大于一半,我们就不能使用 ota update。我们如何减少代码大小?

感谢您的回答。

您可以从那里找到代码。

构建结果:

DATA: [==== ] 43.4% (used 35592 bytes from 81920 bytes) PROGRAM: [===== ] 48.6% (used 507732 bytes from 1044464 bytes)

4

2 回答 2

2

如果代码覆盖的内存大于一半,我们就不能使用 ota update。

你当然可以。更新到一个占用很少内存的非常小的程序,其唯一的工作就是对实际程序的下一个版本进行另一次更新。

我们如何减少代码大小?

如果对您的代码一无所知,这很难说。

于 2018-08-07T14:14:14.717 回答
0

无需查看源代码,我就可以告诉您,某些 C++ 功能在内存消耗方面比其他功能更便宜,例如:命名空间、类(尤其是通用类)很便宜,而异常处理则非常昂贵。

一些技巧:

  • 生成代码时,请确保剥离所有调试符号
  • 使用泛型,因为只有您正在使用的代码在您的可执行文件中被转换为二进制文件,而不是整个库
  • 检查编译器/链接器选项以了解如何进一步减少它
于 2018-08-07T14:21:33.337 回答