カスタムボードの追加
nRF SDKではプロジェクトオプションでBOARD_CUSTOMと指定してcustom_board.hに設定を記述しますが、当然nRF connect SDKにもあります、というかないと困ります。仕事で基板を作っているのであれば評価ボードを使って実装するなんてまずありませんからね・・・。
なお、情報源はこちらです(英語)
カスタムボード情報を作る
前述のようにnRF SDKではプロジェクト内部にcustom_board.hがあればよかったのですが、nRF connect SDKではSDKとしてボード情報が必要になります。
既存ボードファイルのコピー
上記ページにも記載があるように自分のプロジェクトに一番近いボード情報をOS上でコピーします。
でもって名前を適当に変えてみます。ちなみにこのフォルダー名がそのままボード名になります。
ここで重要なルールが二つあります。まず一つは、ボードファイルはこのフォルダーに置く必要があるということ。Gitで管理しようと思って違うフォルダーに持っていくとコンフィギュレーションに失敗します。なんてこったい、こんなのGitで管理するのめんどくさいじゃないか!
もう一つはベンダー名を識別するための識別子をフォルダー名に入れる必要があるということ。標準でSDKに用意されているボード名にはNucleoやらnRF52840やらプロダクト・ベンダーが分かる名前が入っています。SDKを使うユーザーが使い易い(分かり易い)ようにそうしていると思っていたのですが、どうやらこれは使用するチップを識別するための識別子にもなっており、識別子がないとコンフィギュレーションが通りません。なお、識別子自体はフォルダー名のどこに含まれていてもかまいません。参考までにNordicの識別子はどうもnRF52(or nRF51 or nRF53 or nRF91)のようです。
フォルダーのパスは変更しない
ボード名には必ず識別子を入れる
さらにそのフォルダ下にある関連ファイルの名前をフォルダー名と同じ名前に変更します。
ここまでで一旦ファイル生成と名称変更は完了です。
CONFIG(#define)の変更
続いてファイルの中身に手を加えます。ボードの識別子になっているCONFIG_BOARD_NRF52840DK_NRF52840の名前を変更します。
GREPで検索してみると全部で4ヶ所存在しているみたいなのでこれを全部先ほどのボード名と同じ識別子にします。
全部書き換えていなくなりました。
さて、ここまでできたら登録完了です。Segger Embedded Studioに移ってOpen nRF connect SDK Projectでプロジェクトを開く画面を見てみると・・・。
ちゃんといますね。これで登録は完成です。
I/Oなどの機能を変更するにはDTSファイルの中身を変更します。これがまた非常にやっかいなのですが・・・。