ソフトウェア

BGM220S BLEモジュール bootloaderとプロジェクトの関係

更新日:

Silicon Labs社 BGM220SはBLEモジュールです。Client or Serverの何れのRollも演ずることが出来、小型な点でも使い勝手は良さそうです。プロジェクトもGUIライクな設定画面で進めていけるのは明瞭な点もあります。
私の様なアナログな設計者は、全て自動で生成される昨今のIDEよりは、自分で1から10まで掌握しつつ、環境構築する方が馴染みやすいのですが、今の時代には合っているのだと思います。
プロジェクト一つ生成するにも分からない点が出てくると思いますので、こちらで気づいた点を綴ってみましょう。

Sample projectを動かしてみる

まず、事前準備として、Silicon Labsが提供している「Simplicity Studio」をインストールします。
動作確認をする上で、何かあった方が良いので以下を用意します(ハード面はこれに限らず都合に合わせてください)

 ・WSTKボード×1セット
 ・BGM220Sラジオボード×1台
 ・iphone or Android端末×1台(EFR_Connectアプリをインストールしておく)


Simplicity Studioを起動し、新規プロジェクト作成を行います。
この時、Silicon Labs project Wizardを使う方が分かりやすいです。
上述の事前用意したハードを選択設定して、SDKは「Gecko SDK Suite: Bluetooth 3.1.2, Bluetooth Mesh 2.0.2, MCU 6.0.2.0, Micrium OS Kernel, Platform」としています。SDKについては、各種バージョンが更新されていくと思われ、上記値は2021/5月時点のものです。

左側のTechology Type「Bluetooth(10)」にチェックを入れると、右側にサンプルプロジェクトが出てきます。
とりあえず、動作確認程度で見てみたいので「Bluetooth - SOC Thermometer」を選択してproject作成します。

Bluetooth - SOC Thermometer


選択したプロジェクトの動作としては、環境温度測定をした結果がBLE通信で送られてくるものです。
Simplicity Studioにプロジェクトが追加されたら「Build」します。
後は、事前用意したハードにビルド後のバイナリをダウンロードして、スマホなどの端末からBLE接続にて、温度データが確認出来る様な段取りになります。
メーカーで用意されたSample projectの動作確認は非常に簡単に実施する事が可能なので、悩んでいるぐらいなら動かした方が良いです。さて、本題は次からです。

user custom projectを用意して独自処理を設計する

Sample projectが動作するまでは、端的に言えば準備物を揃えて、設定するだけで使える様な簡易さです。
然し、開発や設計を予定されている方は、独自の処理をプログラムしたいと考えている事だと思われ、user独自のprojectはどの様に生成すれば良いものか気になります。

上述のSample projectを生成した要領で、新規projectをつくります。
project名はご自身の開発に関わる名前にしておいてください。
右側に表示された一覧から、「Bluetooth - SOC Empty」を選択してproject生成します。
Client or Serverの何れで開発したいのかは、それぞれ処理として設計される必要がありますが手順は同じです。
※Network絡みやBeaconなどは、選択projectが変わりますので注意ください。

Bluetooth - SOC -Empty

生成されたProjectに対して、自身が導入したい制御処理をプログラムするだけになります。
そして、「ビルド」->「ダウンロード」にて、実機でのオンチップデバッグが可能となります。

BGM220S 動作しない!となる前に知っておきたいこと

上記内容の通り進めたけれど「動作しない!」と言ったシチュエーションが出てきます。
Sample projectで動作確認をした後、user projectを生成した方は問題なく開発が進行出来ると思われます。
Sample projectは割愛して、user project生成から進めた方は動作しないケースに陥る可能性があります。

ビルド後、ダウンロードも正常に完了し、さてさてオンチップデバッグというところで、
bootしていない・・・という状況に直面する可能性があります。
ソースコードの該当行が表示されず、disassemble表示が進んでいくものの、userアプリ処理にはたどり着かない。

これは、BLEのbootloaderがダウンロードされていない事から生じている症状です。
つまり、BLEのbootloaderは、Bluetooth - SOC Emptyで生成したprojectには含まれておらず、
別途、用意する必要があります。
また、メーカーが用意してくれているSample projectには、BLEのbootloaderが含まれており、別枠で用意する必要はありません。そして、一度BLEのbootloaderをダウンロードすると、Flash領域を全て消去しない限り、対象CPU内に残ります。

それだけに、ラジオボードを新しくすると、今まで動作していたprojectが動作しない・・・何てこともあり得ます。

そんな状況にならない為に、先ほどと同じ要領で、bootloader用に新たなprojectを生成します。
左側は「Bootloader(6)」を選択して頂き、右側の「Internal Storage Bootloader・・・」を選択して生成します。

Internal Storage Bootloader


生成されたprojectにて、以下の青丸箇所にある「Generate」をクリックします。
これにより、Binariesが生成されますので、後はBinariesをターゲットボードへダウンロードするだけです。

Generate

これにより、Bluetooth - SOC Emptyをベースにしてuser projectをデバッグしようとした際、正常boot後にuser処理に遷移していくようになります。

スポンサーリンク

スポンサーリンク

-ソフトウェア

Copyright© 江藤良樹の仕事は物づくり , 2021 All Rights Reserved Powered by STINGER.