Baumkuchen’s Workshop

バイオリンと電子工作、DIY、ジョギングなど。

作りかけの自作CNCを完成させます#6-コントロールソフト4

コントローラソフトの続きです。Grblのコードの移植で問題となったメモリ容量不足をどう解決するかを考えます。

baum-kuchen.hatenablog.com

打開策#1

どの案を取るにしろ、一旦全部のソースコードを取り込んでビルドしてみます。ということです、案1の仮版を試行。目的は単にビルドするだけですので作動確認はしません。

まず、MLAのソースコードを一旦全部外してビルドです。例によって、リンク切れなどは、全てundefin.c/.hで対処します。

この状態でビルドすると、メモリ容量は57%の消費です。

Memory Summary:
    Program space        used  24ACh (  9388) of  4000h bytes   ( 57.3%)
    Data space           used   1A9h (   425) of   300h bytes   ( 55.3%)

次に、Grblのソースコードを全部、組み込んで行きます。system.cを組み込み込むと、cpu_map_pic18f14k50のIO定義のいくつかをAtmega328のものから、PIC用に変えてあげないと未定義でエラーになります。今回は、動作確認をする訳ではなにので、適当でかまわないですが、一応対応がとれそうなIO定義に変えることにしました(DDRD→TRISCなど)

この様に、少しずつ取り込むソースコードを増やしていった結果、ついにビルド出来なくなりました。限界の様です。

Memory Summary:
    Program space        used  3C68h ( 15464) of  4000h bytes   ( 94.4%)
    Data space           used   1D6h (   470) of   300h bytes   ( 61.2%)

Grbleのコアとも言える、次のソースファイルを組み込む前で、メモリ容量が94%となってしましい、どれ1つを組み込んでもビルドが通りませんでした。

  • gcode.c(GCode解釈)
  • planner.c(GCode解釈結果からstep動作に分解)
  • stepper.c(ドライバへのコマンド生成、割り込み)
  • settings(設定)
  • eeprom.c(設定の保存用)

と言う事で、打開策案1は、このままでは採用不可となりました。

今後について

次は、打開策案2の方向で考えてみることにします。

今回も短いですがこれで終わりです。御覧いただきありがとうございました。今後も、試行錯誤が続くとは思いますが、よろしかったらお付き合い願います。


続きです

baum-kuchen.hatenablog.com