flink: 表示に使えるメモリが足りない問題
無線スタックがどんなに節約しても16KiB程度は喰うのでそのぶんだけGUIに割けるメモリが減ることに。。元々システム全体でRAMが48KiBしかなく、通信用のバッファやスタック等には16KiBは確保したいので、残りの16KiBをGUIが使うことになる。
で、フォントが 8x8 dots. x256 = 16Kb = 2KiB は占めてこれは動的にロードできないので、残り12KiB。。これにキャラクターや他の描画、システムメッセージのようなアセットを詰め込む必要がある。
Flashの消費電力
モジュールに搭載されているのは Puya の P25Q11U
。末尾の U
は低電圧品で、Low power readで1mA(Typ.)となる。通常Readは2mA(Typ.)。
アニメーションの1コマごとに読むといったやりかたは厳しいものがありそうだ。(無線をOnにした場合の消費電力が3mA程度なのでそれに匹敵する)
フレームバッファサイズ
液晶はSPI液晶を採用している。このため、通常のフレームバッファベースのアーキテクチャであっても、2面を保持する必要はない。つまり、一度画面に転送したら転送元は書き換えてしまって良い。
液晶は168x144 dots = 24Kb = 3024 bytes。当然全画面をフレームバッファとして保持するわけにはいかない(フォントよりも大きなバッファになってしまう)。このため、1 〜 10 ライン程度をバッファとして取り、それをDMAを使って転送しつつリアルタイムでレンダリングする、といった配慮が必要になる。
CPUのactiveでも1mA程度の電流が必要になるが、これは必要経費として割り切るしかないだろう。
アドレッシングは長辺の各ラインを都度指定する形となっている。このため、ラインバッファも縦アドレスやコマンドの領域を空けておく必要がある。