Spresense SDKのコンフィグレーションを使いこなすためのTIPSです。
現在のコンフィグ設定を保存する
menuconfig等でコンフィグ設定を変更した結果は、spresense/nuttx/.config
ファイルに反映されます。いま現在のコンフィグ設定を保存しておきたい場合、mkdefconfig.py
ツールを使用します。このツールは Kconfig システムのmake savedefconfig
相当の処理を行ってくれます。
// カレントディレクトリは spresense/sdk にいる前提
$ ./tools/mkdefconfig.py hoge
mkdefconfig.py
の引数にhoge
と指定すると、sdk/configs/hoge/defconfig
というファイルを作成します。このファイルはsdk/configs/default/defconfig
に書かれている情報を含むフルのコンフィグファイルになります。
別のコンフィグレーションを実行した後や、make distclean
を実行した後に、さきほど保存しておいたコンフィグ設定を復元するときは次のように実行します。
$ ./tools/config.py hoge
現在のコンフィグ設定を差分のdefconfigファイルとして保存する
$ ./tools/mkdefconfig.py examples/fuga
mkdefconfig.py
の引数にexamples/fuga
のように指定すると、sdk/configs/examples/fuga/defconfig
というファイルを作成します。このファイルは、sdk/configs/default/defconfig
からの差分のコンフィグ情報だけが含まれたファイルになります。
さきほどと同様に、保存したコンフィグ情報を復元するときは次のように実行します。
$ ./tools/config.py examples/fuga
現在のコンフィグ設定に別のdefconfigを追加したい場合
さきほどの手順の応用編で、現在のコンフィグ設定を一時的に保存しておくことで、別のdefconfigを簡単に追加できるようになります。
例えば、いま現在のコンフィグ設定をキープしたまま、SDカードを有効にしたり、gpio
コマンドを有効にしたり、他のサンプルexamples/alarm
を追加したい場合、
$ ./tools/mkdefconfig.py -y hoge
$ ./tools/config.py hoge device/sdcard feature/gpiotool examples/alarm
mkdefconfig.py
の-y
オプションは既存の設定ファイルを問答無用に上書きするオプションです。既存のファイルが存在していて、このオプションの指定が無いときは、上書きするかどうかを尋ねてきます。-y
オプションを指定することで強制的に上書きします。