2019/12/30追記
マイクロソフトからコンタクトがありまして、情報追加しました。(一番最後の結果のとこに。)
前記事。
RTAppは同時に2つまでしか実行(というかデプロイ)できませんでしたが、HLAppはどうだろう?
実行するHLApp
MT3620開発ボードにいくつかLEDが載っているので、別々のLEDを点滅するHLAppを同時に動かしてみようと思います。
サンプルコードは、、、
Visual Studioで生成できるAzure Sphere Blankを使うことにしましょう。
まずは、ササッとプロジェクト新規作成。
GPIO9に出力するコードが生成されています。
int fd = GPIO_OpenAsOutput(9, GPIO_OutputMode_PushPull, GPIO_Value_High);
はて、GPIO9ってどこ?
Seeedのwikiには説明が見当たらず、、、
Azure Sphereのdocsに書かれていました。
GPIO9は、1つ目のLEDの緑色のようです。
この表から、2つ目、3つ目のLEDの緑色は、GPIO16、GPIO19なので、app_manifest.jsonに追加して、
main.cのGPIO_OpenAsOutput()の番号とapp_manifest.jsonのComponentIdを変えながら、ビルド、.imagepackageコピーして、3つの.imagepackageを作りました。
ComponentId | LED | ファイル名 |
---|---|---|
a00bbe0c-906a-4841-8bdd-2cbd4d0c12bd | LED1の緑色 | AzureSphereBlink1-1.imagepackage |
a00bbe0c-906a-4841-8bdd-2cbd4d0c12be | LED2の緑色 | AzureSphereBlink1-2.imagepackage |
a00bbe0c-906a-4841-8bdd-2cbd4d0c12bf | LED3の緑色 | AzureSphereBlink1-3.imagepackage |
実行!
azsphere device sideload delete
で削除してから、azsphere device sideload deploy --imagepackage
でデプロイ、実行すると、、、
あれれ、2つ目でエラー。
app_manifest.jsonのCapabilitiesをまとめて書いてしまったのがいけなかったみたい。
実行するHLApp作り直し
CapabilitiesのGpioを1つずつにして、.imagepackageを作り直します。
実行!(2回目)
さあ、どうだろう?
動いた♪
そういえば、HLAppは1個しか動かないと書かれていたような!?
そういえば、Azure SphereのdocsにHLAppは1つしか動かないと書かれていたような覚えが、、、(下リンクのP21)
www.slideshare.net
「Only one A7 application runs on the device at a time.」ってありますね。
元ネタのdocsを探してみると、、、
うーむ、見つからず。
結果
2019/12/30追記
マイクロソフトからコンタクトがありました。(激汗
前に見たドキュメント情報のとおり、HLAppは1つだけ(only one)ということでした。 試した結果は複数動いてしまいましたが、、、現時点は、HLAppは1つだけしか動かさない前提で設計、利用したほうが良さそうです。