前回が少し長めの記事だったので、今回は小ネタです。
ATtiny と STM32 の開発環境の設定(Debug ・ release)を切り替える方法です。
以前、ATtiny で「I2C スキャナ」を作った時に「Microchip Studio」を使ってプログラムをビルドする時の設定で分からないことがありました。

「I2C スキャナ」の製作記事は、こちらからどうぞ。
具体的には、ネットで見た方法ではプログラムをビルドすると、出来上がったバイナリは「Debug」フォルダ内に出来ていました。
そして、「USBasp」を使って「Microchip Studio」から ATtiny に書き込む環境設定は、
「-p t44 -c usbasp -P usb -U flash:w:”$(ProjectDir)Debug\$(TargetName).hex”:i」
とするように書かれていましたが、私の環境では(何も設定を変えていないのに)バイナリをビルドすると、プログラムは「Release」フォルダ内に出来上がります。
色々とやり方を調べたのですが、その時は「Debug」フォルダ内にビルドする方法が分かりませんでした。
しかたがないので、書き込み設定を次のように書き換えて使っていました。
「-p t44 -c usbasp -P usb -U flash:w:”$(ProjectDir)Release\$(TargetName).hex”:i」
問題の解決
現在、STM32 系の MCU を使って STM32CubeIDE のプログラム環境で GPSDO を組み立てていますが、ビルドすると 140 kb 程度のはずのバイナリのサイズが 940 kb 位になってしまいます。(小型高性能な ji1udd さん作の GPSDO のGitHub のファイルは、以下のリンクをご覧ください。)
この GPSDO の作者の ji1udd さんに「バイナリファイルが大きい事」を質問してみたら、快く図解付きで回答して頂きました。
(後で紹介する図は、ji1udd さんから頂いた図とは異なります。)
「Debug 用の ビルドを実行したのだと思います。
トンカチアイコンのメニューから release を選択してからビルド実行します。
release フォルダの中に .elf ファイルが生成されるのでそれを使ってください。」
教えて頂いたとおりにやってみたら、簡単な設定でバイナリのサイズが正常になりました。
「そうか、通常使用のバイナリ(release)ではなく、デバック用の色々と足されたバイナリ(Debug)をビルドしていたんだ。」
納得しました。
と、同時に何かを思い出しました。
「Debug と release ・・・」
「あ! ATtiny で「I2C スキャナ」の製作でなんかあったな。」
自分のブログの検索機能で「Debug」を検索して思い出しました。
Microchip Studio の設定
Microchip Studio で Debug と release の切り替え方です。
「Build」→「Configuration Manager」を選択します。

「Configuration Manager」の窓が開きます。
「Active Solution Configuration:」から、 Debug と release の好きな方を選択します。

STM32CubeIDE の設定
Debug と release の設定
STM32CubeIDE では、選択方法にアイコンからの選択とメニューからの選択の2種類があります。
1 トンカチ・アイコンで選択する方法です。(アイコンの位置が分かっていれば簡単です。)
トンカチ・アイコンの横の矢印を押すと Debug と release が選べます。

2 メニューから選択する方法です。
「Project」→「Build Configurations」→「Set Active」内で Debug と release が選べます。

浮動小数点用のライブラリをリンクする設定
Debug と release の選択以外に、GPSDO のファームウエアをビルドする時に必須の設定がありました。
忘れないようにメモしておきます。
浮動小数点用のライブラリをリンクする設定です。
この設定を忘れると、GPSDO の表面にある OLED に周波数が表示されなくなってしまいます。
「Project」→「Properties」を押します。

Properties 窓が開きます。
「use float with printf from newlib-nano (-u _printf_float)」の左横のチェックを入れます。
「Apply and Close」を押して保存します。

コメント