しばらくAzure Sphereを触っていなかったら、SDKバージョンが結構上がったので、今日はサンプルプログラムを一通り確認することにします。
Visual Studio Extension for Azure Sphere Preview
Visual Studioに追加されたコレ。
コレが入っていると、Visual Studioの新規プロジェクトにAzure Sphereが追加されます。
Azure Sphereを選択すると、Azure Sphere向けのプロジェクトテンプレートがズラズラ~っと表示され、、、ていました。以前は。
どこかのバージョンから、サンプルプログラムがプロジェクトテンプレートからgithubによる配布に変更になったため、プロジェクトテンプレートには僅か2個しか出ません。(以前はこんな感じだった。)
一応、両方確認しますか。
Azure Sphere MT3620 Blank
Azure Sphere MT3620 Blankでプロジェクトを新規作成すると、HighLevelCoreとRealTimeCoreのフォルダが出来上がります。
良く見ると、CMakeLists.txt。
(あぁ、CMakeの波がここまで及んでいるんですね... ちょっと苦手。)
HighLevelCore
HighLevelCoreのmain.cを覗くと、1秒間隔でログ出力するコードでした。
「tick」と「tock」を書いているところ、なんだか作者の人間味を感じますね。
RealTimeCore
一方、RealTimeCoreのmain.cは、、、
OSレスのベアメタル!!
ペリフェラルのアドレスやベクターテーブルがベタ書きで、マニア心をくすぐる感じですw
ざっくり斜め読みすると、UARTと(ウェイトするための)タイマーを使う関数を用意して、HighLevelCoreと同様、1秒間隔でUART出力するコードでした。
Azure Sphere Blink
今度は、Azure Sphere Blinkを見てみます。
フォルダが無い。
スタートアップを見てみると、
HighLevelCoreだけのようです。
main.cは、
HighLevelCoreのコードですね。
1秒間隔でLEDを点灯、消灯するコードでした。
まとめ
Visual Studioのプロジェクトテンプレートは、
- Azure Sphere Blinkは、
- HighLevelCoreのみ
- Lチカ
- Azure Sphere MT3620 Blankは、
- HighLevelCore+RealTimeCore
- ログ出力とUART出力
でした。
おしまい。