あーさん日記

https://akkera102.sakura.ne.jp/gbadev/ の中の人

Arduboy 実験1

環境構築を済ませてarduboyのサンプルも動作成功。
最初の一歩はスムーズでした。qiita.com


次に調べたことはmain関数です。
ardinoはsetup, loop関数の編集は許されているのに
main関数が見当たりません。
プログラムの基本


ようするにデフォルトのプロジェクトがあらかじめ用意されていて、
使う側はそのプロジェクトの一部分の編集許可をもらっている、
という意味みたいです。


そのプロジェクトのパスは以下にあります。

C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino

main.cpp内にmain関数がありました。


空のsetup, loop関数の状態でコンパイルするとどうなるか。

フラッシュメモリ 最大28,672バイト スケッチ3,916バイト(13%)
RAM 最大2,560バイト グローバル変数が148バイト(5%)、ローカル変数2,412バイト使用可能

main関数を無限ループだけしたものを用意すると

フラッシュメモリ 最大28,672バイト スケッチ202バイト(0%)
RAM 最大2,560バイト グローバル変数が0バイト(0%)、ローカル変数2,560バイト使用可能

となります。
使っていない変数や関数を見つけるとコンパイラは消費しないように
抑えているみたいですね。ただフラッシュメモリの202バイトは
ちょっと大きいので割り込みベクタテーブル分も含まれているのか、
ヘッダが何かあるのかもうちょっと調べてみる必要があるようです。


とりあえずデータシートにブートローダ―の領域を見つけたので
別途あるのかな?とか、よくわからない気持ちで
先のループだけのROMを焼いてみました。


結果、どうなったかというと見事に破壊。(^^;
usbを挿しなおしても通信せず何も反応しなくなりました。


リセットは以下のようにショートさせて復帰させました。
VCC, RST, MISO, MOSI, CLK, GNDと順番にあって、RSTとGNDを繋げます。
How to Reset the Dev Kit - Guides - Arduboy Community


次回はCLIからコンパイルできるか調べてみようと思います。