Azure Sphere MT3620 ハンズオンに行ってきた。
最初は、Azure Sphereとは何なのかという説明。
・Azure Sphereというのはマイコンのことではなく、ソリューション全体の名前。
・マイコンチップとOSとクラウドから成り立っている。
・クラウドでOSのアップデートやアプリのアップデートなどを受け持つ。Windows UpdateやMSのストアみたいな感じ。
・マイコンボードは、ハード的にセキュアな仕組みをシリコン内に仕込んでる特別なARMのマイコンチップを使っている。ネットワーク接続のWiFi機能も内蔵している。
・いまのところAzure SphereのマイコンはMediaTekのMT3620しか出ていない。
・MT3620のチップには、ARM Cortex AとARM Cortex Mが内蔵されていて、ARM Cortex AではLinuxをベースにしたセキュアなOSが動いており、ARM Cortex Mの側はリアルタイム性の高い組み込み的なマイコンの処理を担当する仕組み(になる予定)。
・まだ現在のSDKではARM Cortex Mの側のソフトは作ったり書き込んだりができない。ARM Cortex A側で動くアプリのみ作ることができる。
・ARM Cortex A側からもLEDの点滅をしたりとかのI/O処理をさせることは可能。
・ARM Cortex A側とARM Cortex M側とのデータのやりとり(通信)はどうするのかは、はっきり分かっていない。mailboxという名前の仕組みがあるのがそれっぽいらしいのだが、仕様はまだ不明だ。
・そういう意味では現在のSDKは完成度はまだまだな感じ。(50%くらいだと自分は思った)
次にハンズオンで、LEDの点滅とか試してみた。
ハンズオンのほうの手順の資料とかは無くて、ここの手順を参照した。
→ Azure Sphere で Lチカ !できらぁ!!
開発環境のPCとMT3620の両方がネットワークに繋がっていないと開発ができないので注意が必要だ。
無事に動かすことができた。
—
追記
RaspberryPi + Windows IoT Coreという組み合わせとは全然別物だった。(MSのOSなので勝手にWindows IoT Coreだと思い込んでいた。)
ARM11+ARM7というのがワンチップになったのが使われていたゲーム機があり、野良開発環境を使って自分でソフトを作ってみたことがあるのだが、そのときはARM11とARM7との間でのデータのやりとりはメモリに空いた窓のような限られたメモリ空間を互いにシェアされていて、そこを読み書きしてデータのやりとりをしていた。
なので、このAzure SphereのARM CPU間も似たような仕組みで実現するのではないかと思った。その仕組みにどういう名前がつけられるのかは分からないが、mailboxという名前はちょっと紛らわしい気がする。