貧民的プログラミング

リンカの吐いたマップファイルをチェックしてて驚愕した。RAMが256バイトしかないマイコンなのに、開発環境提供のスタートアップルーチンが120バイトもRAMを占領するってどういうことよ!? 希少なRAMを半分近く使っちゃうとかありえないだろ!?  プログラム本体は、静的変数50バイト、最大スタック50バイトぐらいなのに。


調べてみると、ヒープやら atexit関数やらのために大胆にRAMが確保されてたようだ。そんなもん使わないので、ばっさり削ってスタートアップルーチンをアセンブルし直した。


なんか、パソコンのアプリとは6ケタぐらいメモリの桁が違う話だなぁ。文字通り、ミリオネア(百万長者)の逆の貧民的プログラミング。