!esp8266game

>>
text       data     bss     dec     hex filename
227180     2372   62232  291784   473c8 .pioenvs\esp_wroom_02\firmware.elf
<<

|text|227.1K|flash
|data|2.3K|flash + ram?
|bss|62.2K|variable
|dec|291.8K|total?

つまり
|place|now|max|memo
|flash|229.4K|4MB|余裕
|ram|64.5K|80K|VRAMとして使ってるから工夫すれば減らせそう

VRAM 16bit * 128 * 160 = 40960byte = 40.960Kbyte
パレットにすればかなり抑えられそう。

それでも16Kくらい余っている。Arduinoの時はそもそもが2Kしかなかったからすごい進歩だ。
そして128*64=8192bit=1024byte=1KをVRAMにしていたわけで残りは1Kだった。



!SSL通信できない

できないとき
>>
text       data     bss     dec     hex filename
280806     8728   62728  352262   56006 .pioenvs\esp_wroom_02\firmware.elf
<<

できるとき

>>
text       data     bss     dec     hex filename
276630     8544   29936  315110   4cee6 .pioenvs\esp_wroom_02\firmware.elf
<<

bssが多すぎるとだめか?RAMが足りないという説

RAMをケチってみる

>>
text       data     bss     dec     hex filename
284614     8784   29968  323366   4ef26 .pioenvs\esp_wroom_02\firmware.elf
<<

できた

やはりRAMらしい

>>
text       data     bss     dec     hex filename
282838     8792   46344  337974   52836 .pioenvs\esp_wroom_02\firmware.elf
<<


これでもできた httpsでつなぐときはBSSに注意する必要があるのだな

{{embed https://twitter.com/elect_gombe/status/846297562684411905}}
とのこと
できないときは data:8728, bss:62738で、合計71466, 80Kからすると9K程度空いているということで、確かに17Kは確保できていない。

メモリをつかう大半の理由は画面のダブルバッファリングだから、通信中は解放できるような仕組みにしても良いかもしれない。通信中は画面を動かすということはできなくなるが、そもそもCPUが忙しいので、画面は止めておくのがよさそう


!参考
- Adafruit GFX Graphics Libraryで行間を調節する https://github.com/adafruit/Adafruit-GFX-Library/blob/master/gfxfont.h
- いい感じの小さなフォント http://blog.mclemon.io/hacking-a-tiny-new-font-for-the-ssd1306-128x64-oled-screen
- 贅沢にArduinoのStringを使う https://www.arduino.cc/en/Reference/StringConstructor
- WifiClientSecureというのを使った http://eleclog.quitsq.com/2015/11/esp8266-https.html
-- HTTPClientでもTLS接続できる?
- wikipediaのAPI http://stackoverflow.com/questions/8555320/is-there-a-clean-wikipedia-api-just-for-retrieve-content-summary
- Adafruit GFX Graphics Libraryフォント周りhttps://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts
- Adafruit GFX Graphics Library 詳細 https://cdn-learn.adafruit.com/downloads/pdf/adafruit-gfx-graphics-library.pdf
- platformio ESP8266 http://docs.platformio.org/en/latest/platforms/espressif8266.html
- ESP8266をCUIで開発する http://qiita.com/hotchpotch/items/81162efb86d12b74c41a
- ESP8266 RAM周り http://tech.scargill.net/esp8266-ram/
- ESP8266用 ILI9163ライブラリ https://github.com/joaquimorg/ESP8266/tree/master/ILI9163



5643382
wiki
1490619841