###前提・実現したいこと
ESP8266(ArduinoCore)でE8266WebServer.hをIncludeしてWebサーバを起動しています。
同時に、WiFiClientSecure.hをIncludeしてSSLクライアントを同時に動かそうとしています。
同時の起動はメモリ(RAM)不足のため、Exception (29)が発生してセグメンテーションフォルトしています。
そのため、E8266WebServerを一時的にSTOP(server.stop)でダウンさせているのですが、メモリが解放されるように見えません。
WebサーバをSTOPさせ、空いたメモリで時にSSLクライアントを実行し、再度、Webサーバを起動したいと思っています。
E8266WebServerで使用したメモリ解放の仕方を教えて欲しいです。
ESP8266WebServer server(80);で宣言した領域を小さく代入できないかが知りたいです。
###発生している問題・エラーメッセージ
###該当のソースコード
全部はかけないので抜粋ですみませんが、以下のような感じです。 (各々では動いているので、コード自体は問題ないと思います。) #include <ESP8266WebServer.h> #include <WiFiClientSecure.h> ESP8266WebServer server(80); void setup() { server.on("/", HTTP_GET, html_loginGet); server.on("/", HTTP_POST, html_loginPost); server.begin(); Serial.println("httpServerUp HTTP Server Start! "); } void loop() { server.close(); server.stop(); WiFiClientSecure sslClient; String stringResponse = ""; sslClient.connect(server, 443); <-ここでセグメンテーションフォルト ・・・ }
###試したこと
WiFiClientSecureではなく、WiFiClientでは正常に起動できました。
WiFiClientSecureはメモリを多く消費するようです。
(メモリの消費を抑えるやり方があれば、そちらでも教えて頂けると幸いです。)
###補足情報(言語/FW/ツール等のバージョンなど)
全て最新を利用していると思います。
ArduinoIDEは1.8.1
ESP8266はAE-ESP-WROOM-02を利用しています。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。