Visual StudioでRTApp(RTCore)をデバッグ実行したときの振る舞い

前記事。

matsujirushi.hatenablog.jp

以前は、HLApp(HLCore)のデバッグ実行を見ました。
今回は、RTApp(RTCore)がどう振舞うのかを確認しました。

RTApp (RTCore)をデバッグ実行

初期状態はこちら。デバイスにはHLApp, RTAppとも入っていません。

C:\>azsphere device image list-installed
Installed images:
 --> gdbserver
   --> Image type:   Application
   --> Component ID: 8548b129-b16f-4f84-8dbe-d2c847862e78
   --> Image ID:     2eac78bb-c68c-4aa3-9849-9c82d65d9406

C:\>

サンプルのSamples/HelloWorld/HelloWorld_RTApp_MT3620_BareMetalをデバッグ実行すると、imagepackageがビルドされて、デバイスに転送、アプリケーションが起動します。RTAppと同じですね。
azsphereコマンドで確認すると、HelloWorld_RTApが追加されて、デバッギング状態になっているのが確認できます。

C:\>azsphere device image list-installed
Installed images:
 --> gdbserver
   --> Image type:   Application
   --> Component ID: 8548b129-b16f-4f84-8dbe-d2c847862e78
   --> Image ID:     2eac78bb-c68c-4aa3-9849-9c82d65d9406
 --> HelloWorld_RTAp
   --> Image type:   Application
   --> Component ID: d3b80666-feaf-433a-b294-6a5846853b4a
   --> Image ID:     907893dd-a830-4e97-8eee-3766eaeadf0c

C:\>
C:\>azsphere device app show-status
d3b80666-feaf-433a-b294-6a5846853b4a: App state   : debugging
GDB port    : 2345
Output port : 2342


C:\>

前記事のHLAppと比較すると、Image type、App stateの表記が同一で、HLAppなのかRTAppなのかパッと見では分かりませんね。

Visual Studioデバッグを停止すると、イメージは残ったままで、実行状態がdebuggingのまま。HLAppのようにstoppedに変化しませんでした。

C:\>azsphere device image list-installed
Installed images:
 --> gdbserver
   --> Image type:   Application
   --> Component ID: 8548b129-b16f-4f84-8dbe-d2c847862e78
   --> Image ID:     2eac78bb-c68c-4aa3-9849-9c82d65d9406
 --> HelloWorld_RTAp
   --> Image type:   Application
   --> Component ID: d3b80666-feaf-433a-b294-6a5846853b4a
   --> Image ID:     907893dd-a830-4e97-8eee-3766eaeadf0c

C:\>
C:\>azsphere device app show-status
d3b80666-feaf-433a-b294-6a5846853b4a: App state   : debugging
GDB port    : 2345
Output port : 2342


C:\>

もしかして、動き続けているのかな?

このサンプルは、IOx_TXDに"Tick", "Tock"を送信し続けるというものなので、IO0_TXD(H3.6)とIO1_TXD(H3.8)にロジアナを繋いで確認することに。

Visual Studioデバッグ実行中は、、、IO0_TXDへメッセージが送信されています。

f:id:matsujirushix:20191224192750p:plain

では、Visual Studioデバッグを停止すると、、、

f:id:matsujirushix:20191224192924p:plain

計測できず。

ということは、App stateはdebuggingだが、実行自体は停止されている、ということでした。

では、ここでデバイスのUSBを抜き差ししてみます。

f:id:matsujirushix:20191224193126p:plain

動いてる。

ステータスは、runningになっていました。

C:\>azsphere device app show-status
d3b80666-feaf-433a-b294-6a5846853b4a: App state: running


C:\>

結果

要約すると、

  • Visual Studioデバッグ実行すると実行イメージが転送され、デバッギング状態に
  • デバッグを停止してもデバッギング状態のままだが、実行は止まる
  • USB抜き差しすると実行状態に

あと、ロジアナのプローブをIO0_TXDとIO1_TXDのどちらに接続するのか分からず。
実行しているRTCoreによってピンが違うのだろうと思いましたが、azsphere device app show-statusでどちらのRTCoreで動いているか表示されないのでorz

ちなみに、アレコレと試したところ、手動で実行状態にするときには表示されました。

C:\>azsphere device app start -i d3b80666-feaf-433a-b294-6a5846853b4a
d3b80666-feaf-433a-b294-6a5846853b4a
App state: running
Core     : 0


C:\>