我有一个相当大的 Arduino 项目(在 eclipse 中)使用 Serial.print("some string text") 命令进行大量调试消息,以便我可以一路调试。
我注意到的一件事是我在项目中可以拥有多少这样的限制。如果我放太多,程序会在非常奇怪的地方停止。即:通常在我最新添加的打印命令应该执行之前很久。
我的项目 .hex 文件目前大约 20k。Arduino Uno 限制在 30kb 左右,对吧?所以它不应该太大。
所以我觉得实际的问题可能是这些串行命令正在填满我的 sram。这只有 2kb。我正在使用很多库。
命令 Serial.print("some string text") 是否占用 SRAM?gcc 肯定会将这些字符串 cnstants 放在程序空间中吗?但也许他们不是?
或者是别的什么?我有另一种理论,即某处有一个 serial.print 缓冲区,我可能只是用太多消息填充它。